一、建yum倉庫,分別為網絡源和本地源
1、簡單介紹一下yum
yum 源是軟件倉庫,是用來安裝軟件包的,會自動查找依賴包。
yum 安裝軟件
yum list | grep 軟件包 #查找軟件包
yum install 軟件包 -y # 安裝包
yum -e 軟件包 #卸載包
yum -v 軟件包 #重新安裝包
2、yum配置 /etc/yum.conf
yum 配置文件分兩部分 /etc/yum.conf 和 /etc/yum.repos.d/*.repo
首先簡單介紹一下 yum.conf 配置yum 源用的是 /etc/yum.repos.d/*.repo 下面在做介紹。
yum.conf介紹 :為所有倉庫提供公共配置 ,也就是main 部分,它定義了全局配置選項,整個yum 配置文件應該只有一個main。
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫 默認就是如此
keepcache=0 //安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留
debuglevel=2 //Debug 信息輸出等級,范圍為0-10,缺省為2
logfile=/var/log/yum.log //yum 日志文件位置。用戶可以到/var/log/yum.log 文件去查詢過去所做的更新。
exactarch=1 //有1和0兩個選項,設置為1,則yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將i686的軟件包安裝在適合i386的系統中。默認為1。
obsoletes=1 //這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包。
gpgcheck=1 // 有1和0兩個選擇,分別代表是否是否進行gpg(GNU Private Guard) 校驗,以確定rpm 包的來源是有效和安全的。這個選項如果設置在[main]部分,則對每個repository 都有效。默認值為0。
plugins=1 //是否啟用插件,默認1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。
installonly_limit=5 //允許保留多少個內核包,默認就是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 //指定一個軟件包,yum 會根據這個包判斷你的發行版本
3、yum 配置 /etc/yum.repos.d/*.repo
/etc/yum.repos.d/*.repo 為倉庫的指向提供配置,也就是 repository 部分,它定義了每個源/服務器的具體配置,可以有一到多個
root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# ll
total 40
-rw-r--r--. 1 root root 1664 Oct 23 2020 CentOS-Base.repo // 在線的yum源配置文件,聯網用
-rw-r--r--. 1 root root 1309 Oct 23 2020 CentOS-CR.repo //本地yum源配置文件,本地鏡像用
-rw-r--r--. 1 root root 649 Oct 23 2020 CentOS-Debuginfo.repo //包尤其和內核相關的更新和軟件安裝
-rw-r--r--. 1 root root 314 Oct 23 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Oct 23 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Oct 23 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 8515 Oct 23 2020 CentOS-Vault.repo //這個是最近新版本的加入的老版本的yum源配置
-rw-r--r--. 1 root root 616 Oct 23 2020 CentOS-x86_64-kernel.repo
具體的配置介紹
#也叫serverid,必須是獨一無二的
[base]
#name,是對repository的描述
name=CentOS7
##指定的獲取包的地址,其中url支持的協議有 http:// ftp:// file://三種。可以跟多個url
baseurl=http://10.0.0.150/yum/centos/7/x86_64
https://mirrors.aliyun.com/centos/$releasever/os/$basearch
https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
#是否啟用這個倉庫 1 啟用,0不啟用
enable=1
#是否檢查,1 檢查,0 不檢測 設置了1 必須設置下面的 gpgkey
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4、配置網絡源 國內鏡像
root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch
https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[epel]
name=epel
baseurl=https://mirrors.huaweicloud.com/epel/$releasever/$basearch
https://mirrors.aliyun.com/epel/$releasever/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/$basearch
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch
http://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch
gpgcheck=0
enabled=1
5、配置yum 源 本地源(鏡像文件)
本例子用鏡像文件,用鏡像文件做,且目的是做一個服務器,可以供其他機器使用。(centos7)
1、前置條件,關閉防火牆和selinux
systemctl disable firewalld #防火牆永久關閉
修改配置文件 /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled ,然后重啟機器
2、安裝httpd服務,提供網頁瀏覽
yum -y install httpd #安裝
systemctl start httpd #啟動
systemctl enable httpd #開機自啟動
3、創建倉庫目錄
#mkdir /var/www/html/centos/7 -pv
4、掛載系統鏡像 到系統並復制內容到倉庫子目錄
mkdir /mnt/cdrom
mount -o loop /dev/sr0 /mnt/cdrom/ #只讀模式掛載
cp -r /mnt/cdrom/* /var/www/html/centos/7
5、yum 客戶端配置
首先建立備份文件夾,把自帶的配置文件移動到備份文件夾,並創建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 並添加內容
root@node01 yum.repos.d]# vi base.repo
[root@node01 yum.repos.d]# vi CentOS-Base.repo
[BaseOS]
name=BaseOS
baseurl=file:///var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#其他機器想用這個就需要用IP
[BaseOS]
name=BaseOS
baseurl=http://10.0.0.150/var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
6、清空緩存
yum clean all
7、查看可用yum 源
yum repolist
6、配置yum 源 私有源(網上下載相應的倉庫文件和元數據)
本例子用網上下載的倉庫文件和元數據做,且目的是做一個服務器,可以供其他機器使用。(centos7)
1、首先建立備份文件夾,把自帶的配置文件移動到備份文件夾,並創建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 可以自己這么創建一個配置文件
也可以直接就選用阿里源的配置文件(這是將阿里源的配置文件下載到本地)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
這里我們用wget 這種方式
2、關閉防火牆和selinux
systemctl disable firewalld #防火牆永久關閉
修改配置文件 /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled ,然后重啟機器
3、安裝httpd服務,提供網頁瀏覽
yum -y install httpd #安裝
systemctl start httpd #啟動
systemctl enable httpd #開機自啟動
4、創建倉庫目錄(本次制作base倉庫 源和 epel 擴展倉庫 系統都是64位的)
#mkdir /var/www/html/centos/7/os/x86_64 -pv
#mkdir /var/www/html/centos/7/epel/x86_64 -pv
5、base源,有鏡像還是直接用鏡像文件就可以
掛載系統鏡像 到系統並復制內容到倉庫子目錄
[root@centos7]#mkdir /mnt/cdrom
[root@centos7]#mount -o loop /dev/sr0 /mnt/cdrom/ #只讀模式掛載
[root@centos7]#cp -r /mnt/cdrom/* /var/www/html/centos/7/os/x86_64
6、下載阿里雲的epel源,制作私有擴展源也就是epel源
[root@centos7]# reposync --repoid=epel --download-metadata -p /var/www/html/centos/7/epel/x86_64/
#--download-metadata 加此選項可以下載元數據 如果不加這個選項需要
#安裝yum install -y createrepo
#reposync --repoid=epel -p /var/www/html/centos/7/epel/x86_64/
#createrepo /var/www/html/centos/7/epel/x86_64/ 這是創建索引文件。
還需要注意一點,這樣下載下來后,會在x86_64 目錄下在創建一個epel 文件夾,並且下載的內容都在這個epel 文件夾中,所以我們需要移動一下,使用以下命令即可
mv /var/www/html/centos/7/epel/x86_64/epel/* /var/www/html/centos/7/epel/x86_64/
記得把這個x86_64 下面那個 epel 目錄刪掉
7、客戶端配置,修改 CentOS-Base.repo 配置文件
[base]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/os/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/epel/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
8、清理yum 緩存,並查看源
[root@node02 yum.repos.d]# yum cleanall
Loaded plugins: fastestmirror
No such command: cleanall. Please use /usr/bin/yum --help
[root@node02 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 10,072
epel/7/x86_64 CentOS-7 13,747
repolist: 23,819
[root@node02 yum.repos.d]#
以上本地私有源就可以用了,其他機器可以直接復用 CentOS-Base.repo 配置文件 這個配置文件就可以了
9、注意centos8 還需要配置一個AppStream 源,這里就不做介紹了。
