目录
上篇:Liunx软件包管理(上)-CSDN博客
环境准备
一. 通过镜像制作本地yum源
二. 局域网远程yum源制作(企业案例)
三. 通过开启yum下载缓存功能制作本地yum源
四. 克隆yum源
环境准备
以下实验需要准备两台虚拟主机,并关闭防火墙和SEliunx
给192.168.226.100修改主机名,作为服务主机
hostnamectl set-hostname server
给192.168.226.134 修改主机名,作为客户主机
hostnamectl set-hostname client
一. 通过镜像制作本地yum源
这个情况很少用,原理就是通过镜像文件制作本地yum源的过程包括将ISO镜像文件挂载到本地系统、复制其内容到本地目录、配置yum源以使用这些本地文件。
例如现在使用的mini版,包较少,那么就可以去复制一个较大镜像文件的rpm包给本地使用。
首先下载一个较大的镜像版本
将虚拟机关系后切换到刚较大的映像文件,然后正常开启虚拟机。
虚拟机上操作
挂载镜像
[root@server ~]# mount /dev/cdrom /mnt mount: /dev/sr0 写保护,将以只读方式挂载
备份原有yum
mkdir -p /etc/yum.repos.d/backup/ && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
创建修改yum配置文件
vim /etc/yum.repos.d/myyum.repo #写入如下内容 [xaffff] name=my repo baseurl=file:///mnt gpgcheck=0 enabled=1
参数解释:
[xaffff] #这是仓库的唯一ID(标识符)。
name=my repo #仓库的名称。
baseurl=file:///mnt #仓库的基本URL。
gpgcheck=0 #是否启用GPG签名检查。
enabled=1 #是否启用此仓库。
清理缓存
yum clean all
重载
yum makecache
列出系统上所有可用的和已启用的软件仓库
[root@server ~]# yum repolist 已加载插件:fastestmirror Loading mirror speeds from cached hostfile 源标识 源名称 状态 xaffff my repo 4,021 repolist: 4,021
现在就成功啦,可以使用镜像文件的包了。
二. 局域网远程yum源制作(企业案例)
操作系统:centos7.9
资源: CentOS-7-x86_64-DVD-2009.iso镜像
实验服务器两台:
192.168.137.100 (作为vsftpd服务端)
192.168.137.134 (客户端)
#首先测试两台主机可否ping通 #在192.168.137.100上操作 [root@server ~]# ping 192.168.226.134 #关闭防火墙 [root@server ~]# systemctl stop firewalld #关闭selinux [root@server ~]# setenforce 0 在192.168.137.143上操作: [root@client ~]# ping 192.168.226.100 [root@client ~]# systemctl stop firewalld [root@client ~]# setenforce 0 ========================================================== 在192.168.168.226.100上操作制作本地yum源,作为yum服务端 [root@server ~]# yum install -y vsftpd createrepo [root@server ~]# systemctl start vsftpd #创建一个自定义目录,专门用作共享YUM源的目录 [root@server ~]# mkdir /var/ftp/yum [root@server ~]# cd /var/ftp/ #复制一个仓库试验,这里用的就是前面挂载镜像文件的仓库,实际工作可以换成自己拷贝的仓库 [root@server ftp]# cp /mnt/Packages/* yum/ #在目标目录中生成 YUM 仓库的元数据 [root@server ftp]# createrepo yum/ ========================================================== yum客户端,在192.168.226.134上操作: [root@client ~]# cd /etc/yum.repos.d/ #删除其他镜像仓库,防止验证实验,再工作中视情况而定 [root@client yum.repos.d]# rm -rf ./* #创建新文件,加入如下配置,baseurl就是服务主机的仓库路径 [root@client yum.repos.d]# vim my.repo [ftpYum] name=centos baseurl=ftp://192.168.226.100/yum enabled=1 gpgcheck=0 [root@client yum.repos.d]# yum clean all [root@client yum.repos.d]# yum makecache [root@client yum.repos.d]# yum repolist #找个有的包下载看是否可用 [root@client yum.repos.d]# yum install -y python-augeas #在安装的源里可以看到是叫ftpYum的名字,证实部署成功。
三. 通过开启yum下载缓存功能制作本地yum源
制作自己的yum源:
打开Yum缓存功能:安装完软件之后,软件不会被删除(因为默认安装完之后,不会保留安装包)
[root@server ~]# vi /etc/yum.conf +3 #修改下面参数的值为1,软件会被保存到cachedir指定的目录下 keepcache=1 [root@server packages]# yum install -y zip net-tools wget [root@server packages]# ll 总用量 1116 -rw-r--r-- 1 root root 312968 8月 23 2019 net-tools-2.0-0.25.20131004git.el7.x86_64.rpm -rw-r--r-- 1 root root 560272 5月 16 2019 wget-1.14-18.el7_6.1.x86_64.rpm -rw-r--r-- 1 root root 266160 11月 21 2016 zip-3.0-11.el7.x86_64.rpm 自己制作yum源 #(把rpm安装包放到此目录里面) [root@server ~]# mkdir /myyum #把想用yum安装的软件包拷贝到目录下 [root@server ~]# cp /var/cache/yum/x86_64/7/base/packages/* /myyum/ #下载保证有createrepo工具 [root@server ~]# yum install -y createrepo #此目录就可以作为yum源了。 [root@server ~]# createrepo /myyum [root@server ~]# vim /etc/yum.repos.d/myyum.repo [tty] name=mytty baseurl=file:///myyum enabled=1 gpgcheck=0 [root@server ~]# yum repolist #然后就可以看到叫mytty的缓存镜像仓库啦
四. 克隆yum源
在公司内网中,可能无法连接外部网络,这时需要我们将外部yum源中的包克隆到本地。
首先在服务主机server操作 #删除之前做的镜像源,方便后续实验的验证 [root@server ~]# rm -rf /etc/yum.repos.d/* #下载同步一个阿里的源用作被克隆的 [root@server ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo [root@server ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo [root@server ~]# yum clean all [root@server ~]# yum makecache #这次我们将源通过nginx来提供服务 [root@server ~]# yum install -y yum-utils epel-release [root@server ~]# yum install -y nginx [root@server ~]# cd /usr/share/nginx/html [root@server html]# rm -rf * #同步远程YUM到本地,这里就是同步阿里云的镜像仓库里的rpm包到本地,太多啦咱们测试下载几百个就可以啦 #这里我同步啦500多个来测试,如果中间停止,继续执行这个命令时会续接之前的进度执行 [root@server html]# reposync -r base -r epel -r extras -r updates #创建 YUM 仓库元数据 [root@server ~]# createrepo base/ [root@server ~]# vim /etc/nginx/nginx.conf +43 #在配置文件第43行这里加入下面内容 location / { root /usr/share/nginx/html; autoindex on; } #重启nginx [root@server ~]# systemctl restart nginx ================================================================================== 在客户端主机操作 [root@client ~]# vim /etc/yum.repos.d/myrepo.repo [http-base-yum] name=http-yum baseurl=http://192.168.226.100/base enabled=1 gpgcheck=0 #在客户端主机验证,用一个同步这500来个里有的,且依赖包也存在的,进行下载测试 [root@client ~]# yum install -y apr 已加载插件:fastestmirror Loading mirror speeds from cached hostfile http-base-yum | 2.9 kB 00:00:00 http-base-yum/primary_db | 263 kB 00:00:00 正在解决依赖关系 --> 正在检查事务 ---> 软件包 apr.x86_64.0.1.4.8-7.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================================================================================================================================== Package 架构 版本 源大小 ===================================================================================================================================================================================== 正在安装: apr x86_64 1.4.8-7.el7 http-base-yum 104 k 事务概要 ===================================================================================================================================================================================== 安装 1 软件包 总下载量:104 k 安装大小:221 k Downloading packages: apr-1.4.8-7.el7.x86_64.rpm | 104 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : apr-1.4.8-7.el7.x86_64 1/1 验证中 : apr-1.4.8-7.el7.x86_64 1/1 已安装: apr.x86_64 0:1.4.8-7.el7 完毕!
可以看到,从克隆的仓库里下载成功,并且我们访问server主机的web页面也可以看到这个我们克隆的仓库。
还没有评论,来说两句吧...