Build local yum sources
yum能够从指定的服务器自动下载RPM包并且安装,自动处理依赖性关系,且一次安装所有依赖的软件包。
1. 搭建本地yum源
mount /dev/cdrom /mnt
cd /etc/yum.repos.d/
mkdir /tmp/backup
mv * /tmp/backup
vim yum.repo
[centos7] //仓库描述(可自定义)
name=centos7 server //对软件源的描述(与上面上面保持一致)
baseurl=file:///mnt //镜像的挂载入地址 file:// --格式 /mnt--指定目录
gpgcheck=0 //不检查gpgkey
enabled=1 //此yum源语句块立即生效
设置开机自动挂载
vim /etc/rc.d/rc.local
mount 镜像路径 /mnt // 最后一行添加挂载内容
chmod 755 /etc/rc.d/rc.local // 系统开机时自动执行此脚本
2. 内网环境yum仓库
采用ftp可节省服务器资源,可以配置公网,方便更新yum仓库
服务端:192.168.142.131
客户端:192.168.142.132
2.1 服务端配置本地yum源
mkdir -p /media/centos7
这里我借用第一种方法中的机器作为服务端
mount -o loop /mnt/CentOS-7-x86_64-DVD-1810.iso /mnt/
df -h
cp -r /mnt/* /media/centos7
配置yum源
cd /etc/yum.repos.d/
mkdir /tmp/backup
mv * /tmp/backup
vim yum.repo
[centos7] //仓库描述(可自定义)
name=centos7 server //对软件源的描述(与上面上面保持一致)
baseurl=file:///mnt //镜像的挂载入地址 file:// --格式 /mnt--指定目录
gpgcheck=0 //不检查gpgkey
enabled=1 //此yum源语句块立即生效
yum clean all // 清空yum缓存目录
yum makecache // 建立新的缓存
yum repolist // 检查本地的yum repo仓库
注意:关闭防火墙,关闭selinux
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
systemctl stop firewalled.service
systemctl disable firewalled.service // 设置防火墙开机不自启
设置SElinux为permissive,0为permissive模式,1为enforcing模式
setenforce 0
进到配置,将模式改为disable(关闭),或者permissive(宽容)
vi /etc/selinux/config
SELINUX=enforcing —> disable/permissive
服务端安装vsftp
yum -y install vsftpd ftp
vim /etc/vsftpd/vsftpd.conf
anon_root=/media/centos // 设置匿名用户登录的默认家目录
systemctl restart vsftpd
systemctl enable vsftpd
安装ftp的连接工具
yum -y install lftp
lftp localhost
ls
2.2 客户端配置本地yum源-ftp方式
cd /etc/yum.repos.d/
mkdir -p /tmp/backup/
mv * /tmp/backup/
vim local.repo
[local-yum]
name=CentOS7
baseurl=ftp://192.168.142.131
gpgcheck=0
enabled=1
yum clean all // 清空yum缓存目录
yum makecache // 建立新的缓存
yum repolist // 检查本地的yum repo仓库
yum -y install net-tools
2.3 createrepo
yum源增加rpm包,需要安装createrepo
yum install createrepo -y
下载rpm包到指定目录下:
yum install nginx --downloadonly --downloaddir=/media/centos7/Packages/
createrepo --update // 每加入一个rpm包就要更新一下
createrepo --update/media/centos7/Packages/
yum clean all // 清空yum缓存目录
yum makecache // 建立新的缓存
yum repolist // 检查本地的yum repo仓库
https://www.cnblogs.com/mython/p/10898461.html
3. yum 缓存 RPM 安装包
3.1 安装并缓存
cat /etc/yum.conf | grep keepcache
vi /etc/yum.conf // 开启缓存
keepcache=1
yum 配置文件详解
cat /etc/yum.conf | grep -v ^# | grep -v ^$
[main]
cachedir=/var/cache/yum/$basearch/$releasever // yum缓存RPM包位置
keepcache=1 // 是否缓存,1:保存、0:不保存
debuglevel=2 // 调用级别(0-10),默认2
logfile=/var/log/yum.log
exactarch=1 // 更新时,是否更新不同版本 RPM 包
obsoletes=1
gpgcheck=1 // 是否检查 GPG 签名
plugins=1 // 是否允许插件,默认0、不允许
installonly_limit=5 // 最多保留多少个内核包
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
3.2 yumdownloadonly【只缓存】
- CentOS 6.4 及之前版本需安装yumdownloadonly
yum -y install yum-plugin-downloadonly
- CentOS 7.X 默认存在
yum -y install vim --downloadonly --downloaddir=/root // 使用yumdownloadonly下载 vim
3.3 yumdownload【只缓存】
rpm -qa | grep yum-utils // 验证是否安装
yum -y install yum-utils
mkdir /root/test_yumdownloader
yumdownloader vim --resolve --destdir=/root/test_yumdownloader/
4. createrepo制作本地yum源
4.1 制作yum源
yum install -y createrepo
进入本地rpm包目录
总用量 244
dr-xr-xr-x 2 root root 200704 12月 4 15:48 Packages
[root@ServerA yum]# pwd
/root/yum
[root@ServerA Packages]# createrepo ./
Spawning worker 0 with 1862 pkgs
Spawning worker 1 with 1861 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@ServerA Packages]#
执行完后可以看到生成的repodata目录
[root@ServerA yum]# ll
总用量 248
dr-xr-xr-x 2 root root 200704 12月 4 15:48 Packages
drwxr-xr-x 2 root root 4096 12月 4 15:49 repodata
[root@ServerA yum]#
[root@ServerA yum]# cd repodata/
[root@ServerA repodata]# ls
40bac61f2a462557e757c2183511f57d07fba2c0dd63f99b48f0b466b7f2b8d2-other.xml.gz
89f2f521e86842c3874e2d3e0adf9fcc57f51a677007695372fef9cbc094a93a-primary.sqlite.bz2
9710c85f1049b4c60c74ae5fd51d3e98e4ecd50a43ab53ff641690fb164a6d63-other.sqlite.bz2
cfa741341d5d270d5b42d6220e2908d053c39a2d8346986bf48cee360e6f7ce8-filelists.xml.gz
d863fcc08a4e8d47382001c3f22693ed77e03815a76cedf34d8256d4c12f6f0d-filelists.sqlite.bz2
e4567be6b0b9a3fa62ae0c731d0ace9656c93f38cac1947e37c4d58d4a097d1a-primary.xml.gz
repomd.xml
[root@ServerA repodata]#
4.2 编辑yum.repo
vim /etc/yum.repo/yum.repo
[yum2]
name=yum2
baseurl=file:///root/yum/
gpgcheck=0
enabled=1
yum clean all // 清空yum缓存目录
yum makecache // 建立新的缓存
yum repolist // 检查本地的yum repo仓库
yum search php-mysql
4.3 createrepo 更新yum仓
createrepo 更新yum仓,不需要重新生成
使用createrepo --update 路径即可
[root@ServerA yum]# createrepo --update ./
Spawning worker 0 with 8 pkgs
Spawning worker 1 with 8 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@ServerA yum]#
https://www.cnblogs.com/xbroad/p/11983333.html
createrepo 是一个对rpm 文件进行索引建立的工具。大体功能就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。

浙公网安备 33010602011771号