> Linux服务器 > Linux软件 >

让 Archlinux 的 pacman 健步如飞

使用 Archlinux 的朋友大概遇到过这样的烦恼,软件安装得比较多的时候,再用 pacman 做任何事情的时候都可以看到硬盘狂转一段时间,然后才有反应。

pacman 官方给了一个 pacman-optimize ,它会把 pacman 数据库文件打包到别的地方,删除,然后再放回去。这样做可能会让这些零碎的文件在硬盘上是连续排列的,但实际效果却不是很好。

虽然用 Archlinux 应该有三年左右了,但我还从来没有看过 pacman 的数据库是什么模样。有一天终于忍不住去看了一下 /var/lib/pacman 下面到底是什么,原来是这么多零碎的小文件啊!

于是解决方案也就有了:把所谓的 pacman 数据库放到 reiserfs 文件系统里。如果你本来在这个地方用的就是 reiserfs 的话,那么不需要做任何事情, pacman 应该就很快了。如果你和我一样用的是 ext4 这样的文件系统,也不必慌张地把整个分区都换成 reiserfs。

新建一个 160 MB 的 reiserfs 文件 pacman_db.fs

truncate pacman_db.fs --size
 160M

mkfs.reiserfs -f
 ./
pacman_db.fs

把现有的 pacman 数据库复制到这个 reiserfs 里面:

sudo
 mount
 pacman_db.fs -t
 reiserfs /
mnt -o
 loop 

cp
 -a
 /
var/
lib/
pacman/*
 /
mnt

sudo
 umount
 /
mnt

接下来修改 /etc/fstab ,加上一行:

/[path_to_pacman_db]/pacman_db.fs /var/lib/pacman reiserfs defaults,loop 0 4

左边的 [path_to_pacman_db] 需要根据实际情况填一下。最右边的 4 应该是比 fstab 中其他条目大一些的数字,表示 fsck 检查时最后处理这个地方。

如果想让这个设置立即生效,执行 sudo mount /var/lib/pacman 即可。否则,重启一下就可以了。现在,使用 pacman -Syu 更新一下系统,是不是比以前快许多?

(责任编辑:IT)