ArchLinux如果作为Desktop环境,应该是相当便捷的,一般情况下只要pacman -Syu就可以保持系统在最新的稳定状态。但是如果将ArchLinux作为开发机或者服务器,有一些东西还是得需要注意一下。
软件包组 Package Group
这个概念其实大家早就碰到过了,安装基本系统时会让你选择base和base-devel,这些其实就是软件包组。又比如说gnome,这也是一个,大家在pacman -S gnome的时候应该都看到了pacman的相关提示了吧。使用软件包组在部分更新时非常方便,比如更新基本系统,只需要pacman -S base就可以实现了,免除了手动输入那一长串的包名……
那么,怎么知道有哪些软件包组呢?其实只要使用pacman -Sg这个命令,就能看到当前库中所提供的所有软件包组列表,而使用pacman -Sg <包名>则可以查看指定软件包组的具体内容。
忽略指定包
需要忽略包的最典型的例子就是数据库了。服务器端一般在配置完成以后,数据库的版本也就基本稳定了,但是ArchLinux的数据库包(比如说PostgreSQL)的更新是不会停止的。于是当一个新的数据库版本发布时,pacman -Syu就会提示我们更新这玩意儿了。碰到这种情况怎么办?
第一种办法是在命令行作限制,pacman -S提供了ignore和ignoregroup的参数,可以在更新时用来忽略指定的包或者组。需要注意的是每一个需要忽略的包前面都必须加上这个参数。以PostgreSQL为例,如果不需要更新,则可以使用如下命令
pacman -Su --ignore postgresql --ignore libpqxx
好了,这是第一种方法。偶尔用一次感觉还行,不算麻烦,可是当这些东西需要经常输入的时候,不麻烦的事也变得麻烦了。那么,现在揭晓第二种方法。
打开/etc/pacman.conf,你会发现配置中有IgnorePkg和IgnoreGroup两个参数,默认这些都是被注释的。我们要做的就是把需要忽略的包加入到这儿,用空格隔开就行。至于能不能分行,我没做尝试,毕竟一般也没这么大量的需求,如果真的出现这样的情况,我觉得都可以考虑重构更新了 = =||||
限速
由于办公室装修,临时借宿到另一个兄弟公司干活。不过这兄弟可不够厚道,分配给我们的网络做了非常不人道的限制,每个网卡限速20k,于是乎瞬间回退到小猫时代。在这样的环境下,如果有时需要安装一些东西,就会由于pacman把带宽全部抢占而导致网页打不开、MSN断线等一系列严重后果。
不过还好,虽然pacman并没有提供限速的功能,但是它提供了比较灵活的接口来使用其他下载程序。我使用的是wget,只要在/etc/pacman.conf中将XferCommand设置为如下配置即可实现限速10k的目的了。
XferCommand = /usr/bin/wget --passive-ftp --limit-rate=10k -c -O %o %u

