Linux软件包管理器大比拼
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
上一篇: Linux上照样下载迅雷、快车、超级旋风的资源下一篇: URXVT配置,包括色彩及字体设置
怎么那么多 。