CentOS的软件包的管理之rpm和yum

软件包管理工具

软件包组成

在linux上,一个软件包通常由二进制程序,库文件,配置文件和帮助文件组成

  • 二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin这几个目录下边;
  • 库文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64这些目录下;
  • 配置文件一般都是放在/etc这个目录下;
  • 最基本的man帮助文件则是放在/usr/share/man这个目录下的

安装方式

在CentOS上,软件的安装方式一般有四种:

  • 通用二进制编译:由志愿者把开发完成的源代码编译成二进制文件,打包后发布在网络上,大家都可以通过网络进行下载,到本地之后,经过解压配置就可以使用。
  • 软件包管理器:使用包管理工具安装,有时候必须要解决软件包之间的依赖问题,例如rpm和deb等。
  • 软件包前端管理工具:可以自动解决软件包依赖关系,例如yum和apt-get等。
  • 源码包安装:从网络上下载软件的源码包到本地计算机,用gcc等编译工具编译成二进制文件后才能使用,有时必须要解决库文件的缺失问题。

CentOS中rpm和yum的用法


rmp使用

  • CentOS上默认使用的软件包格式是rpm包
  • rpm包的管理器包括软件的打包,查询,校验,安装,升级,卸载,数据库管理等功能。
  • 在CentOS上,一个rpm的命令格式为:name-version.release.arch.rpm,其中version由主版本号,次版本号构成。(例: httpd-2.2.15-59.el6.centos.x86_64.rpm 在这里,httpd是软件包的包名,2.2.15-59依次是软件包的主发行版本号,次发行版本号和修正号等,el6.centos是软件包适用的操作系统的版本号,x86_64是软件包的架构。)

rpm的命令一般都是组合使用的,常用的组合选项有:

rpm -q          查询某个软件包,一般与别的选项组合使用
rpm -qa         查询系统上已安装的所有的软件包
rpm -qf         查询系统中的某个文件是由哪个软件包所生成
rpm -qd         查询一个软件包安装后在系统生成的帮助文件
rpm -ql         查询一个软件包安装后在系统生成文件的列表
rpm -qc         查询一个软件包的配置文件
rpm -qpl        查询一个未安装软件包安装后会在系统生成的文件列表
rpm -qi         查询一个软件包的发行信息
rpm -v          显示一个软件包安装,升级,卸载的过程            
rpm -K          校验一个软件包的私钥是否正确
rpm -U          升级软件包
rpm -f          强制安装,升级或卸载某软件
rpm -e          卸载软件包

rpm管理器一些其它的用法:

rpm --replacepkgs       重新安装某个软件包
rpm --initdb            初始化系统的rpm数据库
rpm --rebuilddb         重建系统的rpm数据库
rpm --import            向系统导入软件包的公钥
rpm --test              测试一个软件包是否能够安装在系统上,不真正安装
rpm --nodeps            安装软件包,不解决依赖关系
rpm --force             强制安装,升级或卸载,等同于rpm -f
rpm --scripts           查看一个软件包内的脚本
rpm --nodigest          不检查软件包的完整性
rpm --nosignature       不检查软件包来源的合法性

校验软件包的文件:

S            文件大小发生改变
M            文件权限发生改变
5            文件的md5值发生改变
D            设备的主次设备号发生改变
L            文件的链接发生改变
U            文件的属主发生改变
G            文件的属组发生改变
T            文件的最后修改时间发生改变
P            文件的能力发生改变

rpm包管理器的通用配置文件:

公钥文件位置:/etc/pki/rpm-gpg/
[root@localhost ~]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6        RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6  RPM-GPG-KEY-CentOS-Testing-6

数据库文件位置:/var/lib/rpm/
[root@localhost ~]# ls /var/lib/rpm
Basenames     __db.003     Group         Packages        Requirename     Triggername
Conflictname  __db.004     Installtid    Providename     Requireversion
__db.001      Dirnames     Name          Provideversion  Sha1header
__db.002      Filedigests  Obsoletename  Pubkeys         Sigmd5

yum使用

  • 做为一个标准的软件包管理系统,rpm确实很强大,但是rpm软件包的依赖问题却又让所有的SA又爱又恨,因此rpm包的前端管理工具就应运而生了。
  • Yum ,全称为:Yellow dog Updater, Modified,是一个基于RPM 包管理的字符前端软件包管理器,它基于C/S架构,能够从配置好的yum仓库自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum的仓库由各共享的rpm包及由包之间的依赖关系的文件列表等元数据文件组成。 yum的客户端由yum配置文件,缓存元数据组成。 yum客户端的工作原理分析:

1.yum源配置完成后,yum会到各可用的yum仓库下载元数据到本地,并缓存在/var/cache/yum这个目录下。
2.当管理员想要安装某个软件时,yum会根据具体的操作请求分析缓存在系统本地的元数据,结合系统已经安装的软件包,分析出要安装或升级的软件包的列表。
3.向yum仓库请求分析出的软件包列表中的软件,下载到本地客户端完成安装。
4.本次安装完成后,清除本次安装过程中下载到本地的软件包,以节省硬盘空间。

yum主配置文件为/etc/yum.conf:

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0        
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

文件格式解说:

cachedir        指的是下载软件包缓存目录
$basearch       对应为程序的版本,对yum而言指的是redhat-release版本,在使用时会替换成系统的主版本号。
$releasever     对应为系统的硬件架构,如i686,x86-64,noarch等
keepcache       软件包安装后是否保留软件包,0为不保留
logfile         为yum的系统日志文件
gpgcheck        为是否校验要安装的软件包,1为校验

yum客户端的配置文件通常位于/etc/yum.repos.d/这个目录下,以repo结尾的文件都是yum源的配置文件,yum源的配置文件可以有多个。

[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

这个是系统自带的yum源文件。yum源的配置通常由五部分组成,其中,

[base]是这个yum源的名字
name=....                相当于是这个yum源的注释信息
baseurl=.....            指定对应yum仓库的访问方式,可以使用以下四种方式:
    ftp                    ftp://server/path/to/repo
    http                http://server/path/to/repo
    nfs                    nfs://server/path/to/repo
    本地光盘yum源        file:///path/to/repo
gpgckeck=1              校验软件包
gpgkey=...              指定公钥的位置

yum的用法:

yum [option] command

yum常用的命令有:

yum repolist {all|enabled|disabled}          列出所有/已启用/已禁用的yum源
yum list {all|installed|avaliable}          列出所有/已安装/可安装的软件包
yum info package                            显示某一个软件包的信息
yum install package                         安装软件包
yum reinstall package                       重新安装软件包
yum remove|earse package                    卸载软件包
yum whatprovides|provides files             查询某个文件是哪个软件包生成的
yum grouplist {all|installed|avaliable}     列出所有/已安装/可安装的软件包组
yum groupinfo                               显示某个软件包组的信息
yum groupinstall                            安装某个软件包组
yum groupremove                             删除某个软件包组
yum history                                 查看yum使用的历史
yum clean {all|packages|metadata}           清除所有/软件包/元数据
yum makecache                               生成yum元数据 
yum --nogpgcheck                            不校验公钥文件
yum -y                                      自动进行操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ꦿ๑簡單點๑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值