> 文章列表 > Linux 配置YUM源(FTP方式获取软件源、使用阿里云yum源、同时使用本地源与在线源)YUM获取安装包并生成YUM软件仓库

Linux 配置YUM源(FTP方式获取软件源、使用阿里云yum源、同时使用本地源与在线源)YUM获取安装包并生成YUM软件仓库

Linux 配置YUM源(FTP方式获取软件源、使用阿里云yum源、同时使用本地源与在线源)YUM获取安装包并生成YUM软件仓库

YUM介绍

YUM(yellow dog updater modified)

基于RPM包构建的软件更新机制

自动解决依赖关系

yum软件仓库集中管理软件包

RPM软件包的来源

  • centos发布的RPM包集合
  • 第三方组织发布的RPM包集合
  • 用户自定义的RPM包集合

软件仓库的提供方式

  • FTP服务:baseurl=ftp://......
  • HTTP服务:baseurl=http://.......
  • 本地目录:baseurl= file://....... 

YUM源配置

 FTP方式获取软件源(配置yum源)

本地目录配置yum源在之前的博客中已经演示

        这里展示一下FTP配置方式

安装ftp服务

yum install vsftpd
systemctl start vsftpd

在ftp目录中创建centos7文件夹,用于存放从系统光盘印象中复制的软件包文件

cd /var/ftp
mkdir centos7mount /dev/sr0 /mnt #挂载系统光盘
ls /mnt #查看光盘文件
#软件包就位于Packages文件夹中 repodata为yum仓库索引表(依赖关系等)
#并且存在GPGkey[RPM-GPG-KEY-CentOS-7]可供调用
cp -r /mnt/* centos7 #拷贝光盘文件到cd /var/ftp/centos7

文件目录结构:

创建/etc/yum.repos.d/ftp.repo yum库文件

cd /etc/yum.repos.d
mkdir bak
mv *.repo bakvim ftp.repo[ftp]name=ftpbaseurl=ftp://192.168.80.101/centos7    #ftp服务默认路径从/var/ftp开始 绝对路径相应为/var/ftp/centos7enabled=1gpgcheck=1 #开不开gpg检查都可以 此处开启 下面跟上gpykey位置gpgkey=ftp://192.168.80.101/centos7/RPM-GPG-KEY-CentOS-7yum clean all && yum makecache

 此时可将本yum配置文件传递给其他主机使用

scp ftp.repo 192.168.80.102:`pwd`
yum clean all && yum makecache

若出现,关闭防火墙记得systemctl stop firewalld

  

直接使用阿里云的yum配置文件从阿里云获取yum软件仓库(将yum替换为国内源)

wget -O /etc/yum.repo.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/CentOS-7.repo
#或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
​
yum clean all && yum makecache

同时使用本地源与网络源

使用本地源速度更快,而使用网络源版本更新。可以通过安装yum-plugin-priorities插件同时使用本地源与网络源,文体两开花

安装yum-plugin-priorities插件

yum install -y yum-plugin-priorities.noarch

编辑ftp.repo配置文件添加优先级

yum install -y epel-release 
#安装在线源扩展包 等会测试用的nginx需要用扩展源才能下载
#生成/etc/yum.repos.d/epel.repo​​​​​​​vim /etc/yum.repos.d/ftp.repopriority=1 #✨添加优先级 越小越优先
#从/etc/yum.repos.d/epel.repo扩展源拷贝配置,添加在下方[epel]name=Extra Packages for Enterprise Linux 7 - $basearch# It is much more secure to use the metalink, but if you wish to use a local mirror# place its address here.#baseurl=http://download.example/pub/epel/7/$basearchmetalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdirfailovermethod=priorityenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7priority=2  #✨添加优先级

将无关的配置移除以便测试

mv *.repo bak
mv bak/ftp.repo . 
#将所有repo文件除了刚刚设置的ftp.repo都移入bak文件夹,以免生效
[root@xue yum.repos.d]# ls
bak  ftp.repo    #文件夹结构应该是这样

  开启插件(默认已经启动)

vim /etc/yum/pluginconf.d/priorities.conf[main]enabled = 1  #默认已经启动

测试

yum install -y httpd #本地源有的,使用本地源
yum install -y nginx #本地源没有,使用在线源


通过yum获取软件安装包,并且创建依赖关系表以生成软件仓库

1 通过安装完后查找缓存获取软件安装包

 yum缓存位置

yum clean all清除的缓存正是这里

cd /var/cache/yum/x86_64/7/

修改yum配置文件,修改缓存设置

若要安装完软件缓存不被清空,修改keepcache=1 

vim /etc/yum.confcachedir=/var/cache/yum/$basearch/$releasever #缓存位置keepcache=1  #保存缓存

安装mariadb数据库并查找缓存中安装包

yum install -y mariadb mariadb-server #安装
find /var/cache/yum/x86_64/7/ -name "*.rpm" #查找缓存中安装包cd /var/cache/yum/x86_64/7/
mkdir pkgs                    #将找到的安装包全部移动到pkgs文件夹中方便查看
find /var/cache/yum/x86_64/7/ -name "*.rpm" -exec cp {} pkgs/ \\;

  

2 通过yum命令获取软件安装包

使用yum install -y --downloadonly

cd /optmkdir pkg
yum install -y --downloadonly tomcat --downloaddir=/opt/pkg
#yum仅下载tomcat安装包 不安装 下载到/opt/pkgls pkg #查看

使用yumdownloader

cd /optmkdir package
yumdownloader --destdir=/opt/package httpd --resolve
# --resolve 同时下载依赖包ls package#查看

  

 

createrepo 创建依赖关系表以生成软件仓库

将刚刚下载的多个安装包执行createrepo目录,会生成依赖关系表。这时软件包文件夹才能作为yum仓库使用。

createrepo ./pkg #刚刚下载软件包的目录
ls pkg #查看 会生成一个repodata依赖关系表