rpm和yum

Linux程序包管理

1、rpm管理

​ ```bash

用法:rpm [选项…]

-a	查询所有套件
-b	<完成阶段><套件档>+或-t <完成阶段><套件档>+:	设置包装套件的完成
-c	只列出组态配置文件,本参数需配合"-l"参数使用
-d	只列出文本文件,本参数需要配合"-l"参数使用
-e	<套件档或--erase<套件档>:删除指定的套件;
-f	<文件>+:查询拥有指定文件的套件;
-h	或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。

如何安装rpm软件包
	rpm -ivh your-package                # 直接安装
	rpmrpm --force -ivh your-package.rpm # 忽略报错,强制安装

如何卸载rpm软件包
	rpm -ql tree        # 查询
	rpm -e tree          # 卸载
	rpm -ql tree         # 查询
 
-ivh 获得一个详细的安装进程 
--nodeps 忽略依赖关系
--force 强制安装
-U 包名:升级安装
-F 更新不管是什么直接覆盖
--replacepkgs这样 RPM 将忽略该错误信息 -vih --replacepkgs
-q name :查询
-qa查询所有已安装的RPM
-qi name 查询这个软件详细信息
-ql 显示列表
-qf path  :查询一个文件属于哪个包
-qp 包名 :查文件是什么
-qpl 包名 :针对一个没装过的包
```

- rpm命令实现程序包管理
  - 安装:
    - -ivh
    - --nodeps  就是安装时不检查依赖关系
    - --replacepkgs  这样 RPM 将忽略该错误信息 -vih --replacepkgs
    - --force  就是强制安装
  - 卸载:
    - -e
    - --nodeps  卸载不考虑依赖关系
  - 升级:
    - -Uvh
    - -Fvh
  - 降级:
    - --oldpackage
  - 查询:
    - -q
    - -qa
    - -qf
    - -qi
    - -qc
    - -q --scripts
    - -q --changlog
    - -q --provides
    - -q --requires
  - 导入GPG密钥
    - --import
  - 检查包完整性
    - -K
  - 校验时不检查包完整性
    - --nodigest
  - 校验时不检查来源合法性
    - --nosignature
  - rpm数据库重建
    - --initdb
    - --rebuilddb

### 1.2、yum/dnf工具使用

yum其实就是rpm包的前端管理工具

#### 1.2.1、yum命令简单介绍

- 可以本机配置一个yum服务器:一般使用ftp/http实现yum文件共享

- yum:yellowdog  update modifier
- yum repository : yum仓库,存储了众多的rpm包,以及包的相关的元数据文件(放置于特性的目录下,repodate目录下,)

- yum客户端
  - 配置文件
    - /etc/yum.conf	主配置文件仅用于指向各yum仓库指向的公共配置,或者不属于仓库的配置即yum程序自己的配置
    - /etc/yum.repos.d/*.repo   repo结尾的文件之一个仓库的指向

```bash
~]# cat /etc/yum.conf 		int风格配置文件
[main]					   主配置段
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0				本地使用完的缓存文件是否要保存
debuglevel=2			debug给你
logfile=/var/log/yum.log	yum日志
exactarch=1				 安装程序包时要不要做严格的平台匹配
obsoletes=1				 
gpgcheck=1				 安装包时是否检查包的完整性和来源合法性
plugins=1				 yum是否支持插件机制
installonly_limit=5		  一次同时安装几个程序包
bugtracker_url=http://bugs.centos.org/set_project.php?	project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum	追踪bug时的URL
distroverpkg=centos-release		当前发行版版本号去哪里获取
```



#### 1.2.2、yum仓库指向的定义

```bash
[repositoryID]
name=
baseurl=url...
enabled={1|0}
gpgcheck={1|0}		检查检验完整性及来源合法性
gpgkey=url			值明密钥文件
repo_gpgcheck={1|0}	 检查仓库的元数据文件的签名信息
enablegroups={1|0}	 是否支持组执行程序包管理,默认时1支持的
failovermethod={roundrobin轮询,但是并非轮询也是随机 | priorlty 优先级,自上而下 }		 故障转移方法,适用于多个baseurl,如果坏了继续使用哪个仓库工作,默认使用随机roundrobin
cost=		默认为1000,开销,可以限制库的开销
```



#### 1.2.3、yum命令的用法:

```bash
yum [options] [command] [package]...

#显示仓库列表
repolist [all|enabled|disabled]		所有、启用的、未启用的、默认显示启用的

#显示程序包
list all	所有
list php*	显示php开头的所有的包
list available	显示可用的安装包,仓库中有,但是未安装的
list updates	显示可用的升级包
list installed	显示已经安装的包
list extras		显示仓库中额外的包
list obsoletes	显示废弃的包

#安装程序包,及解决依赖安装
install 包 ....	

#升级指程序包
update 包

#降级
downgrade  包

#检查哪些升级包
check-update

#卸载指定程序包,及解决依赖卸载
remove  包

#查看包的简要信息
info   包

#查看某个特性是由哪个程序包提供的,也可以是某个配置文件
provides  包/文件

#清楚本地的缓存
clean [packages|matadata|expire-cache|rpmdb|plugins|all]
清理缓存中的包、清理元数据、清理过期缓存、清理插件、清理所有

#手动生成缓存
makecache

#根据关键字搜索相关的信息,模糊匹配机制,包名及summary信息
search	

#重新安装,基于覆盖的放置安装
reinstall 包

#查看此包的依赖
deplist  包

#查看yum事务历史
history

#本地安装,并从光盘解决依赖
localinstall  包

#安装升级本地程序包
localupdate  包


#包组相关的命令
groupinstall  包组
grouplist
groupinfo
groupsearch
groupremove
groupupdate
```

#### 1.2.4、使用关盘当作本地yum仓库

```bash
1、挂载关盘至目录,例如:/media/cdrom
mount -r  -t  iso9660 /dev/cdrom  /media/cdrom

2、创建配置文件
[...]
name=...
baseurl=
gpgcheck=
enabled=
```

#### 1.2.5、yum的命令行选项

```bash
#命令行的优先级要高于配置文件中的配置
--nogpgcheck	禁止进行gpg check	
-y			   自动回答为yes,直接安装
-q			   静默模式
--disablerepo=repoidglob	临时禁用此处指定的repo
--enablerepo=repoidglob		临时启用此处指定的repo
--nopludins				   禁用所有插件
```

#### 1.2.6、repo配置文件中的可用变量

```bash
https://mirrors.aliyun.com/epel/6/x86_64/
https://mirrors.aliyun.com/epel/6/i386/

https://mirrors.aliyun.com/epel/7/x86_64/

$releasever:当前OS的发行版的主版本号
$arch		平台
$basearch	基础平台
$YUM0-$YUM9

https://mirrors.aliyun.com/epel/$releasever/$basearch/
```

#### 1.2.7、创建yum仓库

```bash
将rpm安装包下载到指定目录中
cd /指定目录
createrepo 
```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值