天天看点

Linux 软件安装

不同的软件的安装方法是并不相同的。有的软件只能通过特定的方法来安装。

在不同的Linux发行版本上安装同一个软件的方法也未必相同, 因此有的时候,你在网上找到的在Ubuntu上安装某个软件的方法,也许在CentOS上并不能成功。

RPM、YUM、dpkg、apt-get、aptitude

目录

  • 0 前言
  • 1 RPM
    • 1.1 介绍
    • 1.2 命令
    • 1.3 问题
  • 2 YUM
    • 2.1 介绍
    • 2.2 命令
  • 3 dpkg
    • 3.1 介绍
    • 3.2 命令
  • 4 apt-get
    • 4.1 介绍
    • 4.2 命令
  • 5 aptitude
    • 5.1 介绍
  • 6 参考资料

RPM是 Redhat Package Manager的缩写,是Linux上的一种软件打包和管理的工具。 因为Linux的不同发行版(distribution),甚至同一发行版的不同版本之间往往有很多的不同, 开发者在某个Linux发行版下开发和编译的程序,直接放到另外一个Linux下有非常大的可能性无法运行。 因此早期的Linux的软件都是通过源码来分发,使用者基本都是通过在自己的Linux平台上重新编译源代码来安装软件。 但是这种编译源代码的方式比较繁琐和复杂,普通用户往往也难以掌握。后来 Redhat推出了RPM这个软件打包的方式。就是在特定的Linux平台上把软件编译好,然后把与这个软件相关的文件和库打包成一个文件(RPM包), 但需要注意的是: 通常不同的distribution所发布的RPM包往往不能用于其他的Linux的distributions上面。 例如,针对Redhat的RPM包往往无法直接在OpenSUSE上进行安装。因此,在使用RPM方式进行安装的时候,必须选择和你使用的平台一致的RPM安装包。

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
           

虽然用RPM包来安装软件免去了编译源代码的麻烦,但软件之间的属性依赖问题并没有解决,有的时候,为了安装某个软件,你不得不先要安装N个其他的软件才行。

为了解决软件依赖的问题,已经为了给用户提供一种更加方便简单的软件安装方法, YUM被开发出来了。 YUM 是Yellowdog Updater Modified 的缩写. YUM 是建立在RPM的基础之上的, 为用户提供软件安装,升级,卸载的功能。YUM最大的好处是解决了软件依赖的问题。YUM 把很多软件的RPM包放在RPM 容器(repository)中, 用YUM 方式来安装软件的时候,会自动分析你要安装的软件的依赖关系,并会自动帮你安装必须的“依赖软件”, 这样就解决了最为困扰用户的软件依赖的问题。

查询功能

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
           

用于Ubuntu。

dpkg 是一种比较低层的软件包安装管理工具,在安装时,不会安装软件包的依赖关系;只能安装所要求的软件包。

dpkg通常用于 安装.deb文件,不会自动解决软件安装过程中的依赖关系。

dpkg -i package_name.deb  #安装本地软件包,不解决依赖关系
dpkg -r package #删除软件包
dpkg -P #删除软件包及配置文件
           

apt-get 是一种高级的软件包管理工具,在安装软件时,会自动解决软件安装过程中的依赖关系;

ap-get remove 不会自动删除不需要的软件包。

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 的依赖关系
           

aptitude 是一种带有UI界面的更高级的软件包安装管理工具,自动解决软件包安装中的依赖关系;并且在删除的时候,会自动删除不需要的软件依赖关系安装包;更加的智能,高效。

  • https://www.androiddev.net/redhat-centos-install-rpm-yum/
  • http://www.cnblogs.com/cocoajin/p/3741647.html
  • http://blog.csdn.net/xiaoyanghuaban/article/details/22946987

__EOF__

欢迎转载,但请注明出处!

欢迎大家一起交流学习!如果有什么疑问,大家可以在评论区一起交流!

如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是我的最大动力!

继续阅读