一、yum源概述
yum需要一個yum庫,也就是yum源。默認情況下,CentOS就有一個yum源。在/etc/yum.repos.d/目錄下有一些默認的配置文件(可以將這些文件移到/opt下,或者直接在yum.repos.d/下重命名)。首先要找一個yum庫(源),然后確保本地有一個客戶端(yum這個命令就是客戶端),由yum程序去連接服務器。連接的方式是由配置文件決定的。通過編輯/etc/yum.repos.d/CentOS-Base.repo文件,可以修改設置。
打開CentOS-Base.repo文件,可以看到url路徑是CentOS的官網自身的yum源,
http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os。可以將這個mirrorlist注釋掉,然后將baseurl設置成國內的阿里雲源
http://mirrors.aliyun.com/repo/Centos-6.repo或者http://mirrors.aliyun.com/repo/Centos-7.repo
也可以在用於大量的rpm包的前提下設置成自己的本地文件系統(掛載目錄),需要移除CentOS-Base.repo文件,並編輯CentOS-Media.repo文件。http://mirrors.aliyun.com/repo/Centos-6.repo或者Centos-7.repo
name=Description //一個描述,隨意。 baseurl= //設置資源庫的地址,可以寫阿里雲也可以是自己的yum ftp:// http:// file:/// enabled={1|0} //enabled=1開啟本地更新模式 gpgcheck={1|0} //gpgcheck=1表示檢查;可以不檢查gpgcheck=0 gpgkey= // 檢查的key;如果上面不檢查這一行可以不寫。
二、YUM源配置方法
2.1、配置方法一(阿里雲yum源)
1)安裝wget [root@localhost ~]# yum install -y wget 2) 備份/etc/yum.repos.d/CentOS-Base.repo文件 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.back20190401 3) 下載阿里雲的Centos-6.repo文件 [root@localhost yum.repos.d]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo [root@localhost yum.repos.d]# wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 4) 重新加載yum [root@localhost yum.repos.d]# yum clean all Loaded plugins: fastestmirror, refresh-packagekit, security Cleaning repos: base extras updates Cleaning up Everything Cleaning up list of fastest mirrors [root@localhost yum.repos.d]# yum makecache Loaded plugins: fastestmirror, refresh-packagekit, security Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 。。。。。。
2.2、yum源配置方法二(本地掛載目錄)
1) 下載iso文件 從CentOS的官網下載CentOS的完整版iso文件,並上傳到Linux文件系統中,例如/opt/tools/。 2) 創建掛載目錄 為iso文件的掛載創建目錄。 [root@localhost ~]# mkdir /mnt/vcdrom 3) 掛載 將iso文件掛載到掛載目錄。 [root@localhost ~]# mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom 4) 移除或備份Centos-Base.repo文件 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost ~]# mv Centos-Base.repo Centos-Base.repo.back 5) 編輯Centos-Media.repo文件 [root@localhost ~]# vim /etc/yum.repos.d/Centos-Media.repo ........ name=CentOS-$releasever - Media baseurl=file:///mnt/vcdrom/ //將baseurl修改為DVD的掛載目錄 gpgcheck=1 enabled=1#開啟本地更新模式 ........ 6) 重新加載yum [root@localhost ~]# yum clean all [root@localhost ~]# yum makecache 7) 編寫腳本並開機自動掛載 首先,編寫腳本。 [root@localhost ~]#vim /opt/shell/mymount.sh #!/bin/bash # mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom :wq! 其次,修改腳本執行權限。 [root@localhost ~]#chmod 777 /opt/shell/mymount.sh 再次,修改/etc/rc.local配置文件。 [root@localhost ~]#vim /etc/rc.local 在文件最后一行加上如下 [root@localhost ~]# /opt/shell/mymount.sh 最后,重啟機器測試。 [root@localhost ~]# init 6
2.3、yum源配置方法三(遠程掛載目錄)
2.3.1、服務端配置
第一,安裝nfs-utils和rpcbind。 [root@localhost ~]# yum -y install nfs-utils rpcbind 第二,設置開機啟動服務。 [root@localhost ~]# chkconfig nfs on [root@localhost ~]# chkconfig rpcbind on 第三,啟動相關服務。 [root@localhost ~]# service rpcbind start //需要先啟動rpcbind [root@localhost ~]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ] 第四,創建共享目錄。 [root@localhost ~]# mkdir -p /mnt/vcdrom/ 第五,編輯/etc/exports文件,添加如下內容。 [root@localhost ~]# vim /etc/exports 添加如下內容: /mnt/vcdrom/ 192.168.94.5(rw,async,no_root_squash,no_subtree_check) 注:配置文件說明:/mnt/vcdrom/為共享的目錄,使用絕路徑。對172.16.24.8(rw,no_root_squash,no_all_squash,sync) 為客戶端的地址及權限,地址可以是一個網段,一個IP地址或者是一個域名,域名支持通配符,如:*eason.com。 權限說明:rw:read-write,可讀寫;ro:read-only,只讀;sync:文件同時寫入硬盤和內存;async:文件暫存於內存,而不是直接寫入內存;no_root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來說,也擁有root權限。顯然開啟這項是不安全的。root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來說,擁有匿名用戶權限,通常他將使用nobody或nfsnobody身份;all_squash:不論NFS客戶端連接服務端時使用什么用戶,對服務端分享的目錄來說都是擁有匿名用戶權限;anonuid:匿名用戶的UID值,通常是nobody或nfsnobody,可以在此處自行設定;anongid:匿名用戶的GID值。 第六,參考yum源配置方法二,將/opt/tools/下的ios文件掛載到/mnt/vcdrom,需要設置開機自動掛載。
2.3.2、客戶端配置
第一,安裝nfs-utils和rpcbind。 [root@localhost ~]# yum install -y nfs-utils rpcbind 第二,設置開機啟動服務。 [root@localhost ~]# chkconfig nfs on [root@localhost ~]# chkconfig rpcbind on 第三,啟動服務。 [root@localhost ~]# service rpcbind start [root@localhost ~]# service nfs start 第四,創建掛載點。 [root@localhost ~]# mkdir -p /mnt/vcdrom/ 第五,掛載目錄。 [root@localhost ~]# mount -t nfs server_ip:/mnt/vcdrom /mnt/vcdrom 第六,編輯/etc/fstab,配置開機自動掛載 這里可以參考yum源配置方法二的介紹,編寫腳本,使腳本開機運行。下面給出第二種方法: [root@localhost ~]# vim /etc/fstab 添加如下內容: server_ip:/mnt/vcdrom /mnt/vcdrom nfs rw,tcp,intr 0 1 第七,修改yum源設置。 參考yum源配置方法二。
三、yum配置常見問題匯總
3.1、如果要想CentOS使用yum update更新時不升級內核,方法如下:
[root@localhost ~]# cp /etc/yum.conf /etc/yum.confbak 方法一)修改yum的配置文件 [root@localhost ~]# vim /etc/yum.conf 在[main]的最后添加 exclude=kernel* 方法二)直接在yum的命令后面加上如下的參數: [root@localhost ~]# yum --exclude=kernel* update
3.2、yum安裝的過程中經常會出現這種錯誤:
Loaded plugins: branch, fastestmirror, security Determining fastest mirrors * addons: mirrors.aliyun.com * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com http://mirrors.aliyun.com/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404" Trying other mirror. http://mirrors.aliyuncs.com/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404" Trying other mirror. Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again
常規處理:
安裝的過程中一直報這個錯誤,這是由於網絡的問題,repomd.xml文件下載不來,大部分都是因為配置了代理或者其他網絡原因導致的,而本次是因為沒有配置host文件地址,導致的本次綁定一個ip地址172.16.50.96 yum.tbsite.net
當然也有很多是其他問題,具體問題需要具體分析,但是這里挺常見一個場景。
---------------------------------------------書山有路勤為徑,學海無涯苦作舟--------------------------------------------------------