Pacman包管理器是ArchLinux的一大亮点。它汲取了其他Linux版本软件管理的优点,譬如Debian的APT机制、Redhat的Yum机制、Suse的Yast等,给软件的安装提供了无与伦比的方便。另外由于ArchLinux是一个针对i686架构优化的发行版,因此对于软件的效率提高也有一定的帮助。Pacman可以说是ArchLinux的基础,因为ArchLinux默认安装非常少的软件,其他软件都是使用Pacman通过网络来安装的。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman使得简单的管理与自定义软件包成为了可能,而不论他们来自于官方的Arch软件库或是用户自己创建的。Pacman可以通过和主服务器同步包列表来进行系统更新,这使得注重安全的系统管理员的维护工作成为轻而易举的事情。
我第一次使用ArchLinux的时候还不太适应pacman这个包管理器,因为已经习惯了Ubuntu系列的apt-get模式和Redhat/CentOS系列的yum模式,但是后来越用越喜欢,确实挺不错的一款包管理器,值得详细了解和使用。
参考链接:
- http://www.ha97.com/3459.html
- https://wiki.archlinux.org/index.php/Pacman
- https://wiki.archlinux.org/index.php/Pacman_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
- https://wiki.archlinux.org/index.php/Pacman_tips
- https://www.archlinux.org/pacman/pacman.8.html
- =
- http://blog.51yip.com/linux/1037.html
- http://i.linuxtoy.org/docs/guide/ch31s09.html
参考解答:
#安装软件包{安装或者升级单个软件包,或者一列软件包(包含依赖包)},使用如下命令:
pacman -S package_name1 package_name2
#删除软件包
删除单个软件包,保留其全部已经安装的依赖关系:
pacman -R package_name
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
pacman -Rs package_name
缺省的,pacman会备份被删除程序的配置文件,将它们加上*.pacsave扩展名。如果你在删除软件包时要同时删除相应的配置文件(这种行为在基于Debian的系统中称为清除purging),你可是使用命令:
pacman -Rn package_name
当然,它也可以加上-s参数来删除当前无用的依赖。这样的话,真正删除一个软件包、它的配置文件以及所有不再需要的依赖的命令如下:
pacman -Rsn package_name
注意!Pacman不会删除软件包安装后才创建的配置文件。你需要手动删除它们。
#升级系统
Pacman能够只用一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新以及网速有多快:
pacman -Su
当然,最好做法的是将升级系统和同步仓库数据合成为一条指令:
pacman -Syu
#查询包数据库
Pacman可以在包数据库中查询软件包,查询位置包含了包的名字和描述:
pacman -Ss package
要查询已安装的软件包:
pacman -Qs package
一旦你得到了软件包的完整名字,你可以获取关于它的更为详尽的信息:
pacman -Si package
pacman -Qi package
要获取已安装软件包所包含文件的列表:
pacman -Ql package
你也可以通过查询数据库获知目前你的文件系统中某个文件是属于哪个软件包:
pacman -Qo /path/to/a/file
要罗列所有不再作为依赖的软件包(孤立orphans):
pacman -Qdt
Pacman使用-Q参数来查询本地软件包数据库,参见:
pacman -Q --help
而使用-S参数来查询远程同步的数据库。参见:
pacman -S --help
#其它用法
Pacman是个非常广泛的包管理工具,这里只是它的一些其它主要特性。
下载包而不安装它:
pacman -Sw package_name
安装一个”本地”包(不从源里):
pacman -U /path/to/package/package_name-version.pkg.tar.gz
安装一个”远程”包(不从源里):
pacman -U http://url/package_name-version.pkg.tar.gz
清理当前未被安装软件包的缓存(/var/cache/pacman/pkg):
pacman -Sc
完全清理包缓存(关于pacman -Scc,仅在你确定不需要做任何软件包降级工作时才这样做。pacman -Scc会从缓存中删除所有软件包。):
pacman -Scc
要删除孤立软件包(递归的,要小心):
pacman -Rs $(pacman -Qtdq)
重新安装你系统中所有的软件包(仓库中已有的):
pacman -S $(pacman -Qq | grep -v “$(pacman -Qmq)”)
获取本地软件包和它们大小的一个已排序清单列表:
LANG=C pacman -Qi | sed -n '/^Name[^:]*: (.*)/{s//1 /;x};/^Installed[^:]*: (.*)/{s//1/;H;x;s/n//;p}' | sort -nk2
要了解更详细的参数开关可以’pacman –help’ 或者 ‘man pacman’。
=EOF=