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命令在安装更新时进行检索。

posted @ 2023-07-19 23:35  LandonXing  阅读(21)  评论(0)    收藏  举报