运维Linux

8: 软件包管理 - 搭建私有yum仓库

2021-03-09  本文已影响0人  随便写写咯

案例1: 配置CentOS-7使用系统安装光盘作为本地的yum仓库

  1. 临时挂载光盘到指定目录, 如/mnt/cdrom
[02:13:05 root@centos-7-1 ~]#mount /dev/cdrom /mnt/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
  1. 创建repo文件
[02:14:29 root@centos-7-1 ~]#vim /etc/yum.repos.d/CentOS-7.repo

[CentOS-7]
name=CentOS-7
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1  
  1. 测试软件安装
[02:18:38 root@centos-7-1 ~]#yum list httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
httpd.x86_64                                                                      2.4.6-93.el7.centos                                                                      @CentOS-7
  1. 如果需要永久使用光盘为yum源, 需要把光盘进行永久挂载, 编写/etc/fstab文件

案例2: 配置CentOS-8使用系统安装光盘作为本地的yum仓库

  1. 临时挂载光盘到指定目录, 如/misc/cd
[02:55:22 root@CentOS-8-1 ~]#mkdir /misc/cd -pv
mkdir: created directory '/misc'
mkdir: created directory '/misc/cd'
[02:55:25 root@CentOS-8-1 ~]#mount /dev/cdrom /misc/cd
mount: /misc/cd: WARNING: device write-protected, mounted read-only.
  1. 创建repo文件, CentOS-8有两个yum源: BaseOS和AppStream, 需要设置两个仓库
[03:01:21 root@CentOS-8-1 ~]#vim /etc/yum.repos.d/CentOS-8.repo

[BaseOS]
name=BaseOS
baseurl=file:///misc/cd/BaseOS
gpgcheck=1
gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[AppStream]
name=AppStream
baseurl=file:///misc/cd/AppStream
gpgcheck=0

[epel]
name=EPEL
baseurl=http://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
gpgcheck=0
enabled=1

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os                                                                                                           
gpgcheck=0
  1. 测试软件安装
[03:02:16 root@CentOS-8-1 ~]#yum -y install nginx
...
  perl-constant-1.33-396.el8.noarch                                                    perl-interpreter-4:5.26.3-416.el8.x86_64                                                    
  perl-libs-4:5.26.3-416.el8.x86_64                                                    perl-macros-4:5.26.3-416.el8.x86_64                                                         
  perl-parent-1:0.237-1.el8.noarch                                                     perl-threads-1:2.21-2.el8.x86_64                                                            
  perl-threads-shared-1.58-2.el8.x86_64                                               

CentOS-6的yum源案例:

