[debian] backport-sloppy

2010.06 Maldives (part 2)

 (不使用stable的用户不用看了)

我在公司的办公电脑上装了个colinux,里面跑的是debian stable(目前最新的预装的disk image是5.0 lenny)。为了多一些更新,也加上了lenny-backports这个仓库。

但backports有个问题,那就是只会从往回移植只会从testing到stable,而一旦下一个版本发布testing变为了stable(原来的stable变为oldstable),针对oldstable的backports就停止更新了(除非是stable有了小版本号的更新(比如刚刚5.0.7升级为5.0.8),或者是安全不定,但这都需要临时性的手工批准操作)。所以你只能从lenny + lenny-backports升级到squeeze,不能升级到 squeeze + squeeze-backports。

有点绕糊涂了是吧?简单地说就是不会发生从当前testing移植到oldstable的情况,lenny用户只能在squeeze发布前得到一些testing中的更新,不能在squeeze发布后再得到testing中的更新(好像还是比较绕,没看明白的自己看英文吧)。

为了解决这个问题,Debian提供了backports-sloppy这个新的仓库。

对于lenny用户,lenny-backports-sloppy已经启动了(Feb 8, 2011):


deb http://backports.debian.org/debian-backports lenny-backports main
deb http://backports.debian.org/debian-backports lenny-backports-sloppy main

对于squeeze用户,目前squeeze-backports都刚启动,暂不用考虑squeeze-backports-sloppy。

参考:


 

 

 

Debian testing上加装Mint的软件包,系统变身为LMDE

我在上一篇文章《选LinuxMint Debian Linux作为俺的Linux了》里面提到了:LMDE跟Debian testing是完全兼容的,只不过是在debian testing上面多了一些包,所以将debian testing "变成" LMDE就是一个相当简单的事情了:装上LMDE那些包就行了。

具体步骤如下:

  1. echo "deb http://packages.linuxmint.com/ debian main upstream import"  > /etc/apt/sources.list.d/lmde.list(或者添加到/etc/apt/sources.list里面也可)
  2. apt-get update
  3. apt-get install linuxmint-keyring
  4. apt-get install mint-meta-debian

这就搞定啦!

(以上步骤翻译自这里: http://forums.linuxmint.com/viewtopic.php?f=141&t=57405 )

当然,你也可以到 http://packages.linuxmint.com/list.php?release=Debian 上看看有哪些包,只安装自己感兴趣的(比如主题、驱动、非DFSG软件)。

另外,LinuxMint 还提供了一个"软件管理器",比syntapic界面简单,还多了个LinuxMint社区的评分功能,可以让你轻松在同类软件中选择最受欢迎的)。通过安装mintinstall包即可得到这个工具。


