Linux 之 Yum 倉庫的配置及使用

Linux 之 Yum 倉庫的配置及使用
本文由讀者投稿,做者:肖輝node

Github 地址:https://github.com/xiaohui96python

已受權標爲原創,所得讚揚所有歸做者全部,歡迎讚揚!git

目前在長期穩定運行的網站服務器、處理大量數據的集羣系統以及須要協同工做的環境中都大量採用Linux系統。github

相較於Windows系統而言,Linux系統具備如下優點:vim

穩定且有效率;centos

免費或少量費用;緩存

漏洞少且快速修補;安全

多任務多用戶;服務器

更加安全的用戶及文件權限策略;架構

適合小內核程序的嵌入系統;

相對不耗資源

Linux 之 Yum 倉庫的配置及使用

常見的Linux系統有哪些?
紅帽企業版(RedHat Enterprise Linux):RHEL是全世界內使用最普遍的Linux系統。

社區企業操做系統(Communicity Enterprise Operating System, CentOS ):RHEL從新編譯發佈的免費Linux系統。

Fedora:紅帽公司發佈的桌面版系統套件。

openSUSE:德國的一款著名Linux系統。

Gentoo:具備極高的自定製性,操做複雜。

Debian:穩定性、安全性強,能夠良好地支持各類硬件架構。

Ubuntu:對新款硬件具備極強的兼容能力。

RPM和Yum軟件倉庫
RPM是紅帽的的軟件包管理器,相似於Windows系統中的控制面板。

在RPM公佈以前,Linux系統中安裝軟件只能採用源碼包的安裝方式,費時費力。

軟件之間的依賴關係甚至須要運維的同事自行編譯代碼來解決。

RPM機制則是爲解決這些問題而設計的。

常見的RPM軟件包命令以下:

安裝軟件:rpm -ivh filename.rpm
升級軟件:rpm -Uvh filename.rpm
卸載軟件:rpm -e filename.rpm
查詢軟件描述信息:rpm -qpi filename.rpm
列出軟件文件信息:rpm -qpl filename.rpm
查詢文件屬於哪一個RPM:rpm -qf filename

儘管RPM可以幫助用戶查詢軟件相關的依賴關係,但過程依舊複雜,特別是在某些大型軟件的狀況下依舊須要運維的同事來解決。

Yum軟件倉庫則能夠根據用戶的要求分析出所需軟件包及其相關的依賴關係,自動從服務器下載軟件包並安裝到系統。

Linux 之 Yum 倉庫的配置及使用

Yum軟件倉庫技術拓撲圖

經常使用的Yum命令
列出全部倉庫: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 軟件包組

然而沒有註冊的RHEL是沒法使用yum來安裝軟件的,爲此須要將yum源更換成CentOS的免費源來解決包的依賴問題。

更換yum源
打開虛擬機(做者的紅帽是裝在虛擬機上的)終端執行
rpm -qa | grep yum

系統將會顯示自帶的yum源,
刪除系統自帶的yum組件
rpm -qa | grep yum | xargs rpm -e --nodeps

進入[網易163源鏡像地址](http://mirrors.163.com),在路徑centos/7/os/x86_64/Packages/下載(能夠在物理機上下載或者在虛擬機
上使用wget下載)python-iniparse-0.4-9.el7.noarch、python-iniparse-0.4-9.el7.noarch、yum-3.4.3-161.el7.centos.noarch、
yum-metadata-parser-1.1.4-10.el7.x86_6四、yum-plugin-fastestmirror-1.1.31-50.el7.noarch這五個包。
安裝軟件包
rpm -ivh yum-*
# 此時會報依賴的錯誤
rpm >= 0:4.11.3-35 is needed by yum-3.4.3-161.el7.centos.noarch

下載rpm-4.11.3-35.el7.x86_64包並從新安裝
rpm -Uvh rpm-4.11.3-35.el7.x86_64.rpm --nodeps
rpm -ivh yum-*

更新yum源文件,能夠下載使用163的yum源文件CentOS6-Base-163,放在/etc/yum.repo.d目錄下
vim /etc/yum.repos.d/CentOS-Base.repo
內容以下,將$releasever改爲7便可
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
# name=CentOS-$releasever - Base - 163.com 改爲
name=CentOS-7 - Base - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 改爲
baseurl=http://mirrors.163.com/centos/7/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
# name=CentOS-$releasever - Updates - 163.com 改爲
name=CentOS-7 - Updates - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ 改爲
baseurl=http://mirrors.163.com/centos/7/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
# name=CentOS-$releasever - Extras - 163.com 改爲
name=CentOS-7 - Extras - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ 改爲
baseurl=http://mirrors.163.com/centos/7/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
# name=CentOS-$releasever - Plus - 163.com 改爲
name=CentOS-7 - Plus - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ 改爲
baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
# name=CentOS-$releasever - Contrib - 163.com 改爲
name=CentOS-7 - Contrib - 163.com
# baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ 改爲
baseurl=http://mirrors.163.com/centos/7/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
清除yum緩存
yum clean all
# 生成緩存
yum makeche
# 查看新源
yum repolist
yum repolist
repo id repo name status
!base/x86_64 CentOS-$7 - Base - 163.com 8,652
!extras/x86_64 CentOS-$7 - Extras - 163.com 275
!updates/x86_64 CentOS-$7 - Updates - 163.com 1,707
repolist: 10,634
yum源已更換成功,下面就能夠自由使用yum安裝軟件啦。
## 實例
以安裝pam-devel爲例,介紹一下如何使用yum安裝和移除軟件包。
# 安裝pam-devel
[root@xiaohui ~]# yum install pam-devel
......(省略)
Running transaction
Updating : pam-1.1.8-22.el7.x86_64 1/3
Installing : pam-devel-1.1.8-22.el7.x86_64 2/3
Cleanup : pam-1.1.8-9.el7.x86_64 3/3
Verifying : pam-devel-1.1.8-22.el7.x86_64 1/3
Verifying : pam-1.1.8-22.el7.x86_64 2/3
Verifying : pam-1.1.8-9.el7.x86_64 3/3
Installed:
pam-devel.x86_64 0:1.1.8-22.el7
Dependency Updated:
pam.x86_64 0:1.1.8-22.el7
Complete!
表明安裝成功。
# 移除pam-devel
[root@xiaohui ~]# yum remove pam-devel
......(省略)
================================================================================
Remove 1 Package
Installed size: 528 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : pam-devel-1.1.8-22.el7.x86_64 1/1
Loading mirror speeds from cached hostfile
Verifying : pam-devel-1.1.8-22.el7.x86_64 1/1
Removed:
pam-devel.x86_64 0:1.1.8-22.el7
Complete!
表明移除成功。

附:

本文所需rpm及repo:

https://pan.baidu.com/s/1lUSU9PdFOpmji2kSKnO1NA 提取碼:rp3l

相關文章
相關標籤/搜索