Linux yum & rpm 运维

本文介绍如何使用Yum和RPM进行包管理,包括列出rpm包的文件、更新元数据、清除缓存、保存下载的rpm包、只下载不安装、离线安装等操作。同时提供了解决常见问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用操作

列出rpm包的文件

rpm -qpl packetname.rpm

列出所有软件库

yum repolist all

更新元数据

yum使用xml来存储包的依赖信息,如果希望将元信息缓存到本地。

yum makecache

清除缓存包

yum clean all

Yum保存下载的rpm包不删除

yum下载的rpm文件包安装完全部自动清除安装文件。修改一下yum的设置,可以让他不删除下载的rpm。把/etc/yum.conf文件中的keepcache=0改为keepcache=1即可。rpm文件包保存目录为:/var/cache/yum

/etc/yum.conf包含yum更新软件需要用的URL.

[main]
cachedir=/var/cache/yum/$basearch/$releasever
# 是否缓存rpm包,默认情况下为0,即当安装成功时,会将下载的rpm包删除
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5

yum只下载不安装

--downloadonly选择

缺点是不会下载已经安装的包,如果说A机器上有个包装了,而离线机器B某个包没有装,那就不灵了。

yum -y install --downloadonly  --downloaddir=/root perl

离线安装

在线机器下载rpm.*文件,拷贝离线机器安装。安装方式还是使用yum,不过yum使用的是本地库。

  1. 下载本地库制作软件createrepo
yum install yum-plugin-downloadonly yum-utils createrepo
  1. 添加两个文件夹用于下载,并下载rpm文件

创建下载文件夹

$ mkdir /var/rpm/repo
$ mkdir /var/rpm/repo-installroot

下载rpm(以docker为例)

yum install --downloadonly --installroot=/var/rpm/repo-installroot \
	--releasever=7 --downloaddir=/var/rpm/repo docker-ce
  1. 制作本地库

将下载的rpm包变成本地库

createrepo --database /var/rpm/repo
rm -rf /var/rpm/repo-installroot
  1. /var/rpm/repo拷贝到离线机

/etc/yum.repos.d中添加一个文件(e.g. offline.repo):

[offline-docker]
name=CentOS-$releasever - My Repository
baseurl=file:///var/rpm/repo
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

安装docker-ce

yum --disablerepo=\* --enablerepo=offline-docker install docker-ce

本地库多次改变需要清除yum缓存的元数据(比如加了一些rpm包)

 yum --disablerepo=\* --enablerepo=offline-myrepo clean metadata

搭建本地yum私库

yum仓库只需要将带rpm包的本地目录(目录中含有repodata/repomd.xml)通过nginx暴露出来。

  1. 首先基于上面离线安装章节,在联网机器上下载所需rpm包并制作本地库。

  2. 在离线yum私库机器上安装nginx

  3. 配置nginx配置文件

    server {
           listen 8080;
           server_name  _;
           # 根目录指向 Yum 仓库的本地存储路径
           root /data/yumrepos/repo;
    
           # 允许列出目录(方便查看仓库结构,可选)
           autoindex on;
           autoindex_exact_size off;
           autoindex_localtime on;
    
           # 日志配置(可选)
           access_log /var/log/nginx/yum-repo-access.log;
           error_log /var/log/nginx/yum-repo-error.log;
    
           # 处理请求的默认规则
           location / {
              try_files $uri $uri/ =404;
           }
        }
    

    /data/yumrepos/repo目录结构如下所示:

    # ls  -al /data/yumrepos/repo/* |grep -v rpm			
    /data/yumrepos/repo/repodata:
    总用量 924
    -rw-r--r-- 1 root root   3096  821 16:54 repomd.xml
    
  4. 其他离线机器配置从此离线yum私库拉取:

    • /etc/yum.repos.d/base.repo
      [local-base]
      name=Intranet Base Repository
      baseurl=http://<IP>:8080/
      enabled=1
      gpgcheck=0
      

troubleshooting

  1. 检查rpm的安装脚本
rpm --scripts -qlp  xx.rpm
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值