不过你不安装mintinstall 这个工具也行,可以直接用浏览器到LinutMint 社区的软件中心 Software Portal 去浏览/查看评分,并可点击网页上的Install按钮直接安装(前提是你得安装apturl这个包,否则浏览器可不识别 apt://opera 这样的链接)

Technorati 标签: , ,

 
 

两个有意思的玩意儿: linuxlogo, cowsay

linuxlogo:  Color ANSI System Logo

A Color ANSI Logo with some system information that can be displayed at system boot time or, with some local configuration, at the login prompt. Four different Logos are available:

 * Debian Swirl(default)
 * Debian Banner
 * Tux Classic and Banner

The Classic and Banner Logos are based on Larry Ewing's Penguin. Monochrome ASCII versions of all the logos are included.





我修改了一下Debian提供的/etc/init.d/linuxlogo,直接用linuxlogo的输出作为了/etc/issue.net (ANSI彩色版本)和/etc/issue (无ANSI控制字符版本)的头部。

cowsay: A configurable talking cow

Cowsay (or cowthink) will turn text into happy ASCII cows, with speech (or thought) balloons. If you don't like cows, ASCII art is available to replace it with some other creatures (Tux, the BSD daemon, dragons, and a plethora of animals, from a turkey to an elephant in a snake).

homepage: http://www.nog.net/~tony/warez/cowsay.shtml

这次安装LinuxMint以后在登录后就会看到一个牛或者企鹅吐出一段随机的话,对于这些小玩意儿我有些兴趣,于是在/etc/profile等文件里面找了半天才知道是cowsay的效果:LinuxMint封装了一个cowsay+fortune的脚本,叫做mint-fortune,在mintsystem包里面提供。其实自己想要类似的也容易(不过LinuxMint还简单地做了一下随机显示tux/moose还是别的什么,具体如何控制可自己看manpage): 

   $ cowsay `fortune`

对于Debian系统管理员,不妨安装一个fortunes-debian-hints, 在~/.profile里面添加如下一行:

   /usr/games/fortuen debian-hints | /usr/games/cowthink

这样每次登录都会有一条关于Debian系统管理的Tips了。

 

 

Technorati 标签: , ,

 
 

[emacs]搜集了一些color-theme主题

从emacswiki和github上搜集了一些color-theme的主题和工具。

包含如下主题:

themes
color-theme-billc.el
color-theme-blackboard
.el
color-theme-chocolate-rain
.el
color-theme-cobalt
.el
color-theme-complexity
.el
color-theme-dark-emacs
.el
color-theme-desert
.el
color-theme-dirac
.el
color-theme-dpaste
.el
color-theme-espresso
.el
color-theme-github
.el
color-theme-hober2
.el
color-theme-icu
.el
color-theme-inkpot
.el
color-theme-ir-black
.el
color-theme-merbivore
.el
color-theme-molokai
.el
color-theme-pink-bliss
.el
color-theme-quiet-light
.el
color-theme-railscasts
.el
color-theme-rejeep
.el
color-theme-sanityinc
.el
color-theme-slate
.el
color-theme-subdued
.el
color-theme-tango
.el
color-theme-tango
+.el
color-theme-tangotango
.el
color-theme-thunk1
.el
color-theme-vibrant-ink
.el
color-theme-zenburn
.el

另外还包含了一些工具:

utils/
color-theme-maker.el
color-theme-random.el
color-theme-reg.el
color-theme-x.el

下载地址:   color-theme-6.6-packs.zip

 

LinuxMint Debian Edition 201012安装笔记(不刻盘安装,以及安装过程中的一些问题)

这次安装LinuxMint Debian Edition 201012可算不容易,前后装了四遍才安装成功。

现说不刻盘如何安装:

  • 首先你需要安装grub4dos ,安装很简单(解压grldr到C:\,  编辑boot.ini,不详说了 )。当然,你有另外一个Linux就更好
  • 下载LMDE的ISO文件,然后将它解开[1],放到某个分区的根目录(建议FAT分区,放在NTFS不一定能成。注意保持casper目录在根目录[2]
  • 编辑grub的menu.lst (如果是grub4dos,编辑的是c:\menu.lst)

title LinuxMint Debian 201012 Live CD & Install
root (hd0,5)
kernel /casper/vmlinuz boot=live live-media-path=/mint quiet splash --
initrd  /casper/initrd.lz

  • 重启动,在Windows启动时选择GRUB 4 DOS,然后选择 LinuxMint Debian 201012 Live CD & Install
  • 进入LMDE的图形界面后,点击桌面上的Installer进行安装

备注:

  1. 没仔细琢磨是否有不解开就能搞定的方法,网上LMDE相关的文章比较少,如果能找到直接在硬盘/U盘上试用LMDE LiveCD的方法,应该就可以了,因为我们是启动Live CD安装后桌面上的installer来进行安装;
  2. 如果你不想用casper这个目录名而是用别的名字(我一开始就用的mintdeb),那么相应地改一下grub的menu.lst就可以让Live CD跑起来,但安装程序就会出问题,因为它在/etc/live-installer/install.conf里面写死了,这是我第一次安装失败的原因——还是在安装程序里加了打印才发现的,好在安装程序是Python写的;

安装程序卡死在安装GRUB
201012版本的安装程序最后在安装grub的时候会死在grub-mkconfig上,主要是卡在Windows分区过不去了(这是我第二次失败的原因),我只得杀死安装程序,自己chroot进去,运行grub-mkconfig -o /boot/grub/grub.cfg (运行这个之前你还得mount --bind /proc /target/proc; mount --bind /dev /target/dev; mount --bind /sys /target/sys)——如果你搞不太懂,又碰到了这个问题,还是等下一个版本吧 :-)

好在这是最后一步,再重启就大功告成.

不要将/boot放在ext4分区中
LMDE安装程序缺省给出的分区类型是ext4,你可以选择这个,但得将/boot放到别的类型的分区上去(比如ext2或者ext3),否则启动不了(这是我第三次安装失败的原因)。不打算为/boot单分一个区的话,就还是选择ext3之类的吧

建议在终端下运行安装程序
由于这个安装程序比较简单,基本是一步步写到底,没有Debian Installer那么复杂地一步步重试/跳过等机制,所以还是建议打开gnome-terminal,在里面运行gksu /usr/bin/live-installer,这样它会在终端上打印一些进度信息,发现卡在哪一步也可以用编辑器打开/usr/lib/live-installer/install.py去看代码了 :-)

