软件包的管理

Linux 软件包关系图谱

本图片引自 http://www.cnblogs.com/yangquan/p/6582771.html ,如有侵权,请及时告知,会立即删除。

可以图片上点击右键,选择在新的标签页中打开,这样可以查看大图。

软件包简介

在Linux操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行版本和 DEB 软件包的 Linux 发行版本。软件包管理工具的作用就是在操作系统中能够快捷的实现程序包的安装,卸载,查询,升级和校验等管理操作。

RPM 全称 RedHat Package Manager 或者RPM Package Manager ,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。与 RPM 进行竞争的是基于 Debian 操作系统 (UBUNTU) 的 DEB 软件包管理工具- DPKG,全称为 Debian Package,功能方面与 RPM 相似。

本文是主要介绍RPM软件包管理工具在CentOS系统上的配置和使用,至于DPKG软件包管理,以及二者之间的相互比较,此处暂不做描述。

目录

  1. rpm 软件包管理
  2. yum 软件包管理
  3. 编译安装软件包

rpm 包管理

rpm 包的命名方式

rpm包的命名是有一定规则的一般如 name-VERSION-release.arch.rpm

name:表示软件的名字
VERSION: major.minor.release 发行版的编号 release: 系统版本 arch: 支持的平台 常见的如 i386 ,X86_64

rpm 包的安装

Linux系统中可以直接使用rpm 命令来直接安装系统中已经有的软件包,使用方式如下所示。

rpm {-i|--install} [install-options] PACKAGE_FILE…

	-v: verbose 显示详细信息  
	-vv:
	-h: 以#显示程序包管理执行进度

通常我们会 rpm -ivh PACKAGE_FILE 的组合形式一起安装。 下面我们演示安装tree 命令的过程 。

[install-options] 指的是在安装过程中的一些相关的操作,例如测试安装,忽略以来关系等等,常用选项,如下

--test: 测试安装,但不真正执行安装,即dry run模式
--nodeps:忽略依赖关系
--replacepkgs | replacefiles :覆盖或者替代安装
--nosignature: 不检查来源合法性
--nodigest:不检查包完整性
--noscripts:不执行程序包脚本
	%pre: 安装前脚本; --nopre
	%post: 安装后脚本; --nopost
	%preun: 卸载前脚本; --nopreun
	%postun: 卸载后脚本; --nopostun

rpm 包的升级

软件包在使用的过程中可能会遇到升级的情况,这时,rpm 升级功能就能够派上用场。
rpm 升级命令的使用一般如下所示

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...

但是U和F 在实际的使用过程中还是有区别的。 upgrade:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则“安装” freshen:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则不执行升级操作

rpm -Uvh PACKAGE_FILE ...
rpm -Uvh PACKAGE_FILE ...

升级注意事项

(1) 不要对内核进行升级操作;Linux 支持多内核版本并存,因此可以直接安装新的内核程序。 (2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

rpm 包的查询

rpm包管理工具支持查询软件程序包,,比如说某些应用程序是由哪些包安装生成,也可以针对未安装成功的包进行查询。

rpm {-q|--query} [select-options] [query-options]

常用的查询 [select-options] 有下面几个选项

[select-options]
	-a: 所有包
	-f: 查看指定的文件由哪个程序包安装生成
	-p rpmfile:针对尚未安装的程序包文件做查询操作
	--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
	--whatrequires CAPABILITY:查询指定的CAPABILITY被	哪个包所依赖

查询的过程中,必须要有选项-q 然后可以结合 [select-options] 中的选项查看更多的信息。

# 查询与tree 有关的所有的包[[email protected] ~]#rpm -qa tree
tree-1.5.3-3.el6.x86_64# 查询指定的文件由哪个程序包提供# 这里使用了管道,将前一个命令的结果作为参数,传给第二命令来执行。[[email protected] ~]#which bash | xargs rpm -qf
bash-4.1.2-48.el6.x86_64  

# 下面这个命令与上面的命令是等价的[[email protected] ~]#which bash
/bin/bash[[email protected] ~]#rpm -qf /bin/bash
bash-4.1.2-48.el6.x86_64# 但是我们还可以使用下面这个命令实现同样的效果[[email protected] ~]#rpm -q --whatprovides bash
bash-4.1.2-48.el6.x86_64  

# 针对未安装的程序包进行查询,后面 的参数 必须是rpm 文件[[email protected] Packages]#rpm -qp sendmail-8.14.4-9.el6_8.1.x86_64.rpm 
warning: sendmail-8.14.4-9.el6_8.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
sendmail-8.14.4-9.el6_8.1.x86_64

常用的查询 [query-options] 有下面几个选项

 [query-options]
	--changelog:查询rpm包的changelog
	-c: 查询程序的配置文件
	-d: 查询程序的文档
	-i: information
	-l: 查看指定的程序包安装后生成的所有文件
	--scripts:程序包自带的脚本
	--provides: 列出指定程序包所提供的CAPABILITY
	-R: 查询指定的程序包所依赖的CAPABILITY

在实际的使用过程中可以根据 [query-options] 选项进行更多的查询操作。

#查询程序的文档[[email protected] Packages]#rpm -qd tree
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz#查看指定的程序包安装后生成的所有文件[[email protected] Packages]#rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz

rpm 包的卸载

rpm 也提供了对rpm 程序的卸载功能,并且也有很多的选项。

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]           [--notriggers] [--test] PACKAGE_NAME ...#删除 tree 工具[[email protected] Packages]#rpm -e tree

