Linux的rpm包管理和配置yum源

Linux的rpm包管理和配置yum源

Linux中的软件包分为源码包和二进制包(rpm包和系统默认包),虽然源码包可以自由设置功能且更适合自己的系统,但编译过程费时费力,容易出现错误,所以通常情况下还是使用更加高效快捷的rpm包。

1.rpm包命名规则

nginx-1.20.1-10.el7.x86_64.rpm
nginx   #软件包名
1.20    #主版本号
1-10    #次版本号
el7     #rhel7(红帽7)适合的Linux平台
x86_64  #CPU的指令集(适合64位操作系统)[noarch:32位64位都支持/i4-686:32位/devel/软件开发包]
.rpm    #扩展名

2.rpm包管理工具

2.1 rpm工具

rpm -ivh rpmname    #安装rpm包(从本地的rpm数据库)
rpm -ivh https://rpmfind.net/linux/epel/7/x86_64/Packages/n/nginx-1.20.1-10.el7.x86_64.rpm   #通过网络链接安装rpm包
rpm -Uvh rpmname    #更新rpm包
rpm -qa             #查询系统中所有的rpm包(通常搭配grep使用)
rpm -e rpmname      #卸载rpm包
rpm -ql rpmname     #查询该rpm包安装后在系统生成的所有文件
rpm -qf filename    #查询该文件是哪个rpm包生成
rpm -qc rpmname     #查询该rpm包的配置文件

rpm包的依赖关系是指一个rpm包安装或者运行时,需要依赖的其他rpm包。由于rpm工具指定哪个下哪个,无法自行解决依赖关系,使用起来比较麻烦,所以一般情况下使用可以自动解决依赖关系的yum工具。

2.2 yum工具

yum install rpmname     #安装软件包
yum reinstall rpmname   #重新安装软件包
yum update rpmname      #更新软件包(更新的同时会保留旧版本的包)
yum upgrade rpmname     #更新软件包(更新的同时会删除旧版本的包,会刷新内核,慎用!)
yum erase rpmname       #卸载软件包(会删除rpm包及其依赖包还有所有的配置文件)
yum remove rpmname      #卸载软件包(只会删除rpm包本身,不会删除依赖包和配置文件)
yum search 关键字        #查找yum仓库里所有和关键字相关的包
yum list                #列出yum仓库所有软件包
yum history             #yum操作历史
yum history undo 编号     #yum历史操作回滚
yum provides 命令         #查看该命令所在的软件包
yum repolist            #查询yum源信息
yum clean all           #清理yum缓存
yum makecache           #缓存软件包信息

3. 配置yum源

因为Linux系统配置的yum源都是国外网站,下载起来十分缓慢,所以最好是将yum源配置为国内网站,或者是克隆一份放在自己的ftp或http服务器上,使用起来更加方便。许多大企业或大学都有自己开源镜像站,可以去直接配置这些网站的yum源。

3.1 配置aliyun的yum源

mkdir /etc/yum.repos.d/repo.back
mv /etc/yum.repos.d/* /etc/yum.repos.d/repo.back/   #备份自己的yum源
curl -o /etc/yum.repos.d/centos.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#请求阿里云的yum源,这里以centos7为例,可以自己去网站找适配系统版本的复制链接即可
yum clean all   #清理之前的缓存
yum makecache   #生成缓存

这里阿里云的yum配置完成,可以直接使用,但是当网络环境不佳或者只能使用局域网时,最好还是克隆一份yum源到自己的服务器上,方便使用。

3.2 克隆yum源

yum -y install yum-utils    #安装克隆工具
yum repolist                #查询当前yum源仓库的数量以及名称

reposync -r base -r epel -r extras -r updates   
#将4个yum源仓库一共30562个rpm包克隆到本地(默认克隆到当前目录下)
yum -y install createrepo   #安装创建repo文件工具
createrepo base
createrepo epel
createrepo extras
createrepo updates  #将下载的yum仓库制作成可用的yum源

一般情况下,会将克隆到的yum源安装在ftp或http服务器上,以便他人下载。

3.3 制作ftp服务器

yum -y install vsftpd   #安装ftp
systemctl start vsftpd  #启动ftp(查看ftp默认的21号端口是否开启来确认是否启动成功)
cd /var/ftp             #cd到ftp的根目录
执行3.2的克隆操作,将yum仓库安装在ftp根目录下,并且createrepo创建repodata缓存,此时ftp服务器装备完成
在另一台需要使用ftp服务器yum源的服务器上进行以下操作,即可使用配置好的yum源
mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
#备份yum源
cat >/etc/yum.repos.d/local.rpeo<<EOF
[base]
name=base
baseurl=ftp://ftp服务器的IP地址/base
enabled=1
gpgcheck=0
​
[epel]
name=epel
baseurl=ftp://ftp服务器的IP地址/epel
enabled=1
gpgcheck=0
​
[extras]
name=extras
baseurl=ftp://ftp服务器的IP地址/extras
enabled=1
gpgcheck=0
​
[updates]
name=updates
baseurl=ftp://ftp服务器的IP地址/updates
enabled=1
gpgcheck=0
EOF
#编辑repo文件
yum clean all   #清理之前的缓存
yum makecache   #生成缓存
yum repolist    #确认rpm包和yum仓库数量是否一致

3.4 制作http服务器

yum -y install nginx        #安装nginx
systemctl start nginx       #启动nginx(查看http默认的80号端口是否开启来确认是否启动成功)
cd /usr/share/nginx/html    #cd到http的根目录

执行3.2的克隆操作,将yum仓库安装在http根目录下,并且createrepo创建repodata缓存,此时http服务器装备完成,http的服务不只局限于局域网,使用起来更加方便。

在另一台需要使用http服务器yum源的服务器上进行以下操作,即可使用配置好的yum源

mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
#备份yum源
cat >/etc/yum.repos.d/local.rpeo<<EOF
[base]
name=base
baseurl=http://http服务器的IP地址/base
enabled=1
gpgcheck=0
​
[epel]
name=epel
baseurl=http://http服务器的IP地址/epel
enabled=1
gpgcheck=0
​
[extras]
name=extras
baseurl=http://http服务器的IP地址/extras
enabled=1
gpgcheck=0
​
[updates]
name=updates
baseurl=http://http服务器的IP地址/updates
enabled=1
gpgcheck=0
EOF
#编辑repo文件
yum clean all   #清理之前的缓存
yum makecache   #生成缓存
yum repolist    #确认rpm包和yum仓库数量是否一致

  • 15
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值