Technorati 标签: , ,

 

选LinuxMint Debian Edition作为俺的家用Linux了

2010年下半年“长期借用”了一个神舟的笔记本,先后安装了Debian testing和Ubuntu 10.04,都启动不了。后来就在Windows驱动器上下载了好几个发行版的Live CD,没事就启动玩玩,有时候Windows出了问题,也用Live CD来应付(比如Windows往我新买的昂达mp4上拷贝视频文件总是会拷着拷着报告“磁盘只读”,但在Linux下就一点问题没有。随便推荐一下HowToGeek的The 10 Cleverest Way to Use Linux to Fix Your Windows PC这一系列文章,发现HowToGeek这个网站也算是下半年最大的收获之一)。

虽然Ubuntu 10.10的Live CD给我的感觉不错(尤其是新版本都带了中文输入法),但好像网上的文章都给了我“Ubuntu问题挺多,不太稳定”的印象,加上总感觉Ubuntu从我最喜欢的Debian“偷”走了不少东西,而且它不是一个rolling release. 所以也没再尝试将新版本安装上去。

然后就发现了LinuxMint Debian Edition

  • 它是完全兼容Debian testing的(可以直接用Debian testing仓库),是个rolling release;
  • 硬件兼容性不错: 我用Live CD启动,除了触控板不好使(连一个USB鼠标就可以了)之外,其它硬件都完全不用配置啥;连上我的无线路由器需要WPA,也只需要在桌面通知栏点一下密码就可以了;
  • 很多东西已经装好了,包括一些Debian里面认为不符合DFSG或者non-free的,比如w32codec(包含了rmvb/mp4的解码器),Sun JRE (我需要用它来跑nevernote用wine跑原版evernote还是很不流畅)
  • 多了一些增强和改进(这一部分包以另外一个仓库提供),比如新的开始菜单(跟SuSE的比较象,或者根本就是?)和集中的控制中心(Debian恰恰就缺这个东西)

这次看到201012版本出来(不管啥软件,我一般都不正式对待第一版:),趁老婆出差,将它装上了(它的安装程序颇有一些问题,另外再写一篇文章来说吧)

刚装上的时候就跟这个一模一样(这张图是盗用LMDE网站的:-)

 

下面是我现在工作的桌面:

 

 
 

[emacs] CUA的矩形块操作很给力啊

原始矩形块模式

emacs以C-x r开头的命令来进行矩形操作。先用C-space或者C-@设一个mark,移动光标到另一点,用以下命令进行列操作:

C-x r k 剪切一个矩形块
C-x r y 粘贴一个矩形块
C-x r o 插入一个矩形块
C-x r c 清除一个矩形块(使其变成空白)
C-x r t 在选定区域的所有列前插入样的字符

 

cua-mode支持的可视化块模式

除了emacs本身支持的列模式外,emacs还可以通过cua-mode支持一种可视化的列模式。在cua-mode下,按[C-return]会进入cua rectangle模式。在这个模式下可以通过鼠标点击确认起点,然后通过光标键来选中一个rect范围,这个rect会用另外的颜色显示出来。

