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

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命令:

[[email protected] 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,如下:
    
    现在我们源码包的功能就能完整的使用了。
时间: 2024-10-12 20:51:00

LINUX 程序包管理:rpm/yum/编译的相关文章

linux程序包管理 rpm yum 编译

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载:-e, --erase 查询:-q, --query 校验:-V, --verify 数据库维护:--builddb, --initdb 安装:rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm  -ivh  PACKAGE_FILE ... GENERAL

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux 程序包管理 rpm yum dnf

Linux程序包管理: 包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具 deb:debian Linux使用 包括ubuntu rpm:Redhat Package Manager ,Centos等在使用 程序包的组成: 二进制程序:/bin,  /sbin,  /usr/bin, /usr/sbin 库文件: /lib64, /usr/64 配置文件:/etc 帮助文件:manual, info 包管理器: 打包:将源文件,一个一个单一的归档文

Linux程序包管理rpm与yum

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档.  

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

2018-3-14Linux系统管理(12) Linux程序包管理(2)yum前端管理工具

我们在之前的章节中讲到了Linux的程序包管理的基础与实现,后面也讲述了RPM包的管理命令实现了管理包的功能,主要用的是rpm命令,那么rpm实现程序管理总结如下:    rpm命令实现程序管理:       安装:-ivh, --nodeps, --replacepkgs       卸载:-e, --nodeps, --replacepkgs       升级:-Uvh, -Fvh, --nodeps, --oldpackage       查询:-q, -qa, -qf, -qi, -qd

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

Linux程序包管理--rpm和yum的原理和基本用法

Linux中的程序包主要分为两类: 二进制可执行安装包和源代码程序文件包. 本文主要讲解使用rpm程序包管理器和yum管理器前端工具来实现对二进制可执行安装包的安装, 查询, 升级和卸载等相关操作. Linux中在二进制可执行安装程序包安装上会涉及多个文件的操作, 操作过程就会比较复杂, 为简化该过程就使用程序安装包管理器来管理程序包的安装过程, 大大简化了程序包安装过程. Linux根据发行版本不同, 使用不同的程序包管理器实现对程序包的管理, 在这里主要介绍两大分支: debian: 使用d

程序包管理rpm,yum用法解析及自动化部署apache server实战,让您轻松拥有apache网站!

程序包管理器rpm,yum用法及apache httpd服务的自动化部署 程序包管理? 通常来说在windows中将需要安装的程序,程序名.exe下载下来然后点击setup的安装程序或直接点击程序包,下一步下一步即可.而Linux中程序包不是exe,不同的主流发行版有着不同的程序包管理机制.比较主流的主要是rpm程序包管理器和deb程序包管理. 这里要区别: 包名(PACKAGEFILE): rpm包程序文件的全名程序名(PACKAGENAME): rpm包不带版本号的程序名,比如QQ而不是QQ