Centos搭建私有仓库

1 本地YUM源

1.1 安装createrepo

1
yum -y install createrepo

1.2 创建目录

1
mkdir -p /yum/yum-custom/packages

1.3 下载rpm包及依赖到packages

rpm包放在/yum-custom/ “``”可以是自定义文件夹,不一定要是packages

1
yum install httpd --downloadonly --downloaddir=/yum/yum-custom/packages

1.4 创建repo

1
2
3
4
5
6
7
8
9
10
11
12
13
$ createrepo  /yum/yum-custom/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
$ ll /yum/yum-custom/
total 4
drwxr-xr-x. 2 root root 41 Dec 20 07:03 packages
drwxr-xr-x. 2 root root 4096 Dec 20 07:08 repodata

1.5 配置自定义repo

1.5.1 删除备份repo文件

1
2
3
4
5
6
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Media.repo.bak CentOS-QEMU-EV.repo CentOS-Vault.repo
CentOS-Ceph-Hammer.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-OpenStack-mitaka.repo CentOS-Sources.repo repo.bak.tar
[root@localhost yum.repos.d]# tar zcvf *.repo
[root@localhost yum.repos.d]# rm -f *.repo

1.5.2 创建CentOS-Media.repo

1
2
3
4
5
6
7
8
9
# vi /etc/yum.repos.d/CentOS-Media.repo
# 填入如下内容

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///yum/yum-custom/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

1.6 重建YUM缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@linuxidc.com ~]# yum clean all               #删除缓存
Loaded plugins: fastestmirror
Cleaning repos: c7-media
Cleaning up everything
Cleaning up list of fastest mirrors
[root@linuxidc.com ~]# yum makecache #建立缓存
Loaded plugins: fastestmirror
c7-media | 3.0 kB 00:00:00
(1/3): c7-media/filelists_db | 880 B 00:00:00
(2/3): c7-media/primary_db | 1.8 kB 00:00:00
(3/3): c7-media/other_db | 1.3 kB 00:00:00
Determining fastest mirrors
Metadata Cache Created

1.7 使用本地yum

1
yum install httpd

2 局域网YUM源(vsftpd)

2.1 安装createrepo

1
yum -y install createrepo

2.2 安装vsftpd

1
yum -y install vsftpd

2.2.1 配置vsftpd.conf

1
2
3
4
# vi /etc/vsftpd/vsftpd.conf
#并增加匿名用户root目录(默认已经启用匿名访问)

anon_root=/yum/

2.2.2 启动vsftpd

1
2
systemctl start vsftpd             #启动服务
systemctl enable vsftpd #开机启动

2.3 创建目录

1
mkdir -p /yum/yum-custom/packages

2.4 下载rpm包及依赖到packages

rpm包放在/yum-custom/”可以是自定义文件夹,不一定要是packages

1
yum install httpd --downloadonly --downloaddir=/yum/yum-custom/packages

2.5 创建repo

1
2
3
4
5
6
7
8
9
10
11
12
13
# createrepo  /yum/yum-custom/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
# ll /yum/yum-custom/
total 4
drwxr-xr-x. 2 root root 41 Dec 20 07:03 packages
drwxr-xr-x. 2 root root 4096 Dec 20 07:08 repodata

以下步骤局域网机器操作!

2.5.1 删除备份repo文件

1
2
3
4
5
6
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Media.repo.bak CentOS-QEMU-EV.repo CentOS-Vault.repo
CentOS-Ceph-Hammer.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-OpenStack-mitaka.repo CentOS-Sources.repo repo.bak.tar
[root@localhost yum.repos.d]# tar zcvf *.repo
[root@localhost yum.repos.d]# rm -f *.repo

2.5.2 修改自定义repo如下

修改局域网服务器的repo,哪个服务器使用,修改哪个服务器文件。

1
2
3
4
5
6
7
8
9
10
[root@localhost /]# vim /etc/yum.repos.d/CentOS-Media.repo
# 内容如下

[c7-media]
name=CentOS-$releasever - Media
baseurl=ftp://192.168.118.133/yum-custom #注意是ftp,不是file
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 其中192.168.118.133为上面vsftp服务器地址