rpm 的包校验

rpm 提供了软件包的校验,它可以用来对一个包来源的合法性和完整性进行校验。
rpm 检验的方式如下

rpm {-V|--verify} [select-options] [verify-options]

	S 文件大小发生变化
	M 文件的属性变化(包括权限和文件类型)
	5 MD5发生改变
	D 设备发生变动
	L 链接路径发生改变
	U 属主发生变化
	G 属组发生变化
	T mTime 发生变化
	P 程序所依赖的capabilities 发生变化  

接下来我们还是以tree命令为例来进行演示

# 首先查看 tree 命令的属主是否有过变更  [[email protected] Packages]#rpm -VU tree   # 没有结果#查看tree 命令的属性信息[[email protected] Packages]#which tree | xargs ls -l 
-rwxr-xr-x. 1 root root 41136 Jan 14  2015 /usr/bin/tree#更改属主[[email protected] Packages]#chown mage /usr/bin/tree#确认是否发生变动[[email protected] Packages]#which tree | xargs ls -l 
-rwxr-xr-x. 1 mage root 41136 Jan 14  2015 /usr/bin/tree#使用rpm的查询命令  [[email protected] Packages]#rpm -VU tree
.....U...    /usr/bin/tree  #结果显示属主发生过变更

yum 包管理

在实际的生产环境中,仅仅使用rpm 命令有时并不能满足我们的需要,因为rpm 的包与包之间往往有着相互的依赖,甚至可能是循环依赖,我们在使用rpm命令安装软件的过程中往往会因为有依赖包而安装不成功,这时我们就需要一种能够将依赖包也一并安装的机制,在CentOS上,这个方式,就是yum。
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具。 yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)。 yum源的文件服务器一共可以有4种,http://https://ftp://file://

配置yum 客户端

yum 客户端的配置文件如下所示: /etc/yum.conf:为所有仓库提供公共配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置(必须是以repo结尾的配置文件) 仓库指向的定义

[repositoryID]  #中间不能有空格 作为仓库的ID,并且唯一name=Some name for this repository # 可以理解为对这个仓库的一种解释baseurl=url://path/to/repository/	#仓库的地址,类型可以是上面说到那4种类型enabled={1|0}	#指定该仓库是否可用 0 不可用gpgcheck={1|0}	#指定是否进行gpg校验gpgkey=URL		#如果进行gpg校验的话,将gpgkey的地址放在这里enablegroups={1|0}failovermethod={roundrobin|priority}roundrobin:意为随机挑选,默认值
priority:按顺序访问cost= 默认为100

yum 的配置文件中,可以使用一些通用的变量,这样可以对yum仓库进行统一的配置。yum的repo配置文件中可用的变量:

$releasever: 当前OS的发行版的主版本号$arch: 平台,i386,i486,i586,x86_64等$basearch:基础平台;i386, x86_64$YUM0-$YUM9:自定义变量

实例:
http://server/centos/$releasever/$basearch/# 这样写的话,系统版本,以及适应平台都可以不用写称HardCode了http://server/centos/7/x86_64
http://server/centos/6/i384

在本地配置阿里云yum仓库

# 进入到 /etc/yum.repos.d/ 目录下 创建一个以.repo为后缀的文件  输入以下内容就搭建好了一个本地的yum客户端。[aliyum]name=aliyun centos yum 
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$arch/gpgcheck=0[aliyunepel]name=aliyun epel yumbaseurl=https://mirrors.aliyun.com/epel/$releasever/$arch/gpgcheck=0

EPEL 全称是 Extra Packages for Enterprise linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。同时能够提供大量的在官方的repository中找不到的软件源,例如bash-completion。

