Yum軟體倉庫
Yum倉庫則是為進一步簡化RPM管理軟體難度而設計的, Yum能夠根據使用者的要求分析出所需軟體包及其相關依賴關系, 自動從伺服器下載下傳軟體包并安裝到系統。
使用者能夠根據需求來指定Yum倉庫與是否校驗軟體包, 而這些隻需幾條關鍵詞即可完成, 所有Yum倉庫的配置檔案均需以.repo結尾并存放在/etc/yum.repos.d/目錄中的。
[rhel-media]: yum源的名稱, 可自定義。
name=linuxprobe : yum倉庫的名稱, 可自定義。
baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)
enabled=1 : 設定此源是否可用, 1為可用, 0為禁用。
gpgcheck=1 : 設定此源是否校驗檔案, 1為校驗, 0為不校驗。
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若為校驗請指定公鑰檔案位址。
一、本地yum源
系統預設已經安裝了可使用yum的軟體包, 是以可以直接配置:
[root@localhost ~]# cd /etc/yum.repos.d/ yum源配置檔案放置目錄
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak 先将網絡yum源的配置檔案更名(讓其失效), 因為系統預設優先使用網絡yum源
[root@localhost yum.repos.d]# vim CentOS-Media.repo 編輯本地yum源檔案
[c6-media]
name=CentOS-$releasever - Media 本地yum源名稱(可随意修改)
baseurl=file:///mnt/cdrom CD光牒挂載目錄/mnt/cdrom
gpgcheck=1
enabled=1 使用此yum源(等于0為不啟用)
gpgkey=file:///mnt/sr0/RPM-GPG-KEY-CentOS-6 本地yum源密鑰
[root@localhost yum.repos.d]# mount /dev/cdrom /mnt/cdrom 挂載CD光牒
執行yum list檢測是否可用
二、網絡yum源(前提是必須能連上網際網路, 此處使用的yum源是中國科技大學的位址如下:中國科技大學:http://centos.ustc.edu.cn/centos/)
[root@localhost yum.repos.d]# mv CentOS-Base.bak CentOS-Base.repo 如果之前沒更名就不用操作此步驟
[root@localhost yum.repos.d]# vim CentOS-Base.repo 編輯網絡yum源檔案
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://centos.ustc.edu.cn/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
注意:以上網絡yum源系統預設已經配置
yum最大的優勢在于可以聯網去下載下傳所需要的rpm包, 然後自動安裝, 在這個工程中如果要安裝的rpm包有依賴關系,
yum會幫你解決掉這些依賴關系依次安裝所有rpm包。下面阿銘介紹常用的yum 指令。
列出所有可用的rpm包"yum list"
[root@localhost yum.repos.d]# yum list |head -n 20
搜尋一個rpm包
指令 yum search [相關關鍵詞]
[root@localhost ~]# yum search vim
安裝一個rpm包
指令 yum install [-y] [rpm包名]
如果不加 "-y" 選項, 則會以與使用者互動的方式安裝, 首先是列出需要安裝的rpm包資訊, 然後會問使用者是否需要安裝, 輸入y則安裝, 輸入n則不安裝。
如果覺得太麻煩, 是以直接加上"-y"選項, 這樣就省略掉了問使用者是否安裝的那一步。
[root@localhost ~]# yum install vim-X11
解除安裝一個rpm包
指令 yum remove [-y] [rpm包名]
[root@localhost ~]# yum remove vim-X11
解除安裝和安裝一樣, 也可以直接加上"-y"選項來省略掉和使用者互動的步驟。
解除安裝某個rpm包一定要看清楚了, 不要連其他重要的rpm包一起解除安裝了, 以免影響正常的業務。
更新一個rpm包
指令 yum update [-y] [rpm包]
[root@localhost ~]# yum update libselinux'
Yum倉庫中的RPM軟體包可以是由紅帽官方釋出的, 也可以是第三方組織釋出的, 當然使用者也可以編寫的~随書提供的鏡像CD光牒内已經包含了大量的可用RPM軟體包, 将會在後面的實驗章節中為大家示範如何使用。
指令 作用
yum repolist all 列出所有倉庫。
yum list all 列出倉庫中所有軟體包
yum info 軟體包名稱 檢視軟體包資訊
yum install 軟體包名稱 安裝軟體包
yum reinstall 軟體包名稱 重新安裝軟體包
yum update 軟體包名稱 更新軟體包
yum remove 軟體包 移除軟體包
yum clean all 清除所有倉庫緩存
yum check-update 檢查可更新的軟體包
yum grouplist 檢視系統中已經安裝的軟體包組
yum groupinstall 軟體包組 安裝指定的軟體包組
yum groupremove 軟體包組 移除指定的軟體包組
yum groupinfo 軟體包組 查詢指定的軟體包組資訊
三 Centos配置國内yum源
網易yum源是國内最好的yum源之一, 無論是速度還是軟體版本, 都非常的不錯, 将yum源設定為163yum, 可以提升軟體包安裝和更新的速度,
同時避免一些常見軟體版本無法找到。
具體設定方法如下:
1 進入yum源配置目錄
cd /etc/yum.repos.d
2 備份系統自帶的yum源
mv CentOS-Base.repo CentOS-Base.repo.bk
下載下傳163網易的yum源:
Centos6
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
Centos7
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
3 更新玩yum源後, 執行下邊指令更新yum配置, 使操作立即生效
yum makecache
4 除了網易之外, 國内還有其他不錯的yum源, 比如中科大和搜狐的, 大家可以根據自己需求下載下傳
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
linux下yum的$releasever和$basearch的取值
檢視關于yum的配置
> # ls /etc/yum* -ld
drwxr-xr-x. 5 root root 4096 Nov 9 2016 /etc/yum
-rw-r--r--. 1 root root 969 May 12 2016 /etc/yum.conf
drwxr-xr-x. 2 root root 4096 Jan 26 12:13 /etc/yum.repos.d
檢視/etc/yum.repos.d下的檔案
> # cd /etc/yum.repos.d/
> # ls
CentOS-Base.repo CentOS-Epel.repo nginx.repo
> # vim CentOS-Base.repo
[os]
name=Qcloud centos os - $basearch
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[updates]
name=Qcloud centos updates - $basearch
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#[centosplus]
#name=Qcloud centosplus - $basearch
#baseurl=http://mirrors.tencentyun.com/centos/$releasever/centosplus/$basearch/
#enabled=1
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#[contrib]
#name=Qcloud centos contrib - $basearch
#baseurl=http://mirrors.tencentyun.com/centos/$releasever/contrib/$basearch/
#enabled=1
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#[cr]
#name=Qcloud centos cr - $basearch
#baseurl=http://mirrors.tencentyun.com/centos/$releasever/cr/$basearch/
#enabled=1
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[extras]
name=Qcloud centos extras - $basearch
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#[fasttrack]
#name=Qcloud centos fasttrack - $basearch
#baseurl=http://mirrors.tencentyun.com/centos/$releasever/fasttrack/$basearch/
#enabled=1
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
我們看出來裡面包含大量的變量$releasever和$basearch
$releasever的值,這個表示目前系統的發行版本, 可以通過rpm -qi centos-release指令檢視
[root@VM_90_157_centos yum.repos.d]# rpm -qi centos-release
Name : centos-release Relocations: (not relocatable)
Version : 6 Vendor: CentOS
Release : 8.el6.centos.12.3 Build Date: Thu 19 May 2016 03:47:46 AM CST
Install Date: Wed 09 Nov 2016 11:47:00 AM CST Build Host: worker1.bsys.centos.org
Group : System Environment/Base Source RPM: centos-release-6-8.el6.centos.12.3.src.rpm
Size : 35634 License: GPLv2
Signature : RSA/SHA1, Thu 19 May 2016 03:51:51 AM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
Summary : CentOS release file
Description :
CentOS release files
其中的Version:6就是我們系統的版本号
$basearch是我們的系統硬體架構(CPU指令集), 使用指令arch得到
> # arch
x86_64
在Linux中使用指令arch可以初步檢視出目前系統所識别出來的機器CPU類型, 如"i386", "i486","i586", "alpha", "sparc", "arm", "m68k","mips","ppc","ia64","x86_64"等, ia64和x86_64就說明這台機器是64位的;
是以我這兒要使用x86_64作為$basearch的值
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
完整路徑便是
baseurl=http://mirror.centos.org/centos/6/os/x86_64/
如何直接添加倉庫(源)?
> # yum install -y yum-utils
> # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #添加docker-ce源
> # yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo #阿裡雲yum源
> # yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo #163yum源
更新為阿裡雲yum源
> # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
> # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新為163yum源
> # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
> # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
常見問題:
> # yum search lsyncd
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
警告:沒有比對 lsyncd 的軟體包
解決方法:
> # yum -y install epel-release