cleanlinks 惹的祸

胖鸭子

今天在用clear清屏时发现了cleanlinks这个工具,查了一下是清除无效符号链接的,我便
sudo cleanlinks /
了一下,心里乐滋滋的想真是个好东东。
过后,因为学校的选课系统用Firefox进不去,就想用CrossOver Office里面的IE,但是不能启动了:
Can't locate strict.pm in @INC (@INC contains: /etc/perl ...
原来perl有问题了。当我想重装perl时,发现aptitude也不能用了,下面的"段子"摘自我的~/.bash_history(no是ls的别名,s是sudo的别名):
...
iexplore
export @INC
iexplore
bb-
bbo
bbs
lftp
cd /var/cache/apt
no
cd archives/
no
..
no
s apt-get reinstall apt
s aptitude reinstall apt
cd archives/
s aptitude download apt
cd
s apt-get download apt
s aptitude download apt
s aptitude -f install
s dpkg-reconfigure perl
s aptitude reinstall perl
s apt-get install perl
s aptitude reinstall perl
...
每个修复的企图都告失败,可以想象到我当时的无奈。当我意识到是cleanlinks带来的问题时,我好怨这个愚蠢的程序,为什么在手册里没有任何警告呢。这时我想到了Xahlee(http://www.xahlee.org)的一段话:
Last week i bought a chain saw with a
twisted handle. Perhaps i wasn't
careful, but by accident it chopped one
of my arm off, then i thought to myself
"gosh, this is POWERFUL!". This seems to
be the fashionable mode of thinking
among the unixers or unixer-to-be, who
would equate power and flexibility with
rawness and complexity; disciplined by
repeated accidents. Such a tool would
first chop off the user's brain, molding
a mass of brainless imbeciles and
microcephalic charlatans the likes of
Larry Wall and Linus Torvald jolly
asses. --Xah Lee
以前我觉得这话很偏激,此刻的我觉得他说的还是有些道理的。

apt不能用时报错说找不到/var/cache/apt/archives/partial等若干目录,我就把这几个缺的目录建了,但还是有perl的 错误。我只好沮丧地准备重装Debian。当我下载基系统,准备新分区后发现,我已经几乎忘光了怎么从现有的Linux下装Debian。:-( 我还想用gcc编译个dpkg来重装perl,但gcc也因为perl的问题不能用了。dpkg不能用时说没有 /var/lib/dpkg/updates,我就建了这 个目录,然后dpkg竟然可以工作了!电脑程序真是愚蠢,只是一个空目录不存在,它就不工作,难道不能自己建一个"试试"吗?即使是人类某些很 简单的思路,电脑也很难实现,真是笨那!:-)

然后我就去镜像下载perl和libperl并用dpkg安装了。这样,apt工具完全可以工作了。于是,我干脆把所有安装的包重装了(在aptitude里用L)。这样,我的Debian免遭重装,完全恢复正常了。

要是cleanlinks的手册页里面有警告,也许这场麻烦不会发生。有空时我会建议作者加入警告,因为这个工具就像Xahlee说的"a chain saw with a twisted handle"----很危险。另外,不得不承认,目前的电脑程序比起我们人类还是非常非常的愚蠢,但以后定会有很聪明的电脑。

我把这段波折记下来,供以后回味和Debian作伴的日子。