Linux 软件安装

目录

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界面的更高级的软件包安装管理工具,自动解决软件包安装中的依赖关系;并且在删除的时候,会自动删除不需要的软件依赖关系安装包;更加的智能,高效。


6 参考资料