1、 软件管理器的简介
厂商先在他们的系统上编译好软件,之后再发布给用户安装。
客户端获取文件后,只需要通过特定命令来安装,那么该文件就会依照内部的脚本来检测依赖的辅助软件是否存在,弱安装的环境符合需求,则开始安装。安装完成后还会将该软件的信息写入软件管理机制中,以便未来升级删除。
1.1、软件安装管理器两大巨头RPM与DPKG
- dpkg
- 由Debian Lunux社区开发,通过dpkg机制实现简单安装
- 适用基于Debian发现的Liunux版本,如B2D、Ubantu
- rpm
- 由RedHatk开发
- 适用Fedora、CentOS、SUSE
- 软件的依赖属性
- 软件的依赖属性是软件管理的安装方式的通病
- 可以通过在线升级的方式得以解决
- YUM与APT在线升级
发行版代表 | 软件管理机制 | 使用命令 | 在线升级 |
Red Hat/Fedora | RPM | rpm、rpmbuild | YUM(yum) |
Debian/Ubantu | DPKG | dpkg | APT(apt-get) |
1.2、什么是RPM与SRPM
1)RPM机制是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套软件管理机制。
- 优点
- 由于已经编译完成并打包完毕,所有软件传输与安装很方便(不需要再重新编译)
- 由于软件的信息都已经记录在Linux主机的数据库上,很方便查询、升级与反安装
- 缺点
- 软件安装的环境必须与打包时的环境需求一致或相当
- 需求满足软件的依赖属性需求
- 反安装时特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题
为了解决上诉去缺点,于是有了SRPM,Source RPM
2) SRPM所提供的软件内容【并没有经过编译,提供的是源码】,通常的扩展名为***.src.com,虽然SRPM提供的内容是源码,但是他仍然需要该软件所需要的
依赖信软件说明,以及所有RPM文件所提供的数据同时,他与RPM不同的是,他也提供了参数配置文件(就是configure与makefilex),所以如果我们下载的是SRPM,那么要安装时必须要
- 先将该软件已RPM管理方式编译,此时SRPM会被编译成为RPM文件
- 然后将编译的RPM安装到Linux系统中
这样我们就可以在不同版本的Linux中,安装同一版本的软件了。
1.3、什么是i386、i586、i686、noarch、x86_64
1)软件安装包名称的意义
列如:rp-pppoe-3.11-5.el7.x86_64.rpm
rp-pppoe | 3.11 | 5 | el7.x86_64 | rpm |
软件名称 | 软件版本信息 | 发布的次数 | 适用的硬件平台 | 扩展名 |
‘;
2)硬件向下兼容,软件向上兼容
高版本软件不能的旧硬件上实现,低版本软件可以在新硬件上实习,话虽如此,但是还是搭配硬件与RPM文件,效率会更高
1.4、RPM的优点
- RPM内包含已经编译过的程序与配置文件等数据,用户不需要重新编译。
- RPM在安装之前,会先检查系统的硬盘容量、操作系统的版本,可避免文件被错误安装。
- RPM文件本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件等信息,便于了解软件。
- RPM管理方式使用数据库记录RPM文件的相关参数,便于升级、删除、查证与验证
1.5、RPM属性依赖的解决方式:YUM在线升级
软件发布时,很多软件都会以函数库的方式发布部分功能,以方便其他软件的调用。此外为了节省Linux用户的数据量,目前的Linux发行版本在发布软件时,都会将软件内容分为一般使用与开发使用,即pam-x.x.rpm与software-devel-x.x.rpm
所以RPM文件就会有所谓的依赖性问题(几乎所有的软件管理几乎都会有这方面的情况存在),那么如何解决呢?
先将这些依赖属性的软件统计起来,建立一份清单列表,有安装需求时,先将软件与软件所依赖的属性列出来,在
2、RPM软件管理程序:rpm
在日常的应用中,由于有yum的存在,所以rpm应用与安装比较少,用于查询时比较多。但也不乏有钟意者使用,各有所长,任君所选。
2.1、数据库路径
1.RPM类型文件安装时,先会调取本地电脑/var/lib/rpm中的数据库文件,进行环境和依赖检测。
2.当一个软件安装完成后,软件的主体文件,会被分别放于以下目录中
/etc | 一些配置文件放置的目录,例如/etc/crontab |
/usr/bin | 一些可执行文件 |
/usr/lib | 一些程序使用的动态链接库 |
/usr/share/doc | 一些基本的软件使用手册与说明文件 |
/usr/share/man | 一些 man page 文件 |
2.2、rpm命令的使用(安装)
1)最常用的命令
[root@study ~]# rpm -ivh packge_name1 packege_name2...
-i : install
-v : 查看更多详细信息
-h :显示安装进度
## RPM升级与更新
[root@study ~]# rpm -Uvh packge_name1 packege_name2...
-U :packegename即使没有安装,也将执行安装程序,若存在旧版本,则更新至新版本
[root@study ~]# rpm -Fvh packge_name1 packege_name2...
-F :pakegename未安装,则不执行更新操作。若存在旧版本,则更新至新版本
2)其他选项
--nodeps
--replacefiles
--replacepkgs
--froce
--test
--justdb
--nosignature
--prefix newpath
--noscripts
以上字表其意
2.3、RPM查询(query)
2.3.1、 RPM在做查询时,是针对/var/lib/rpm/这个目录下的数据库文件进行查询操作。另外RPM也可以查询未安装的RPM文件内的信息。
[root@study ~]#rpm -qa <==显示全部已安装软件
[root@study ~]#rpm -qf filename <==找出该文件属于哪一个已安装的软件
-q pkg_name(下同)查询软件是否有安装
-qi 列出该软件的详细信息(information,包含开发商、版本与说明等
-ql 列出该软件所有的文件与目录所在完整而文件名
-qc 列出该软件所有的配置文件
-qd 列出软件的所有说明文件
-qR 列出该软件有关的依赖软件所包含的文件
-qf file_name 找出该文件属于哪一个已安装的软件
-qp
2.4、RPM验证与数字签名(verify/signature)
1)、
发
上