yum 命令的使用方法

yum 命令有着大量的选项和参数,在使用过程中可以非常的灵活。yum命令的使用方法为 yum [options] [command] [package ...]

#显示仓库列表:yum repolist [all|enabled|disabled]# 显示程序包:yum list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1][...]# 安装程序包:yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] (重新安装)  #升级程序包:yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降级)#检查可用升级:yum check-update#卸载程序包:yum remove | erase package1 [package2] [...]#查看程序包information:yum info [...]#查看指定的特性(可以是某文件)是由哪个程序包所提供:yum provides | whatprovides feature1 [feature2][...]#清理本地缓存:#清除/var/cache/yum/$basearch/$releasever缓存yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]#构建缓存:yum makecache#搜索:以指定的关键字搜索程序包名及summary信息yum search string1 [string2] [...]#查看指定包所依赖的capabilities:yum deplist package1 [package2] [...]#查看yum事务历史:yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum historyyum history info 6
yum history undo 6#日志 :/var/log/yum.log #安装升级本地程序包  yum localinstall rpmfile1 [rpmfile2] [...]  
yum localupdate rpmfile1 [rpmfile2] [...]#包组管理的相关命令:
	yum groupinstall group1 [group2] [...]
	yum groupupdate group1 [group2] [...]
	yum grouplist [hidden] [groupwildcard] [...]
	yum groupremove group1 [group2] [...]
	yum groupinfo group1 [...]

下面将通过两个简单的示例来演示一下yum命令的使用 ,分别是yum 显示程序列表 ,以及卸载和重新安装 软件程序。

在实际的生产环境中,我们有可能会卸载掉之前安装过的软件,如果一个软件在安装过程中一并安装了大量的依赖包,此时使用rpm 命令将不能有效的达到我们的目的,而使用yum history 命令却可以很轻松的做到。如果我们卸载错了软件,甚至还可以重装起来,这就是yum的魅力。

配置yum服务端仓库

在实际的生产环境中,有时我们不仅需要从yum源服务器上下载安装软件,还有可能需要我们自己配置yum服务器端仓库,以提供软件,方便他人进行下载。比方说,开发人员开发的软件工具包,放在我们自己配置的yum源上,然后大家都可以进行下载。 此时我们要配置一个网络yum源供他人使用。

在试验的过程中,有可能会因为防火墙,以及SELinux等不确定原因导致失败,所以我们先将这两个服务关掉。

关闭防火墙

# centos7 中的配置systemctl disable firewalld.service 
systemctl stop firewalld.service 

# centos6 中的配置chkconfig iptables off
service iptables stop#查看是否已经关闭了  iptables -vnL

关闭SELinux

vim /etc/selinux/configSELINUX=permissive

setenforce  0
getenforce 验证是否生效
  • 实验一:配置ftp yum 服务包

第一步:安装ftp 服务

	cd /run/media/root/CentOS\ 7\ x86_64/Packages/

	rpm -ivh vsftpd-3.0.2-21.el7.x86_64.rpm 

	#查看文件安装之后生成的所有的文件
	 rpm -ql vsftpd 

	#开启ftp 服务
	systemctl start vsftpd  

	#确认ftp的21端口是否开启 
	ss -tnl
	# 将ftp 服务设置为开机启动 (CentOS 7支持)
	systemctl enable vsftpd 