2.6 重建YUM缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@linuxidc.com ~]# yum clean all               #删除缓存
Loaded plugins: fastestmirror
Cleaning repos: c7-media
Cleaning up everything
Cleaning up list of fastest mirrors
[root@linuxidc.com ~]# yum makecache #建立缓存
Loaded plugins: fastestmirror
c7-media | 3.0 kB 00:00:00
(1/3): c7-media/filelists_db | 880 B 00:00:00
(2/3): c7-media/primary_db | 1.8 kB 00:00:00
(3/3): c7-media/other_db | 1.3 kB 00:00:00
Determining fastest mirrors
Metadata Cache Created

2.7 使用局域网yum

1
yum install httpd

3 局域网YUM源(httpd)

3.1 安装createrepo

1
yum -y install createrepo

3.2 安装httpd

1
yum -y install httpd

3.2.1 配置httpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$ vim /etc/httpd/conf/httpd.conf
# 修改http根目录
DocumentRoot "/yum" #修改

#
# Relax access to content within /var/www.
#
<Directory "/var/www/html">
AllowOverride None
# Allow open access:
Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/yum"> #修改
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None

#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>

3.2.2 启动httpd

1
2
systemctl start httpd             #启动服务
systemctl enable httpd #开机启动

3.3 创建目录

1
mkdir -p /yum/yum-custom/packages

3.4 下载rpm包及依赖到packages

rpm包放在/yum-custom/”可以是自定义文件夹,不一定要是packages

1
yum install httpd --downloadonly --downloaddir=/yum/yum-custom/packages

3.5 创建repo

1
2
3
4
5
6
7
8
9
10
11
12
13
#createrepo  /yum/yum-custom/                            
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
#ll /yum/yum-custom/
total 4
drwxr-xr-x. 2 root root 41 Dec 20 07:03 packages
drwxr-xr-x. 2 root root 4096 Dec 20 07:08 repodata

以下步骤局域网机器操作!

3.5.1 删除备份repo文件

1
2
3
4
5
6
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Media.repo.bak CentOS-QEMU-EV.repo CentOS-Vault.repo
CentOS-Ceph-Hammer.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-OpenStack-mitaka.repo CentOS-Sources.repo repo.bak.tar
[root@localhost yum.repos.d]# tar zcvf *.repo
[root@localhost yum.repos.d]# rm -f *.repo

3.5.2 修改自定义repo如下

修改局域网服务器的repo,哪个服务器使用,修改哪个服务器文件。

1
2
3
4
5
6
7
8
9
10
[root@localhost /]# vim /etc/yum.repos.d/CentOS-Media.repo
#内容如下

[c7-media]
name=CentOS-$releasever - Media
baseurl=http://192.168.118.133/yum-custom #注意是http,不是file、ftp
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#其中192.168.118.133为上面vsftp服务器地址

3.6重建YUM缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@linuxidc.com ~]# yum clean all               #删除缓存
Loaded plugins: fastestmirror
Cleaning repos: c7-media
Cleaning up everything
Cleaning up list of fastest mirrors
[root@linuxidc.com ~]# yum makecache #建立缓存
Loaded plugins: fastestmirror
c7-media | 3.0 kB 00:00:00
(1/3): c7-media/filelists_db | 880 B 00:00:00
(2/3): c7-media/primary_db | 1.8 kB 00:00:00
(3/3): c7-media/other_db | 1.3 kB 00:00:00
Determining fastest mirrors
Metadata Cache Created

3.7 使用局域网yum

1
yum install httpd

4 注意事项:

1、YUM源服务器每次添加rpm包到yum-custom目录,都需要重新运行#createrepo /yum/yum-custom/命令(YUM源服务器运行),同时局域网电脑重新建立缓存#yum clean all#yum makecache,否则无法发现新加安装包。

2、YUM源在/yum/yum-custom下可创建自定义目录,可根据rpm包进行分类,便于本地YUM源管理,同上,有任何改变,必须重新运行事项1命令。

3、局域网主机安装rpm的时候出现报错
图1

原因:使用

1
createrepo -u -d  /yum/yum-custom/

创建repo,

解决办法:使用命令

1
createrepo  /yum/yum-custom/

不添加任何参数。

4、selinux必须关闭,否则局域网机器无法从仓库建立缓存。

资料

http://www.linuxidc.com/Linux/2017-03/141391.htm

-------------本文结束感谢您的阅读-------------

本文标题:Centos搭建私有仓库

文章作者:OperationMAN

发布时间:2018年08月28日 - 16:08

最后更新:2022年03月31日 - 13:03

原始链接:https://kxinter.gitee.io/2018/08/28/Centos搭建私有仓库/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!