[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/
        https://mirrors.huaweicloud.com/centos/6/os/x86_64/
        https://mirrors.163.com/centos/6/os/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/6/x86_64/
        https://mirrors.huaweicloud.com/epel/6/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/6/extras/x86_64/
        https://mirrors.huaweicloud.com/centos/6/extras/x86_64/
        https://mirrors.163.com/centos/6/extras/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

CentOS-7的yum源案例:

[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/
        https://mirrors.huaweicloud.com/centos/7/os/x86_64/
        https://mirrors.163.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7


[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

CentOS-8的yum源案例:

[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
        https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
        https://mirrors.163.com/centos/8/BaseOS/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
        https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
        https://mirrors.163.com/centos/8/AppStream/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official


[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
        https://mirrors.huaweicloud.com/epel/8/Everything/x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8

[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/8/extras/x86_64/os/
        https://mirrors.huaweicloud.com/centos/8/extras/x86_64/os/
        https://mirrors.163.com/centos/8/extras/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

Ubuntu-1804的apt源案例:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

案例3: 搭建内网私有yum仓库, 为CentOS 7&8 提供软件下载服务

环境准备:

yum仓库: CentOS-8 - 10.0.0.82
客户端: CentOS-7-1 - 10.0.0.237
客户端:CentOS-8-1 - 10.0.0.81
yum仓库服务器需要关闭防火墙和SElinux
下载所有yum仓库的相关包和meta数据

# CentOS-8 dnf 工具集成
dnf reposync --help # 查看帮助

# 默认只下载rpm包, 不下载meta数据, 需要指定--download-metadata 才能下载meta
dnf reposync --repoid=REPOID --download-metadata -p /path

# CentOS 7 以前版本, reposync工具来自于yum-utils包
reposync --repoid=REPOID --download-metadata -p /path

1. 在yum仓库服务器挂载安装光盘, 因为, 需要将光盘中的包和元数据, 拷贝到yum服务器本地的文件夹

[12:22:00 root@yum-server ~]#mount  /dev/sr0 /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[12:23:43 root@yum-server ~]#ls /mnt
AppStream  BaseOS  EFI  images  isolinux  media.repo  TRANS.TBL

2. 基于光盘, 搭建临时yum仓库, 下载必要的安装包, 比如搭建仓库用的http服务器

服务器无法连网的情况下, 在配置yum仓库时, 就必须使用光盘把安装包和元数据先导入到本地, 再对内部的服务器提供软件下载
[12:23:47 root@yum-server ~]#cd /etc/yum.repos.d/ 
[12:34:47 root@yum-server /etc/yum.repos.d]#mv * /opt
[12:36:54 root@yum-server /etc/yum.repos.d]#ll /mnt/BaseOS/ # BaseOS的repo所在目录, yum源中写这个目录即可
total 298
dr-xr-xr-x 2 root root 301056 Jun  9  2020 Packages
dr-xr-xr-x 2 root root   4096 Jun  9  2020 repodata 
[12:36:59 root@yum-server /etc/yum.repos.d]#ll /mnt/AppStream/ # 同理BaseOS源
total 978
dr-xr-xr-x 2 root root 997376 Jun  9  2020 Packages
dr-xr-xr-x 2 root root   4096 Jun  9  2020 repodata
[12:34:50 root@yum-server /etc/yum.repos.d]#vim tmp.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0

[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
yum -y install httpd; systemctl enable --now httpd

3. 创建yum仓库目录结构

CentOS-8的目录: mkdir -pv /var/www/html/centos/8/{BaseOS,AppStream}/x86_64/os
CentOS-7的目录: mkdir -pv /var/www/html/centos/7/os/x86_64
[12:44:45 root@yum-server /var/www/html]#tree
.
└── centos
    ├── 7
    │   └── os
    │       └── x86_64
    └── 8
        ├── AppStream
        │   └── x86_64
        │       └── os
        └── BaseOS
            └── x86_64
                └── os

11 directories, 0 files

4. 将光盘中的包和元数据拷贝到本地

CentOS8版本的软件包在光盘上存放在AppStream/Packages 和 BaseOS/Packages 目录, 7的包存放在Packages目录, 元数据存在 repodata 目录
拷贝时要注意包和元数据存放的路径
将CentOS8光盘中的包和元数据拷贝到yum仓库本地
cp -r /mnt/AppStream/* /var/www/html/centos/8/AppStream/x86_64/os
cp -r /mnt/BaseOS/* /var/www/html/centos/8/BaseOS/x86_64/os
[12:50:23 root@yum-server ~]#du -sh /var/www/html/centos/
7.1G    /var/www/html/centos/
图片.png

5. CentOS-8 客户端配置yum源

CentOS-8: 10.0.0.81

[13:04:28 root@CentOS-8-1 /etc/yum.repos.d]#vim CentOS.repo

[BaseOS]
name=BaseOS
baseurl=http://10.0.0.8/centos/8/BaseOS/x86_64/os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[AppStream]
name=AppStream
baseurl=http://10.0.0.8/centos/8/AppStream/x86_64/os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial    
[13:05:49 root@CentOS-8-1 /etc/yum.repos.d]#yum list httpd
BaseOS                                                                                                                                               36 MB/s | 2.2 MB     00:00    
AppStream                                                                                                                                            63 MB/s | 5.7 MB     00:00    
Available Packages
httpd.x86_64                                                             2.4.37-21.module_el8.2.0+382+15b0afa8                                                             AppStream

6. 对于CentOS7的安装包和元数据, 只需要切换挂载7的安装光盘到yum服务器, 然后把Packages和repodata整个目录拷贝到yum仓库的os/x86-64目录目录即可

[13:17:42 root@yum-server ~]#mkdir /temp
[13:20:55 root@yum-server ~]#mount /dev/sr0 /temp
[13:37:48 root@yum-server /temp]#cp -r Packages /var/www/html/centos/7/os/x86_64
[13:38:16 root@yum-server /temp]#cp -r repodata /var/www/html/centos/7/os/x86_64
CentOS-7客户端yum源配置

[13:43:03 root@centos-7-1 /etc/yum.repos.d]#vim temp.repo

[BaseOS]                                                                                                                                                                            
name=BaseOS
baseurl=http://10.0.0.82/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
测试安装

[13:45:36 root@centos-7-1 /etc/yum.repos.d]#yum list httpd
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
Available Packages
httpd.x86_64                                                                       2.4.6-93.el7.centos                                                                        BaseOS

7. 搭建EPEL源

找一台能上网的服务器, 配置好epel源

[epel]
name=EPEL
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64
gpgcheck=0
下载epel源所有的仓库包和元数据到/var/www/html, 会在/var/www/html目录生成epel/Packages 和 epel/repodata 目录, 保存包和元数据, 用作仓库路径
--download-metadata 加此选项可以下载元数据

dnf reposync --reposync=epel --repoid=epel --download-metadata -p /var/www/html
下载相关的key文件
wget -P /var/www/html/epel https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-8

wget -P 把文件下载到目录下, 目录会自动创建, -P 跟目录, 不能跟文件名, 会自动创建为目录
wget -O 把文件下载到已有目录下, -O  必须跟目录+文件名.
客户端配置epel源

[epel]
name=EPEL
baseurl=http://10.0.0.82/epel
gpgcheck=1
gpgkey=http://10.0.0.82/epel/RPM-GPG-KEY-EPEL-8
客户端测试安装软件即可
上一篇 下一篇

猜你喜欢

热点阅读