第二步:准备yum 系统安装包

	mkdir -p /var/ftp/pub/centos/{6,7} cp -r /run/media/root/CentOS\ 7\ x86_64/* /var/ftp/pub/centos/7
cp -r /run/media/root/CentOS\ 6\ x86_64/* /var/ftp/pub/centos/6

第三步:客户端配置

	vim /etc/yum.repos.d/base.repo 
	[base]	name=centos 
	baseurl=ftp://$IP_ADDRESS/pub/centos/$releasever/	gpgkey=ftp://$IP_ADDRESS/pub/centos/$releasever/RPM-GPG-KEY-CentOS-$releasever
  • 实验二 配置http yum 服务包

第一步:安装http 服务

	httpd 安装的过程需要依赖,所以我们要使用yum安装

	yum install httpd	#查看文件安装之后生成的所有的文件
	 rpm -ql httpd 

	#开启http 服务
	systemctl start httpd  

	#确认ftp的21端口是否开启 
	ss -tnl
	# 将ftp 服务设置为开机启动 (CentOS 7支持)
	systemctl enable httpd

第二步:准备第三方yum包

# 实际生产中会把开发人员开发的rpm包放在app目录下,我们这里使用光盘里的rpm 来模拟cp -r /run/media/root/CentOS\ 7\ x86_64/* /var/www/html/app	

第三步:客户端配置

[app]name=appbaseurl=http://$IP_ADDRESS/appgpgcheck=0

编译安装软件包

在实际生产中,软件厂商有时并不会提供rpm包,而是以源码的形式发布。因为他们的源码是可以在多个平台上运行的。如果要提供安装包,开发人员就需要根据不同的平台进行编译,然后打包。这是一个比较大的工作量,所以软件提供商有时更愿意发布源码供用户自己编译安装。 最典型的应用有很多,比如Linux kernel。

在这种情况下,我们就需要自己编译安装。而Linux 中就提供了这样的编译工具。有针对C、C++语言的make项目管理器,以及针对Java 的maven管理器。

我们以下面的这个实验来介绍如何编译安装软件。

实验:在centos6.9源码编译httpd-2.2.34

  • 第一步: 首先我们先检查一下系统中是否已经安装了httpd,如果是将其删除,同时我们将在Apache官方网站上下载的Httpd的源码拷贝到Linux的app(自己创建)目录中。
# 查看是否已经安装了 httpd的相关软件 [[email protected] ~]# rpm -qa "httpd*"httpd-tools-2.2.15-59.el6.centos.x86_64
httpd-2.2.15-59.el6.centos.x86_64# 已经安装了,将其删除掉 [[email protected] ~]#yum remove httpd
  • 第二步: 安装开发包组
# 开发包组中包含了大部分的开发工具包yum groupinstall "Development tools"
  • 第三步: 将下载的源码进行解包 ,进入到软件目录,查看软件安装文档
# 将下载的源码进行解包[[email protected] app]# tar xvf httpd-2.2.34.tar.bz2 

# 进入到软件安装目录查看文档  [[email protected] app]# cd httpd-2.2.34/[[email protected] app]# cat README[[email protected] app]# cat INSTALL
  • 第四步: 生成makefile,生成makefile的过程,我们使用 configure 这个脚本来生成。 configure这个脚本是开发者在开发结束之后提供的,它指定了软件支持哪些功能。 configure 根据 Makefile.in 这个模板来自动生成。 同时./configure 也可以检测当前的安装环境是否支持安装这个软件。

同时 开发者也可以自己生成 configure 。使用autoconf生成configure脚本,使用automake生成Makefile.in。

# 先查看一下 configure 脚本的帮助[[email protected] app]# ./configure --help 

# configure 脚本执行的过程中,要指定路径 ,当然也可以不指定,系统就会放到默认目录下# 生产中建议,将编译安装的软件放到指定的路径下,这样便于管理。[[email protected] httpd-2.2.34]#./configure --prefix=/app/httpd22/ --sysconfdir=/etc/httpd22/ --enable-ssl# 脚本执行过程中会检查需要的依赖包# 这会就可以检查一下,是否缺少相应的包组,如果缺少,缺什么就装什么。比如说,gcc,openssl-devel
  • 第五步: 编译和安装 直接执行make命令进行编译,执行make install 命令进行安装
[[email protected] httpd-2.2.34]# make && make install

安装成功之后,查看之前指定的目录是否已经成功创建。例如/app/httpd22/,/etc/httpd22/

[[email protected] /]#ll -d /etc/httpd22
drwxr-xr-x. 4 root root 4096 Aug  5 12:39 /etc/httpd22
  • 第六步:针对Httpd这个软件进行环境配置 cd /etc/httpd22/
    一般在软件安装成功之后,在/app/httpd22/ 下面会有一个bin的目录,里面存放了该软件的运行命令。如果我们想运行该软件,就可以进入到bin目录下执行相应的命令,当然,我们也可以把该目录添加到环境变量中,这样我们就不用每次都进入到该目录,节省了时间。
#将 “ 路径添加到环境变量 ”  写成一个脚本 ,并写入到httpd22.sh的脚本中[[email protected] /]#echo ‘export PATH=/app/httpd22/bin:$PATH‘ > /etc/profile.d/httpd22.sh# 执行该脚本,路径添加到环境变量中[[email protected] /]#. /etc/profile.d/httpd22.sh 

# 启动软件[[email protected] app]#apachectl start  

# 查看80端口是否已经被启用  [[email protected] app]#ss -ntl  

# 修改网页文件[[email protected] app]# vim /app/httpd22/htdocs/index.html# 为软件添加 man 帮助  [[email protected] htdocs]#vim /etc/man.config# 添加一行  添加了这一行之后,就可以使用man帮助查看帮助文档了。MANPATH /app/httpd22/man

至此,我们就已经完整的介绍了CentOS上的软件包的管理。总结一下,一共三种方式,rpm,yum,编译安装,而每一种安装方式都有自己应该注意的地方,都有自己的优缺点,在实际生产中,我们可以多种方式结合使用,从而实现我们的目标。

个人博客地址:http://www.pojun.tech/ 欢迎访问

时间: 2024-10-10 06:37:24

软件包的管理的相关文章

软件包的管理(rpm和yum)

软件包在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础:只有我们学会软件包的管理才能谈得上其它的应用:本文以目录式的文档格式,列出新手弟兄所面对的软件包的安装.更新.查询相对的文档,以及几个常用的软件包管理工具. 软件包管理: 一,RPM包管理: 二,yum包管理: 一,RPM包管理: centos系统上RPM命令管理程序包: 安装,升级,卸载,查询,校验,数据库维护 RPM命令:rpm [OPTIONS] [PACKAGE_FILE] 安装:-i ,--install 升级:-U,

Linux系统软件包的管理   3月30日课程

Linux系统软件包的管理 一. rpm工具 rpm Redhat Package Manager, 设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由-和.分成了若干部分,如abrt-cli-2.0.8-15.el6.centos.i686.rpm, abrt-cli:是包名 2.0.8-15:是版本号 el6:指的是redhat企业版6 centos:指的是这是在centos上用的 i686:指的是平台类型 有些rpm包并没有写具体的平台而是no

Linux软件包的管理--YUM

在上一篇博客<Linux软件包的管理--RPM包管理器>中详细讲述了RPM,但是存在一个问题?就是RPM不能自动解决软件包之间的依赖性.所以就出现了增强版的RPM管理器-YUM. 以下讲解以CentOS6系列为例. 一.YUM介绍 YUM(Yellowdog Updater Modified)是一种C/S架构,它为什么就能自动解决依赖性关系呢?这取决于 YUM 服务端的RPM仓库,在这个仓库里放着我们经常用到的rpm格式的软件包. 1.yum仓库的组成 组成 内容 数据 存放各个rpm包 元数

Linux软件包的管理--源码管理

任何管理工具都有自己最适用的场景,像软件包的管理,在CentOS系列中,有了RPM包管理器,但是它自动不能解决包的管理器,所以就出现了yum管理器,但是,他却不能符合我们实际要求(定制功能),所以就出现了源码管理.也许,有些时候源代码也不能满足我们的要求,我就可能要自己基于源码进行二次开发.这里,我们讲解源码管理. 一.源码安装步骤 源码编译的前提,得有像gcc,make等编译工具.一般情况下在"Development tools"里面都提供了这些编译工具. 源码安装步骤其实没有特定的

rpm命令是RPM软件包的管理工具

rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度. 语法 rpm(选项)(参数) 选项 -a:查询所有套件: -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称: -c:只列出

Linux 软件包安装管理

转自:http://www.cnblogs.com/Quains/archive/2012/01/03/2311049.html 本文主要是记录下RedHat系列的软件包管理. 内容分为以下三个部分:二进制包的管理,源代码包的管理,脚本安装 一.二进制包的管理 1.1概念 主要有RPM和YUM这两种包管理. 两种包管理各有用处,其中主要区别是:YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包.而RPM的需要的操作精度比较细,需要我们做的事情比较多. 1.1.1RPM 主要

你玩游戏吗?软件包的管理(二)——YUM

Yum (Yellow dog Updater, Modified) 由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器.能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装.被Yellow Dog Linux本身,以及Fedora.Red Hat Enterprise Linux采用.--维基百科 我们的"阿

你玩游戏吗?软件包的管理(一)——RPM

RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器.RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager).最早由Red Hat研制,现在也由开源社区开发.RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo).RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型之一.--维基百

LINUX RPM、YUM软件包的管理

一.RPM.YUM 软件包管理管理工具的简介 1.首先讲一下自己的感觉:对于 初学linux的人来说安装软件是比较头疼的事,大家习惯了windos的操作,是中文的,只要上网一搜什么都有,然后下一步安装就行啦,卸载的话更是简单,在卸载或更改程序了么也很简单,还有360等.linux软件包大致分三种:以.rpm .压缩包.源码包最为常见,却他们的安装方法也是有差别的.掌握好软件安装卸载工具是以后搭建服务不可缺少的必备能力,而 RPM.YUM 就是不可或缺的利器. 2.rpm的简单介绍 1.可以安装.