码迷,mamicode.com
首页 > 系统相关 > 详细

LINUX 程序包管理:rpm/yum/编译

时间:2015-12-30 00:36:16      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:linux软件安装

Linux怎样进行软件安装?

技术分享  说到这个软件安装,习惯windows下安装软件的朋友肯定会说,so easy 不就是不停的下一步呗,但是在Linux系统当中安装软件可不是那么简单的事情,虽然linux也可以在图像界面下类似的向windows下点击下一步的方式安装,但这对你的逼格的提升可没有效果,下面就给大家介绍一下Linux的软件安装。

Linux的软件包分为俩种:
  • 源码包

  • 二进制包


 所谓的源码包就是指软件的开发者用文本处理器编写的程序代码,是写给人类看的程序语言,但机器并不认识所以无法执行。
 其中的二进制包就是将软件预先在硬件与操作系统上编译成二进制代码,然后将这个软件的所有相关文件打包成一个特殊格式的文件,在这个软件文件内还包含了预先检测系统与依赖软件的脚本,并提供软件提供所有的文件信息等,再加上简易的安装/删除/管理等机制,最终将这个软件文件发布。客户端取得这个档案后,只要透过特定的指令来安装, 那么该软件档案就会依照内部的脚 本来检测相依的前驱软件是否存在,若安装的环境符合需求,那就会开始安装 , 安装完成后还会将该软件的信息写入软件管理机制。,
 在 Linux 上面至少就有两种常见的这方面的软件管理员,分别是 RPM 与 Debian 的 dpkg 。CentOS 主要是以 RPM 为主。
  • dpkg :
       这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供   的软件就能够简单的安装起来,同时还能提供安装后的软件信息,实在非常不错。 只要是衍生于   Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等。

  • RPM
      这个机制最早是由 Red Hat 这家公司开发出来的,后来实在很好用,因此很多 distribution  s 就使用这个机制来作为软件安装的管理方式。包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚。



RPM是什么?

 RPM 全名是RedHat Package Manager简称则为 RPM 啦!顾名思义,当初这个软件管理的机制是由 Red Hat 这家公司发展出来的。RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。
    

二进制包的优点

他最大的特点就是将你要安装的软件先编译过, 并且打包成为 RPM 机制的包装档案,透过包装好的软件里头默认的数据库记录,记录这个软件要安装的时候必须具备的相依属性软件,当安装在你的 Linux 主机时, RPM 会先依照软件里头的数据查询 Linux 主机的相依属性软件是否满足, 若满足则予以安装,若不满足则不予安装。那么安装的时候就将该软件的信息整个写入 RPM 的数据库中,以便未来的查询、验证、与反安装。这样一来的优点是:
  1. 由于已经编译完成并且打包完毕,所以软件传输与安装上很方便(不需要再重新编译)

  2. 由于软件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装

 

二进制包的缺点

但是这也造成些许的困扰。由于 RPM 档案是已经包装好的数据,也就是说, 里面的数据已经都编译完成了!所以,该软件档案几乎只能安装在原本默认的硬件与操作系统版本中。   所以,通常不同的 distribution 所释出的 RPM 档案,并不能用在其他的 distributions 上。因此,这样可以发现这些软件管理机制的问题是:
  1. 软件档案安装的环境必须与打包时的环境需求一致或相当

  2. 需要满足软件的相依属性需求

  3. 反安装时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题


    说一千到一万让我们来看看真东西吧!让我们将linux的系统光盘挂载上进入到光盘的Packages目录执行ll命令:
[root@localhost Packages]# ll

-r--r--r--. 2 root root    24280 May 29  2013 perl-XML-Dumper-0.81-8.el6.noarch.rpm
-r--r--r--. 2 root root     9780 Jul  2  2011 perl-XML-Filter-BufferText-1.01-8.el6.noarch.rpm
-r--r--r--. 2 root root    70612 Jul  2  2011 perl-XML-Grove-0.46alpha-40.el6.noarch.rpm
-r--r--r--. 2 root root   372868 Jul  2  2011 perl-XML-LibXML-1.70-5.el6.x86_64.rpm
-r--r--r--. 2 root root    17364 Jul  2  2011 perl-XML-NamespaceSupport-1.10-3.el6.noarch.rpm
-r--r--r--. 2 root root   229296 Jul  2  2011 perl-XML-Parser-2.36-7.el6.x86_64.rpm
-r--r--r--. 2 root root    10080 Jul  2  2011 perl-XML-RegExp-0.03-7.el6.noarch.rpm
-r--r--r--. 2 root root    79664 Jul  2  2011 perl-XML-SAX-0.96-7.el6.noarch.rpm
-r--r--r--. 2 root root    24460 Jul  2  2011 perl-XML-SAX-Writer-0.50-8.el6.noarch.rpm
-r--r--r--. 2 root root   206288 Jul  2  2011 perl-XML-Twig-3.34-1.el6.noarch.rpm
-r--r--r--. 2 root root    27028 Jul  2  2011 perl-XML-Writer-0.606-6.el6.noarch.rpm
-r--r--r--. 2 root root    81608 Jul  2  2011 perl-XML-XPath-1.13-10.el6.noarch.rpm
-r--r--r--. 2 root root    42296 Jul  2  2011 perl-XML-XPathEngine-0.12-3.el6.noarch.rpm
-r--r--r--. 2 root root    77168 Jul  2  2011 perl-YAML-Syck-1.07-4.el6.x86_64.rpm
-r--r--r--. 2 root root    34180 Jul  2  2011 perl-YAML-Tiny-1.40-2.el6.noarch.rpm
-r--r--r--. 2 root root   130004 Jul  2  2011 pessulus-2.28.0-1.el6.noarch.rpm
省略n多行
    指定源码包的安装位置及配置文件位置:
    接下来用make进行编译
   这时候我们可以看一下Makefile这个文件已经存在了。
   接下来make install 安装这个程序包
   安装完成源码包安装后就可以直接使用与之相关的命令了嘛?不是的,我们进入源码包的安装路径看一下
   可以看到这里有bin ,lib ,include ,man 这几个文件,而这几个文件放在这个目录下是不会起作用的,除非我们使用绝对路径的方式来使用命令。下面我们就将这几个有“个性”的文件归到组织的怀抱里。
进入/etc/profile.d目录下创建一名为http.sh 文件,打开文件加入以下内容
    现在PATH变量就包含新安装源码包的安装目录了,新安装源码包的安装目录下bin 目录内命令就可使用了。
进入/etc/ld.so.conf.d目录下,新建一名为http.conf文件,打开文件加入以下内容
   然后使用ldconfig命令让系统重新生成缓存。
将源码包安装路径下的include目录复制到/uer/include目录中。编辑/etc/man.config文件添加一条MANPATH,如下:
    
    现在我们源码包的功能就能完整的使用了。

LINUX 程序包管理:rpm/yum/编译

标签:linux软件安装

原文地址:http://3037673.blog.51cto.com/3027673/1729753

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!