linux rpm和yum使用介绍

来源:互联网 发布:易支付源码 编辑:程序博客网 时间:2024/05/19 21:42

linux中管理程序包的方式主要有两种:rpm 和yum,他们的主要功能有安装、查询、卸载、升级、校验、数据库的重建、验正数据包等。下面将分别对rpm 和yum 做详细介绍和应用举例。
一. rpm
rpm包的命名必须以 .rpm 结尾,并且是二进制格式,包名格式:
name-version-release.arch.rpm 。例如:bind-9.7.1-1.el5.i586.rpm。 其中主版本号:重大改进;次版本号:某个子功能发生重大变化;发行号:修正了部分bug,调整了一点功能。
1、安装命令 : rpm -ivh /PATH/TO/PACKAGE_FILE
-h: 以#显示进度;每个#表示2%;
-v: 显示详细过程
–test: 测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscripts:不执行程序包脚本
%pre: 安装前脚本; –nopre
%post: 安装后脚本; –nopost
%preun: 卸载前脚本; –nopreun
%postun: 卸载后脚本; –nopostun

    如:rpm -ivh system-gnome-theme-60.0.2-1.el6.noarch.rpm

2、查询命令:
rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包
rpm -qi PACKAGE_NAME: 查询指定包的说明信息;
rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;
rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;
rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;
rpm -q –scripts PACKAGE_NAME: 查询指定包中包含的脚本
rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

这里写图片描述

3、升级命令:
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;
–oldpackage: 降级
注意:这种升级会把会把老版本删除,生产中不建议这样做,用rpm -ivh 安装操作!! 重要!

4、卸载
rpm -e PACKAGE_NAME
–nodeps

[root@Centos6.9Packages]#rpm -e tree 卸载tree 包[root@Centos6.9Packages]#rpm -q tree 卸载后查询package tree is not installed

5、校验

rpm -V PACKAGE_NAME

6、重建数据库
rpm
–rebuilddb: 重建数据库,一定会重新建立;
–initdb:初始化数据库,没有才建立,有就不用建立;

7、检验来源合法性,及软件包完整性;
加密类型:
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;
rpm -K /PAPT/TO/PACKAGE_FILE
dsa, gpg: 验正来源合法性,也即验正签名;可以使用–nosignature,略过此项
sha1, md5: 验正软件包完整性;可以使用–nodigest,略过此项

[root@Centos6.9Packages]#rpm -K tree-1.5.3-3.el6.x86_64.rpm tree-1.5.3-3.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OKrpm --import RPM-GPG-KEY-CentOS-6  导入公钥 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

二 yum 安装
YUM全称叫Yellowdog Update Modifier, 是rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包, up2date的替代工具。
yum repository: yum repo,存储了众多rpm包,以及
包的相关的元数据文件(放置于特定目录repodata下)
文件服务器:
http://
https://
ftp://
file://

1. yum客户端配置文件:

/etc/yum.conf:是yum库的全局配置文件
/etc/yum.repos.d/*.repo:是单独的yum个性化配置文件,个性化配置优先于全局配置。
仓库指向的定义:

[repositoryID] 必须用[ ] 扩起来name=xxbaseurl=url://path/to/repository/ (可以是http,https,ftp,也可以是本地光盘文件用file:// )enabled={1|0}   (1表示启用该yum 配置文件,0表示不启用)gpgcheck={1|0}  (1表示是检查yum 源的证书,如果不通过则停止安装,0表示不检查。)gpgkey=URL    (URL 填写证书的路径)enablegroups={1|0} (1表示允许数据包组安装,默认是允许的)failovermethod={roundrobin|priority}roundrobin: 意为随机挑选,默认值priority:按顺序访问cost= 默认为1000
  • yum的 repo配置文件中可用的变量:

releasever:OSarch: 平台, i386,i486,i586,x86_64等
basearchi386,x8664YUM0-$YUM9:自定义变量
 实例:
http://server/centos/releasever/basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384

yum 客户端常用命令:
yum [options] [command] [package …]
显示仓库列表: yum repolist all
显示程序包: yum list
安装程序包:
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安装)33
yum命令
 升级程序包:
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 |
查看指定包所依赖的capabilities:
yum deplist package1 [package2] […]
 查看yum事务历史:
yum history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
日志 : /var/log/yum.log3

2. yum 服务器配置

yum 服务端首先要有http 或者https 或者ftp 服务,其次要有repodata 和packets 才能构成yum 库。yum 客户端的baseurl为 repodata 的父目录。 下面以centos 7.3 yum服务端启用ftp服务为例:
1. 启用yum 服务端的ftp 服务:
安装vsftpd 包 :
rpm -ivh /misc/cd/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
启动服务 :systemctl start vsftpd
设置开机自动启动服务
systemctl enable vsftpd
设置完成后通过 ss -tnl 检查 21 端口是否开启

[root@localhost profile.d]# ss -tnlState      Recv-Q Send-Q Local Address:Port               Peer Address:Port              LISTEN     0      128               *:111                           *:*                  LISTEN     0      5      192.168.122.1:53                            *:*                  LISTEN     0      128               *:22                            *:*                  LISTEN     0      128       127.0.0.1:631                           *:*                  LISTEN     0      100       127.0.0.1:25                            *:*                  LISTEN     0      128              :::111                          :::*                  LISTEN     0      32               :::21                           :::*   

关闭系统防火墙和selinux :

systemctl  stop firewalld.service  马上禁用systemctl  disable  firewalld.service 下次开机禁用vim /etc/selinux/config SELINUX=permissive  让防火墙永久关闭

在ftp /var/ftp/pub下生成yum 源文件

cd /var/ftp/pub/7cp /misc/cd/ . -r   把光盘内容copy 到ftp/pub/7 目录下[root@localhost 7]# lsCentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7EULA             isolinux  repodata  TRANS.TBL

现在yum 服务端配置完成了,剩下只要配置修改下客户端的配置文件就可以了!
客户端配置:

vim /etc/yum.repos.d/base.repo (base.repo 是自定义的)[ftpbase]name=ftp server repobaseurl=ftp://192.168.10.33/pub/centos/$releasever/ ($releasever 是yum 的变量)gpgcheck=0

客户可以通过yum install xx 测试,如果不成功第一要确保yum 的路径是能够访问的,如果路径正确通过yum clean all 清楚缓存就可以了。

原创粉丝点击