yum 源本地配置


一、建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 源,這里就不做介紹了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM