2006年10月18日星期三

恢复dpkg包管理系统

今天把Ubuntu下/var/lib/dpkg/和/var/cache/apt/里面的东西都删了,然后包管理系统就坏了,折腾了两个钟头才恢复。其实只要新建与删掉的目录和文件同名的目录和文件,基本就能弄好了。

事情的经过是这样的。我把源列表里面的breezy改成dapper,update之后又想改回breezy了。我不想用dapper,因为里面的tetex是3.0,breezy里面是2.0,升级到3.0后配置好的cjk就不能用了。但是debian并不提供系统的降级,在aptitude里面仍然显示所有要升级的软件包。于是我在/var/lib/dpkg/和/var/cache/apt/里面都执行了rm -rf *,清空前一个目录时本想备份一下,但觉得不会出什么大问题就直接删除了,这样dpkg包管理系统的信息就都没有了。

之后我在aptitude里面安装新软件时出错:
debconf: apt-extracttemplates failed: Bad file descriptor
E: Cannot get debconf version. Is debconf installed?
debconf是安装了的,只是包管理系统里面没有关于debconf的信息。于是我新建了/var/lib/dpkg/status这个文件,在里面添加了debconf的信息。这个错误没有了,但是还有下面的错误:
unable to create updated files list file for package ....
不知道怎么解决,后来找到了一个恢复包管理系统的脚本,运行了一下有错,出错的地方正好是建目录的一段,那里正是新建我删掉的目录的地方。于是我手动创建了删掉的目录:
/var/cache/apt/archives
/var/cache/apt/archives/partial
/var/lib/dpkg/info
/var/lib/dpkg/parts
/var/lib/dpkg/alternatives
/var/lib/dpkg/methods
/var/lib/dpkg/updates
另外/var/lib/dpkg/status和available这两个文件我之前已经创建了。之后在aptitude里面就可以安装包了。不过aptitude里面显示所有包都是未安装的,包括之前已经安装的,不过这并不影响这些程序的使用。

今天是心情比较急,删了明明知道不能删除的东西,但愿这样的蠢事以后不会发生了。

2006年10月10日星期二

用Google地图看老家


今天无意中用Google地图找我家,发现非常好玩。以前用Google找过我家,但当时的放大倍数很低,只能看清地形,再不能放大了,后来一直没有看过。今天发现我的老家已经可以放大到19倍了,和北京的放大倍数一样。我好好玩了一番,真的很有意思。

首先找我的家。敲入武威回车后,绿色的小箭头指在一片山区,周围都是白云,并不在市区。我看这个箭头离青海湖不远,所以武威市区应该在箭头的北面。我移动到北面,放大后发现了铁路,然后沿着铁道找到了武南火车站,再往西走,就到武威市区了。我给影子找我的家,很快找到了我的中学,就给影子讲我的中学。我家就在学校南边的家属院里面,但是家属院正巧被一片云挡着,看不到我家了。

一想到大家在忙忙碌碌过日子时候,卫星在天空悄悄地拍摄,就觉得很奇妙。前阵子看到有位哥们在自家房顶日光浴,在Google地图上被大家看到了,真是好玩。以后做事情可要多加提防,老天有眼啊。

我沿着一级公路向东,找到了我在郊区的老家。我们村有很多温室,在地图看是很多蓝色的长长的东西。我找到了我们的旧院子,甚至可以看到南墙的那棵白杨树!真是神奇啊。

我沿着一级公路继续向东,没有费多大劲就找到了我舅舅家,而且还能分清楚各家的院子呢。他们那边的房子上面都是黄色的,是秋天收来的苞谷棒子晒在房顶。地图上有的农田是绿色,有的就是褐色。绿色是夏秋天照的照片,而褐色是冬春照的。

我又找到了别的一些亲戚在武威的家,从我们家沿公路找到他们家后,我知道了我们以前走的那些公路并不是我想象中的方向,有的偏离正东/南/西/北还不少呢。

我又回到老家那边,找到了我们村的各个生产队,甚至找到了小时候往里面拉过便便的水井。那时候我和我堂弟还上小学,我们都很喜欢去河滩玩。河滩就是以前发洪水时候冲出来的几十米宽的河道。那时候那里常倒垃圾,今天我在地图上看到的已经是一个很大的垃圾回收场。

我和堂弟喜欢拣河滩的马赛克。一次从河滩回家时,河滩边有一口六队的机井正在抽水,我和他正好要拉便便,我就拉在了井水抽出来后进去的井坑里,当然便便就被冲走了。结果他竟然告诉旁边一个在地里干活的人,那人知道我是谁家的孩子。后来这事情六队的人都知道了,知道我爸的儿子在六队的机井里面便便。这件事情似乎很丢人,可当我发现也没有什么后果时候,感觉还挺自豪的。哈哈!听说六队的人打那起就不从那口井打吃的水了,不过我觉得这传言不是真的,我那么一下还不至于影响那么大吧。点击这里可以看那口井的位置。地图中间黑色的圆圈是很深的机井,水从里面抽出来,抽到前面那个浅色的圆圈里面再流出去。我是在井坑里便便的,所以影响不是很大。:P

2006年10月9日星期一

去温泉记

今天我去温泉的胸科医院检查。

去挂号时候大夫问我来过吗,我说几年前来过。说完后大夫就逗了,说你这不白说吗。我背个书包,一副学生装束,她又问怎么还没有毕业啊?我说明年毕业。哈哈,刚问完她就笑着说我不应该这么问你。这里的大夫说起话来都比较和气,不像有的医院的大夫,经常板着脸。

温泉远离市区,我觉得这里的人比城市里的大夫相对和气,给人轻松的感觉。我猜我要去城市里的医院,才没人和我说闲话呢。

看完大夫,我划价后问挂号处刚才那个大夫去哪里检查,她看了一眼我的单子后说70啊,看她的表情是觉得挺贵的。

检查完后我又去医院的小山上玩。医院南边有个小山,上面有辛亥革命滦州起义纪念碑,有冯玉祥写的碑文。今天多云,空气比较潮湿,小山上没人,感觉很好。在山上我还清晰得记得四年前来这个小山上,到山顶的大石头下面时候,几个男的看我是陌生人,跟我说了什么。在这里,回想2002年来这里的情景,又触动了我怀旧的感情。

下山的时候我从北边的小路下去,结果竟然越走越不像路,到山脚时旁边都是医院的栏杆,我就翻出去了。翻的时候好紧张,翻墙揭瓦的事情我很久没有干了,而且那栏杆的钢筋在顶上朝外面弯着,要一不小心轻则衣服划破,重则身子被钢筋戳进去。还好安全出去了。所以温泉医院的门,我进了两次,出了一次。哈哈。

出去后想吃饭,问一个小学生哪里吃饭,他指给我后我又不想去了,在330的站牌下等车,他在公路中间还指着对面的市场对我喊。真是天真纯朴的孩子啊。

我在颐和园下车,想去颐和园逛一圈,在车站边问了公交车司机才找到一个小饭馆,里面饭还挺贵。要了碗凉面六块钱,我靠,看着跟吐出的似的,吃了两截面条后就走了,太难吃了。这会学校了,也没有心情游园了。

给Gnome Robots制作新图片(二):强大的Imagemagick

今天用Imagemagick的montage实现了命令行的图片组合,上图就是得到的图片。我再次体会到了Imagemagick的强大,上次是用Imagemagick来缩小JPEG图片的。

昨天得到的图片只是第一个版本,每个小图片还需要改进,如果用GIMP 一个一个挪动的方法就会很麻烦,所以我研究了一下montage的命令行参数,得到了生成Gnome Robots图像的方法,就是一行montage命令:
montage -geometry 16x16 tux1.png tux2.png tux3.png tux4.png tux5.png gates1.png gates2.png gates3.png gates4.png gates-v1.png gates-v2.png gates-v3.png gates-v4.png dead.png -tile 14x1 -background transparent bill.png
tux1.png到tux5.png是从左到右的五张小企鹅图片,其它也是按从左到右的顺序命名的。

这种方法比用GIMP容易多了,而且可以很容易地重复操作。我把用montage得到的图片和用GIMP得到的对比了一下,发现用montage得到的图片比用GIMP得到的更精确,因为用GIMP的方法要挪动14张图片,容易出错,而montage的tile参数已经指定了按14行1列的布局排列图片,不用指定每个图片的偏移了。

2006年10月8日星期日

给Gnome Robots制作新图片(一):用GIMP的实现

今晚要弄个Gnome Robots的新图片,用GIMP不知道如何精确排列图片,就用Inkscape,但是Inkscape(0.44版)的Object -> Grid Arrange根本不能用,行和列自动变为1,而且按了Apply后没反应。然后想用Scribus,但是Scribus(1.2.5)的File -> Import -> Get Text/Picture是灰色的,也不能用。我又用Imagemagick的montage命令,但是不带参数地执行后得到的图片不是由输入图片紧挨着从左到右排列生成的,而那些选项我也看不出眉目来。最后用GIMP比较麻烦地完成了,怕下次忘了,就简单记下来。

首先准备tux.png,gates.png,gates-v.png,dead.png,每张图片都是16x16的背景透明png图片。然后新建224x16的背景透明图片bill.png。把tux.png复制后粘贴进bill.png,然后菜单Layer -> Layer to Image Size,然后Layer -> Transform -> Offset,在X偏移值里面填入-114,确认,这样把第一个小企鹅左移114像素,正好在bill.png最左边。然后Layer -> Duplicate Layer,对新复制的层进行X方向16的偏移。然后再复制刚刚移动过的层,再偏移16,直到得到5个企鹅。用类似的方法再从左向右依次加入4个gates.png,4个gates-v.png,1个dead.png,即可得到最终的bill.png。将其复制到/usr/share/pixmaps/gnobots2里面,打开Gnome Robots即可选择新的图像bill了。