linux各种发行版我也体验了不少,给我的感觉就是每个发行版都是差不多的,除了各自的系统架构和软件包管理器不同。系统架构也可以归结到软件包管理上,不同的软件包搭出来的系统自然不一样。所以归根到底,用好一个发行版首先要掌握它的软件包管理器,尤其是它的命令。本文整理了一下各类软件包管理器的命令,看看学学,挺好。

说明:第一页是pacman(arch Linux),第二页将rpm命令与dpkg命令做个对比,第三页则是yum与apt-get的对比。

首推Arch Linux的pacman,这是个好东西,用了你就知道。废话不多说,看下面的介绍(来自Arch Wiki)。

安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:
pacman -S package_name1 package_name2
有时候在不同的软件仓库中,一个软件包有多个版本(比如extra和testing)。你可以选择一个来安装:
pacman -S extra/package_name
pacman -S testing/package_name
删除单个软件包,保留其全部已经安装的依赖关系
pacman -R package_name
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
pacman -Rs package_name
缺省的,pacman会备份被删除程序的配置文件,将它们加上*.pacsave扩展名。如果你在删除软件包时要同时删除相应的配置文件(这种行为在基于Debian的系统中称为清除purging),你可是使用命令:
pacman -Rn package_name
当然,它也可以加上-s参数来删除当前无用的依赖。这样的话,真正删除一个软件包、它的配置文件以及所有不再需要的依赖的命令如下:
pacman -Rsn package_name
注意!Pacman不会删除软件包安装后才创建的配置文件。你可以从你的home文件夹中手动删除它们。

Pacman能够只用一个指令来升级系统中所有已安装的包。升级的时间取决于你的系统有多新。
pacman -Su
当然,最好做法的是将升级系统和同步仓库数据合成为一条指令:
pacman -Syu
查询包数据库
Pacman可以在包数据库中查询软件包,查询位置包含了包的名字和描述:
pacman -Ss keywords
要查询已安装的软件包:
pacman -Qs keywords
一旦你得到了软件包的完整名字,你可以获取关于它的更为详尽的信息:
pacman -Si package_name 
pacman -Qi package_name
要获取已安装软件包所包含文件的列表:
pacman -Ql package_name
你也可以通过查询数据库获知目前你的文件系统中某个文件是属于哪个软件包。
pacman -Qo /path/to/a/file
要罗列所有不再作为依赖的软件包(孤立orphans):
pacman -Qdt
Pacman使用-Q参数来查询本地软件包数据库。参见:
pacman -Q --help
...而使用-S参数来查询远程同步的数据库。参见:
pacman -S --help
详情可参见pacman(8) manpage。

Pacman是个非常广泛的包管理工具,这里只是它的一些其它主要特性。
下载包而不安装它:
pacman -Sw package_name
安装一个'本地'包(不从源里):
pacman -U /path/to/package/file.pkg.tar.gz
安装一个'远程'包(不从源里):
pacman -U http://url/file.pkg.tar.gz
清理当前未被安装软件包的缓存(/var/cache/pacman/pkg):
pacman -Sc
完全清理包缓存:
pacman -Scc
Warning: 关于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。

Pacman的配置文件位于/etc/pacman.conf。关于配置文件的进一步信息可以用man pacman.conf查看。
常用选项都在[options]段。阅读man手册或者查看缺省的pacman.conf可以获得有关信息和用途。
如果由于某种原因,你不希望升级某个软件包,可以加入内容如下:
IgnorePkg = 软件包名
和软件包一样,你也可以象这样跳过升级某个软件包组:
IgnoreGroup = gnome

rpm与dpkg大比拼:

RPM DPKG 解释
rpm -i {file.rpm} dpkg -i {file.deb} 从文件安装软件
rpm -U {file.rpm} dpkg -i {file.deb} 从文件更新软件
rpm -e {package_name} dpkg -r {package_name} 卸载一个已安装的软件
rpm -qa dpkg -l 列出所有已安装的软件
rpm -ql {package_name} dpkg -L {package_name} 列出已安装软件包含的文件
rpm -qi {package_name} dpkg -p {package_name} 显示已安装软件的信息
rpm -qpi {file.rpm} dpkg -I {file.deb} 显示软件包文件的信息
rpm -qpl {file.rpm} dpkg -c {file.deb} 列出软件包文件中的内容

yum常用命令(Fedora之类的):

用YUM安装软件包
yum install <package_name>

用YUM删除软件包
yum remove <package_name>

使用YUM查找软件包
yum search <keyword>

列出所有可安装的软件包
yum list

列出所有可更新的软件包
yum list updates

列出所有已安装的软件包
yum list installed

列出所有已安装但不在 Yum Repository 內的软件包
yum list extras

列出所指定的软件包
yum list <package_name>

常用的apt-get命令,更详细的命令请查询man:

搜索包
apt-cache search package

获取包的相关信息,如说明、大小、版本等
apt-cache show package

安装包
apt-get install package

修复安装
apt-get -f install

删除包
apt-get remove package

删除包,包括删除配置文件等
apt-get --purge remove package

更新源
apt-get update

更新已安装的包
apt-get upgrade

升级系统
apt-get dist-upgrade

使用 dselect 升级
apt-get dselect-upgrade

了解使用依赖
apt-cache depends package

是查看该包被哪些包依赖
apt-cache rdepends package

安装相关的编译环境
apt-get build-dep package

下载该包的源代码
apt-get source package

清理无用的包
apt-get clean && sudo apt-get autoclean

检查是否有损坏的依赖
apt-get check