之后我们 就可以很方便地对这个rect进行操作。比如[M-up],[M-down],[M-left],[M-right]可以移动这个rect,[C- return]可以取消这个rect,[C-space]可以退出cua-rect模式并激活普通模式下的选择。

cua-mode下可以用以下命令进行列操作:

直接输入字符: 在每行前(或后)都插入这个字符
[M-a]: 将rect中的文字左对齐
[M-b]: 用空格(tabs或者spaces)替换所有rect中的字符
[M-c]: 去掉所有行左侧的空格
[M-f]: 用单个字符替换所有rect中的字符(提示输入一个字符)
[M-i]: 对每行中第一个找到的数字进行加1操作(自动把0x开头的当作十六进制数字)
[M-k]: 剪切rect
[M-l]: 把rect中的内容全部转换为小写
[M-m]: 拷贝rect
[M-n]: 用一串自增的数字替换rect中的每一行(这个功能可以用来给每行编号)
[M-o]: rect的内容右移,选中的rect用空格填充
[M-r]: 用字符串替换符满足正则表达式的字符串
[M-R]: 上下反转<br />[M-s]: 把rect中的每一行替换为一个字符串(提示输入)
[M-t]: 把rect整个替换为一个字符串(提示输入)<br />
[M-u]: 把rect中的内容全部转换为大写<br />
[M-|]: 对rect执行一个shell命令<br /></span>
 
还有一些其他的命令可以直接看cua-base.el(emacs22之后已经自带。另无意中发现一个阅读package说明的方法: M-x finder-commentary)。
Emacs用户手册里面对CUA介绍得比较简单,可到原网站阅读说明 http://www.cua.dk/cua.html
 
用鼠标来选择矩形块
看了一下cua-rect里面的代码,发现对鼠标有一些支持,但不是太好用(得先用C-return激活块模式,然后用mouse-1确定起点,mouse-3确定终点并拷贝)
 
简单地尝试了一下,改成如下方式: 第一次点击确定起点,第二次点击确定终点。为了方便,使用了hyper这个modifier key。
 
    (require 'cua-rect)
    (defun hkb-mouse-mark-cua-rectangle (event)
      (interactive "e")
      (if (not cua--rectangle)
          (cua-mouse-set-rectangle-mark event)
        (cua-mouse-resize-rectangle event)))
    (global-set-key (kbd "<H-mouse-1>") 'hkb-mouse-mark-cua-rectangle)
    (define-key cua--rectangle-keymap (kbd "<H-mouse-1>") 'hkb-mouse-mark-cua-rectangle)
 

给Emacs安装一个脚踏板: 用Windows/Menu键作为key modifier

是不是觉得Emacs的按键都很长,很难记(比如打开文件是C-x C-f,矩形填充是C-x r t,CEDET跳转是C-c . j)?  想要修改吧,各个键都有自己本来的含义,Emacs留给用户的只有C-c a到C-c Z(以及其它更长更复杂的按键)。所以才会有“Emacs用户都恨不得给电脑安装两个脚踏板的说法。

ergoemacs ( http://code.google.com/p/ergoemacs/ )的keybinding是个好东西,尤其是对于普通用户,你可以用C-c拷贝、C-v粘贴, C-z恢复,C-o打开文件。 不过跟 上面同样的问题,对于老手,原来习惯的按键用不上了(尤其是是找不到原来的M-x了!);而且要是习惯了这样的按键,换个地方又无所适从了。

有没有即保留原来的按键,又能支持新的方式呢?

除了真的安装一个脚踏板, 我也不知道这个问题是否真的有答案。不过我无疑中发现了可以用目前常见键盘上的Windows键和Menu键来作为新的key modifier(可用作super或者hyper)。在Windows下只要用(setq w32-lwindow-modifier 'super)初始化一下就行了,然后它就能将Windows+i识别为S-i,于是你就可以绑定到函数了。(在Linux下如何设置待有时间再来研究)

下面是我根据这个思路搞的配置,将Menu键(在键盘右边,Emacs里面叫做apps键)和左边的Windows键都设定为hyper了,然后可以用H-c来拷贝, H-o来打开文件。

注 意对于windows键相关的组合,如果已经注册为系统热键(Windows自带的Win+r/Win+e或者程序通过RegisterHotKey注册 的),则系统优先使用,Emacs抢不到(我原本是想将Windows设置为super,Menu设置为hyper,这样就有两个"脚踏板"了,但由于我 已经用别的工具注册了大部分Windows+?键,而且键盘左边又没有Menu键,所以最后将左边的Windows和右边的Menu都绑定到了 hyper)

 

;;(setq w32-pass-apps-to-system nil)
(setq w32-apps-modifier 'hyper)

(setq w32-pass-lwindow-to-system nil)
(setq w32-lwindow-modifier 'hyper)


;; editing
(global-set-key (kbd "H-c") 'kill-ring-save) ;; copy
(global-set-key (kbd "H-x") 'kill-region) ;; cut
(global-set-key (kbd "H-v") 'yank) ;; paste

(global-set-key (kbd "H-a") 'mark-whole-buffer) ;; select all

(if (featurep 'undo-trees)
(progn
(global-set-key (kbd "H-z") 'undo-tree-undo)
(global-set-key (kbd "H-S-z") 'undo-tree-redo)
(global-set-key (kbd "H-y") 'undo-tree-redo))
(progn
(global-set-key (kbd "H-z") 'undo)
(if (featurep 'redo)
(progn
(global-set-key (kbd "H-S-z") 'redo)
(global-set-key (kbd "H-y") 'redo)))))



;; files
;;(global-set-key (kbd "H-n") 'create-empty-buffer) ;;FIXME
(global-set-key (kbd "H-o") 'menu-find-file-existing)
(global-set-key (kbd "H-s") 'save-buffer)
(global-set-key (kbd "H-S-s") 'write-file)

;; search
(global-set-key (kbd "H-f") 'isearch-forward)
(global-set-key (kbd "H-h") 'query-replace)
(global-set-key [H-f3] 'nonincremental-repeat-search-forward)
(global-set-key [C-H-f3] 'nonincremental-repeat-search-backward)

;; bookmarks (within buffer)
(if (featurep 'bm)
    (progn
      (global-set-key [H-f2] 'bm-next)
      (global-set-key [C-H-f2] 'bm-toggle)
      (global-set-key [S-H-f2] 'bm-previous)))

;; completion (Emacs default: M-TAB - lisp-complete-symbol, M-/ - dabbrev-expand)
(global-set-key (kbd "H-/") 'hippie-expand)

 

 

EMACS下按关键字查询chm帮助(windows)

首先,需要下载一个叫做KeyHH 的小工具,KeyHH is a program that augments HTML Help. 有了这个工具之后,可以通过如下命令行来按关键字查询帮助

keyhh -MyID -#klink "keyword"  foobar.chm  

于是~/.emacs配置如下就可以了:

;;KeyHH -MyHelp -#klink "ActiveX Control Wizard" htmlhelp.chm
(defun chm-keyword-lookup (typeid help-file)
  "lookup a keyword in a CHM file and display it"
  (interactive) 
  (start-process "CHM keyword lookup" nil 
       "keyhh.exe" 
       (concat "-" typeid) "-#klink" 
       (format "'%s'" (thing-at-point 'symbol)) 
       help-file )
)

;;php
(defun chm-keyword-lookup-php () 
  (interactive)
  (chm-keyword-lookup "PHP" "e:/Apache2.2/php_manual_en.chm")
)

(define-key php-mode-map (kbd "C-h C-k") 'chm-keyword-lookup-php )

;;python
(defun chm-keyword-lookup-py () 
  (interactive)
  (chm-keyword-lookup "PYTHON" "e:/Python24/Doc/ActivePython24.chm")
)

(define-key py-mode-map (kbd "C-h C-k") 'chm-keyword-lookup-py )
 
 

BTW: 对于.hlp文件可以用:

winhlp32 -k keyword  path/to/foobar.hlp