0 前言
- 不同的软件的安装方法是并不相同的。有的软件只能通过特定的方法来安装。
- 在不同的Linux发行版本上安装同一个软件的方法也未必相同, 因此有的时候,你在网上找到的在Ubuntu上安装某个软件的方法,也许在CentOS上并不能成功。
1 RPM
1.1 介绍
RPM是 Redhat Package Manager的缩写,是Linux上的一种软件打包和管理的工具。 因为Linux的不同发行版(distribution),甚至同一发行版的不同版本之间往往有很多的不同, 开发者在某个Linux发行版下开发和编译的程序,直接放到另外一个Linux下有非常大的可能性无法运行。 因此早期的Linux的软件都是通过源码来分发,使用者基本都是通过在自己的Linux平台上重新编译源代码来安装软件。 但是这种编译源代码的方式比较繁琐和复杂,普通用户往往也难以掌握。后来 Redhat推出了RPM这个软件打包的方式。就是在特定的Linux平台上把软件编译好,然后把与这个软件相关的文件和库打包成一个文件(RPM包), 但需要注意的是: 通常不同的distribution所发布的RPM包往往不能用于其他的Linux的distributions上面。 例如,针对Redhat的RPM包往往无法直接在OpenSUSE上进行安装。因此,在使用RPM方式进行安装的时候,必须选择和你使用的平台一致的RPM安装包。
1.2 命令
rpm -ivh google-chrome-33.xxxx.rpm
- -i: install 安装
- -v: verbose 显示详细信息
- -h: hash 显示安装进度
升级某个软件:
rpm -Uvh abc.xxx.rpm //abc这个软件的新版本会覆盖原来的版本,如果原来没有安装,直接安装
查询某个软件是否安装
rpm -q httpd //查询是否安装了apache服务
rpm -qa | grep pam //查询是否安装了包含pam这个名字的软件
rpm -qi httpd //列出目前安装的apache服务的详细信息
rpm -qR httpd //列出apache的软件依赖关系
卸载软件
rpm -e httpd //卸载apache
1.3 问题
虽然用RPM包来安装软件免去了编译源代码的麻烦,但软件之间的属性依赖问题并没有解决,有的时候,为了安装某个软件,你不得不先要安装N个其他的软件才行。
2 YUM
2.1 介绍
为了解决软件依赖的问题,已经为了给用户提供一种更加方便简单的软件安装方法, YUM被开发出来了。 YUM 是Yellowdog Updater Modified 的缩写. YUM 是建立在RPM的基础之上的, 为用户提供软件安装,升级,卸载的功能。YUM最大的好处是解决了软件依赖的问题。YUM 把很多软件的RPM包放在RPM 容器(repository)中, 用YUM 方式来安装软件的时候,会自动分析你要安装的软件的依赖关系,并会自动帮你安装必须的“依赖软件”, 这样就解决了最为困扰用户的软件依赖的问题。
2.2 命令
查询功能
yum list/search /info xxx
例如:yum list httpd //检查apache是否已经安装
yum info httpd //查看apache的详细信息, 类似 rpm -qi httpd
yum search httpd //查询和 apache (httpd)相关的软件
安装升级
yum install httpd
yum update httpd
卸载软件
yum remove httpd
3 dpkg
3.1 介绍
用于Ubuntu。
dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系;只能安装所要求的软件包。
dpkg通常用于 安装.deb文件,不会自动解决软件安装过程中的依赖关系。
3.2 命令
dpkg -i package_name.deb #安装本地软件包,不解决依赖关系
dpkg -r package #删除软件包
dpkg -P #删除软件包及配置文件
4 apt-get
4.1 介绍
用于Ubuntu。
apt-get 是一种高级的软件包管理工具,在安装软件时,会自动解决软件安装过程中的依赖关系;
ap-get remove 不会自动删除不需要的软件包。
4.2 命令
apt-get install package #在线安装软件包
apt-get install package --reinstall #重新安装软件包
apt-get remove package #删除软件包
apt-get remove package --purge #删除软件包及配置文件
apt-get autoremove #删除不再需要的软件包
apt-get clean #清除 /var/cache/apt/archives 目录
apt-get autoclean #清除 /var/cache/apt/archives 目录,不过只清理过时的包
apt-get build-dep package #解决编译源码 package 的依赖关系
5 aptitude
5.1 介绍
用于Ubuntu。
aptitude 是一种带有UI界面的更高级的软件包安装管理工具,自动解决软件包安装中的依赖关系;并且在删除的时候,会自动删除不需要的软件依赖关系安装包;更加的智能,高效。