centos利用createrepo制作本地yum源

# 准备

# 可上网的源

添加阿里的源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
1

清除缓存 生成新的缓存

yum clean all

yum makecache
1
2
3

# 一、在可以访问外网的机器上安装createrepo

yum install createrepo -y
1

# 二、安装yum-utils工具包

[root@localhost home]# yum install yum-utils -y
1

# 三、创建/home/yum-custom/packages目录用于存放yum安装包

[root@localhost home]# mkdir /home/yum-custom
[root@localhost home]# mkdir /home/yum-custom/packages
[root@localhost home]# 
1
2
3

# 四、使用yumdownloader 下载指定的安装包到/home/yum-custom/packages目录下

yumdownloader离线下载神器;其实就是从https://pkgs.org/去下载对应系统的软件版本;

[root@localhost home]# yumdownloader --downloadonly --destdir=/home/yum-custom/packages/ telnet unzip libaio pcre-devel openssl openssl-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
\* base: mirrors.huaweicloud.com
\* extras: mirrors.bupt.edu.cn
\* updates: mirrors.bfsu.edu.cn
(1/4): libaio-0.3.109-13.el7.i686.rpm | 24 kB 00:00:00 
(2/4): libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00 
(3/4): openssl-devel-1.0.2k-24.el7_9.i686.rpm | 1.5 MB 00:00:00 
(4/4): pcre-devel-8.32-17.el7.i686.rpm | 480 kB 00:00:01 
exiting because "Download Only" specified
1
2
3
4
5
6
7
8
9
10
11
  • --downloadonly 只下载
  • --downloaddir 指定安装包下载的目录
[root@localhost home]# ll /home/yum-custom/packages
总用量 4852
-rw-r--r--. 1 root root 24912 1125 2015 libaio-0.3.109-13.el7.i686.rpm
-rw-r--r--. 1 root root 24744 1125 2015 libaio-0.3.109-13.el7.x86_64.rpm
-rw-r--r--. 1 root root 505716 118 22:38 openssl-1.0.2k-24.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 1581868 118 22:38 openssl-devel-1.0.2k-24.el7_9.i686.rpm
-rw-r--r--. 1 root root 1581828 118 22:38 openssl-devel-1.0.2k-24.el7_9.x86_64.rpm
-rw-r--r--. 1 root root 491280 811 2017 pcre-devel-8.32-17.el7.i686.rpm
-rw-r--r--. 1 root root 491272 811 2017 pcre-devel-8.32-17.el7.x86_64.rpm
-rw-r--r--. 1 root root 65932 1118 2020 telnet-0.17-66.el7.x86_64.rpm
-rw-r--r--. 1 root root 176616 114 21:22 unzip-6.0-24.el7_9.x86_64.rpm
[root@localhost home]#
1
2
3
4
5
6
7
8
9
10
11
12

# 五、使用createrepo工具创建yum源

[root@localhost home]# createrepo /home/yum-custom
Spawning worker 0 with 2 pkgs
Spawning worker 1 with 1 pkgs
Spawning worker 2 with 1 pkgs
Spawning worker 3 with 1 pkgs
Spawning worker 4 with 1 pkgs
Spawning worker 5 with 1 pkgs
Spawning worker 6 with 1 pkgs
Spawning worker 7 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost home]# 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost home]# ll yum-custom/
总用量 8
drwxr-xr-x. 2 root root 4096 120 11:51 packages
drwxr-xr-x. 2 root root 4096 120 11:52 repodata
[root@localhost home]# 
1
2
3
4
5

生成了一个respodata目录里面存放的是yum安装时使用的索引数据

# 六、将yum-custom通过U盘或者scp命令复制目标服务器上/home/yum-custom(不能访问外网)

将目标服务器上的/etc/yum.repos.d下面的repo文件打包备份为CentIS-bak.tar.gz包

[root@localhost bak]# tar zcvf CentOS-bak.tar.gz CentOS-*.*
CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Sources.repo
CentOS-Vault.repo
CentOS-x86_64-kernel.repo
CentOS-Media.repo
[root@localhost bak]# 
1
2
3
4
5
6
7
8
9
10

删除现有的repo文件只保留 CentOS-Media.repo文件

[root@localhost yum.repos.d]# ll /etc/yum.repos.d/
总用量 8
-rw-r--r--. 1 root root 2457 120 00:51 CentOS-bak.tar.gz
-rw-r--r--. 1 root root  569 119 21:54 CentOS-Media.repo
[root@localhost yum.repos.d]# 
1
2
3
4
5

# 七、编辑CentOS-Media.repo文件,设置baseurl为本地yum源路径

[root@localhost yum.repos.d]# vi CentOS-Media.repo 
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///home/yum-custom
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
1
2
3
4
5
6
7
  • gpgcheck=0
  • enabled=1

配置repo路径、关闭gbp校验、启用这个repo

# 八、清空现有cache,并生成新的cache

清除缓存 生成新的缓存

yum clean all
yum makecache
1
2
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: c7-media
Cleaning up list of fastest mirrors
[root@localhost yum.repos.d]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
c7-media                                                                     | 2.9 kB  00:00:00     
(1/3): c7-media/filelists_db                                                 |  56 kB  00:00:00     
(2/3): c7-media/other_db                                                     |  30 kB  00:00:00     
(3/3): c7-media/primary_db                                                   |  38 kB  00:00:00     
元数据缓存已建立
[root@localhost yum.repos.d]# 
1
2
3
4
5
6
7
8
9
10
11
12
13

其它可参考执行的命令

#检查可以更新的软件包 
yum check-update 

#更新所有的软件包 
yum update 

#更新特定的软件包 
yum update kernel 

#大规模的升级 
yum upgrade

#清楚缓存中rpm包文件 
yum clean packages 

#清楚缓存中rpm的头文件 
yum clean  headers 

#清除缓存中旧的头文件 
yum clean old headers 

#清除缓存中旧的rpm头文件和包文件 
yum clean all
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 九、yum安装测试

如果出现缺少需要安装依赖包,

1、去https://pkgs.org/网站搜索相应的RPM包,并下载到制作本地源的服务器上

2、删除yum-custom/reposdata目录,再重新createrepo; 执行 createrepo .;

3、将新添加的rpm包和reposdata目录更新到目标服务器上

4、再执行yum clean all 和 yum makecache重新缓存

# 10.单独rpm安装

安装yum

rpm -ivh yum*
1

查看安装是否成功

rpm -qa yum
1

# 参考链接

https://www.cnblogs.com/sky-cheng/p/15825809.html

上次更新: 2022/04/15, 05:41:32
×