本文共 7269 字,大约阅读时间需要 24 分钟。
Linux下对于软件包的管理使用rpm管理方式。直接使用rpm包管理工具来进行rpm包的安装,升级,卸载时,对于最让人头疼的莫过与包之间的依赖关系。yum作为一个rpm包前端管理工具,可以自动处理依赖性关系,一次安装所有依赖的软件包,并且支持在线下载、安装、卸载、升级rpm软件包。本文主要描述基于本机,本地yum服务器配置yum源,以及基于公网yum源配置本地客户端,供大家参考。
1、需要有一个包含各种rpm安装文件的软件仓库(即yum源)
2、有软件仓库的仓库数据库(repodata),其中收集了软件仓库中所有rpm包的头部信息(每个rpm包的包头信息包含了该包的描述,功能,提供的文件,依赖关系等信息); 3、有软件仓库的地址等信息创建rpm包文件存放目录及复制相关文件 # mkdir -pv /mnt/CentOS7_ISO # cd /run/media/robin/CentOS\ 7\ x86_64/ # cp -R * /mnt/CentOS7_ISO/修改yum源repo文件配置 # cd /etc/yum.repos.d/ # mkdir old # mv *.repo old编辑repo配置文件 # vi /etc/yum.repos.d/local.repo [local-media] name=CentOS-$releasever - Media baseurl=file:///mnt/CentOS7_ISO/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7清空yum缓存目录 [root@centos7-router yum.repos.d]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: local-media Cleaning up everything Cleaning up list of fastest mirrors生成yum元数据 [root@centos7-router yum.repos.d]# yum makecache Loaded plugins: fastestmirror, langpacks local-media | 3.6 kB 00:00:00 (1/4): local-media/group_gz | 155 kB 00:00:00 (2/4): local-media/primary_db | 2.8 MB 00:00:00 (3/4): local-media/other_db | 1.2 MB 00:00:00 (4/4): local-media/filelists_db | 2.9 MB 00:00:00 Determining fastest mirrors Metadata Cache Created ###提示元数据缓存创建成功查看本机yum repo 仓库 [root@centos7-router ~]# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status local-media CentOS-7 - Media 3,723 repolist: 3,723
为本机配置ftp服务器,将其发布供网络其它客户端作为yum源
安装vsftp [root@centos7-router ~] # yum -y install vsftpd [root@centos7-router ~] # vi /etc/selinux/config SELINUX=disabled [root@centos7-router ~] # setenforce 0 ###立即生效修改ftp配置文件 [root@centos7-router ~] # vi /etc/vsftpd/vsftpd.conf anon_root=/mnt/CentOS7_ISO启动ftp [root@centos7-router ~]# systemctl start vsftpd [root@centos7-router ~]# systemctl enable vsftpd测试ftp服务可用性 [root@centos7-router ~]# ftp localhost Trying ::1... Connected to localhost (::1). 220 (vsFTPd 3.0.2) Name (localhost:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 229 Entering Extended Passive Mode (|||41973|). 150 Here comes the directory listing. -r--r--r-- 1 0 0 14 Sep 14 09:06 CentOS_BuildTag dr-xr-xr-x 3 0 0 33 Sep 14 09:06 EFI ### Author : Leshami -r--r--r-- 1 0 0 215 Sep 14 09:06 EULA ### Blog : http://blog.csdn.net/leshami -r--r--r-- 1 0 0 18009 Sep 14 09:06 GPL dr-xr-xr-x 2 0 0 41 Sep 14 09:06 LiveOS dr-xr-xr-x 2 0 0 200704 Sep 14 09:08 Packages -r--r--r-- 1 0 0 1690 Sep 14 09:08 RPM-GPG-KEY-CentOS-7 -r--r--r-- 1 0 0 1690 Sep 14 09:08 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r-- 1 0 0 2883 Sep 14 09:08 TRANS.TBL dr-xr-xr-x 3 0 0 54 Sep 14 09:06 images dr-xr-xr-x 2 0 0 4096 Sep 14 09:06 isolinux dr-xr-xr-x 2 0 0 4096 Sep 14 09:08 repodata 226 Directory send OK.配置防火墙 [root@centos7-router ~]# firewall-cmd --add-service=ftp --permanent [root@centos7-router ~]# firewall-cmd --add-service=ftp [root@centos7-router ~]# systemctl reload firewalld.service
除了支持ftp方式外,也可以通过http方式将其发布供网络其它客户端作为yum源
安装httpd [root@centos7-router ~]# yum install httpd [root@centos7-router ~]# systemctl enable httpd [root@centos7-router ~]# systemctl start httpd配置防火墙 [root@centos7-router ~]# firewall-cmd --add-service=http --permanent [root@centos7-router ~]# firewall-cmd --add-service=http [root@centos7-router ~]# systemctl reload firewalld.service将CentOS 光盘文件copy到/var/www/html/repo此处使用了链接方式,将其链接到已经在本地磁盘的/mnt/CentOS7_ISO [root@centos7-router ~]# ln -sv /mnt/CentOS7_ISO /var/www/html/repo ‘/var/www/html/repo’ -> ‘/mnt/CentOS7_ISO’ [root@centos7-router ~]# ls /var/www/html/repo CentOS_BuildTag EULA images LiveOS repo RPM-GPG-KEY-CentOS-7 TRANS.TBL EFI GPL isolinux Packages repodata RPM-GPG-KEY-CentOS-Testing-7通过浏览器校验,此时应该可以看到文件列表(此处略) http://192.168.1.175/repo
配置客户端 [root@centos7-web ~]# cd /etc/yum.repos.d/ [root@centos7-web ~]# mkdir old [root@centos7-web ~]# mv *.repo old [root@centos7-web yum.repos.d]# vi /etc/yum.repos.d/intranet.repo [intranet-media] #库名称 name=CentOS-$releasever - Media #名称描述 baseurl=ftp://172.24.8.254 #yum源目录,源地址 gpgcheck=0 #检查GPG-KEY,0为不检查,1为检查 enabled=1 #是否用该yum源,0为禁用,1为使用 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #gpgcheck=0时无需配置 [root@centos7-web yum.repos.d]# yum clean all [root@centos7-web yum.repos.d]# yum makecache [root@centos7-web yum.repos.d]# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status intranet-media CentOS-7 - Media 3,723 repolist: 3,723测试yum配置 [root@centos7-web yum.repos.d]# yum install ftp -y
配置客户端repo文件 [root@centos7-web ~]# mv /etc/yum.repos.d/intranet.repo /etc/yum.repos.d/old/ [root@centos7-web ~]# yum-config-manager --add-repo=http://192.168.1.175/repo Loaded plugins: fastestmirror, langpacks adding repo from: http://192.168.1.175/repo [192.168.1.175_repo] name=added from: http://192.168.1.175/repo baseurl=http://192.168.1.175/repo enabled=1 [root@centos7-web ~]# yum clean all Loaded plugins: fastestmirror, langpacks Cleaning repos: 192.168.1.175_repo Cleaning up everything Cleaning up list of fastest mirrors [root@centos7-web ~]# yum makecache Loaded plugins: fastestmirror, langpacks 192.168.1.175_repo | 3.6 kB 00:00:00 (1/4): 192.168.1.175_repo/group_gz | 155 kB 00:00:00 (2/4): 192.168.1.175_repo/primary_db | 2.8 MB 00:00:00 (3/4): 192.168.1.175_repo/other_db | 1.2 MB 00:00:00 (4/4): 192.168.1.175_repo/filelists_db | 2.9 MB 00:00:01 Determining fastest mirrors Metadata Cache Created [root@centos7-web ~]# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status 192.168.1.175_repo added from: http://192.168.1.175/repo 3,723 repolist: 3,723
# wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo# rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-7.noarch.rpm # yum makecache
如下为光盘iso文件路径,可以直接将其配置到baseurl,最大的好处是,可以节省虚拟机磁盘空间占用。如下:
baseurl=”file:///run/media/robin/CentOS 7 x86_64”