【Linux】YUM Repositories for CentOS, RHEL & Fedora Systems

這裏是官方wiki:https://wiki.centos.org/AdditionalResources/Repositorieshtml

1、簡介

YUM(Yellowdog Updater Modified)是一種開源的,普遍使用的基於命令行和圖形的包管理工具,適用於基於RPM(RedHat Package Manager)的Linux系統,包括但不限於Red Hat Enterprise Linux(RHEL),CentOS和Scientific Linux(SL),Oracle Linux(OL)。它用於在系統上安裝,更新,刪除或搜索軟件包。要安裝未包含在默認基礎和更新存儲庫中的軟件包,以及其餘CentOS存儲庫(Extras,Centosplus,CentOS-Fasttrack,Continuous Release和Software Collections),您須要安裝並啓用其餘第三方存儲庫。node

先介紹兩個命令,yum 和 rpmweb

命令介紹:https://www.computerhope.com/unix/yum.htmshell

2、YUM的常見用法

一、選項

  • -h:顯示幫助信息;centos

  • -y:對全部的提問都回答「yes」;緩存

  • -c:指定配置文件;bash

  • -q:安靜模式;網絡

  • -v:詳細模式;工具

  • -d:設置調試等級(0-10);post

  • -e:設置錯誤等級(0-10);

  • -R:設置yum處理一個命令的最大等待時間;

  • -C:徹底從緩存中運行,而不去下載或者更新任何頭文件。

二、參數

  • install:安裝rpm軟件包; 安裝到指定目錄: yum install --installroot=yourDirectory rpmPackage

  • update:更新rpm軟件包;

  • check-update:檢查是否有可用的更新rpm軟件包;

  • remove:刪除指定的rpm軟件包;刪除是一般不要去刪除依賴。 yum remove --nodeps yourRPM

  • list:顯示軟件包的信息;

  • search:檢查軟件包的信息;

  • info:顯示指定的rpm軟件包的描述信息和概要信息;

  • clean:清理yum過時的緩存;

  • shell:進入yum的shell提示符;

  • resolvedep:顯示rpm軟件包的依賴關係;

  • localinstall:安裝本地的rpm軟件包;

  • localupdate:顯示本地rpm軟件包進行更新;

  • deplist:顯示rpm軟件包的全部依賴關係。

三、實例

部分經常使用的命令包括:

  • 自動搜索最快鏡像插件:yum install yum-fastestmirror

  • 安裝yum圖形窗口插件:yum install yumex

  • 查看可能批量安裝的列表:yum grouplist

四、命令

安裝
yum install              #所有安裝
yum install package1     #安裝指定的安裝包package1
yum groupinsall group1   #安裝程序組group1

更新和升級
yum update               #所有更新
yum update package1      #更新指定程序包package1
yum check-update         #檢查可更新的程序
yum upgrade package1     #升級指定程序包package1
yum groupupdate group1   #升級程序組group1

查找
yum info package1      #顯示安裝包信息package1
yum list               #顯示全部已經安裝和能夠安裝的程序包
yum list package1      #顯示指定程序包安裝狀況package1
yum groupinfo group1   #顯示程序組group1信息yum search string 根據關鍵字string查找安裝包

刪除
yum remove | erase package1   #刪除程序包package1
yum groupremove group1             #刪除程序組group1
yum deplist package1               #查看程序package1依賴狀況

清除緩存
yum clean packages       #清除緩存目錄下的軟件包
yum clean headers        #清除緩存目錄下的 headers
yum clean oldheaders     #清除緩存目錄下舊的 headers

3、rpm常見用法

rpm,Redhat Package Manager,即爲紅帽公司爲RHEL開發的專用包管理器,後來更改成RPM Package Manager,相似於GNU項目,使用遞歸命名,GNU's Not Unix.

通用選項

  • -v 顯示附加信息

  • -vv 顯示調試信息

  • --root 讓RPM將指定的路徑作爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下

  • --dbpath 設置RPM 資料庫存所在的路徑爲

查詢

一、查詢指定的包是否安裝

[root@localhost ~]# rpm -q tree
tree-1.5.3-3.el6.x86_64

二、查詢指定文件來自於那個安裝包

[root@localhost ~]# rpm -qf /bin/ls
coreutils-8.4-43.el6.x86_64

三、查詢包更新信息

[root@localhost ~]# rpm -q --changelog tree
* Thu Nov 27 2014 Tim Waugh <twaugh@redhat.com> - 1.5.3-3
- Handle large UID/GID values (bug #1110559).

* Wed Mar 03 2010 Tim Waugh <twaugh@redhat.com> 1.5.3-2
- Added comments to all patches.
...

四、查詢包元數據

[root@localhost ~]# rpm -qi tree
Name        : tree                         Relocations: (not relocatable)
Version     : 1.5.3                             Vendor: CentOS
Release     : 3.el6                         Build Date: Wed 14 Jan 2015 08:21:02 PM CST
Install Date: Sat 25 Mar 2017 04:17:05 AM CST      Build Host: c6b9.bsys.dev.centos.org
Group       : Applications/File             Source RPM: tree-1.5.3-3.el6.src.rpm
...

五、查詢包生成的全部文件

[root@localhost ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz

六、查詢包相關文檔

[root@localhost ~]# rpm -qd tree
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz

七、查詢包配置文件

[root@localhost ~]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

八、查詢安裝、卸載先後執行的腳本

[root@localhost ~]# rpm -q --scripts bash
postinstall scriptlet (using <lua>):
bashfound = false;
shfound = false;
 
f = io.open("/etc/shells", "r");
if f == nil
then

九、安裝rpm程序包

[root@localhost ~]# rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm 

十、在安裝過程不執行腳本

[root@localhost ~]# rpm -ivh --noscripts tree-1.5.3-3.el6.x86_64.rpm 
warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:tree                   ########################################### [100%]

十一、覆蓋、替換安裝

[root@localhost ~]# rpm -ivh --replacepkgs tree-1.5.3-3.el6.x86_64.rpm 
warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:tree                   ########################################### [100%]

詳細選項

選項 含義
-h 安裝時以#顯示安裝進度
--percent 以百分比的形式輸出安裝的進度
--test 測試安裝
--replacepkgs 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的衝突
--noscripts 不運行預安裝和後安裝腳本
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操做系統
--nodeps 不檢查依賴性關係

 十二、通常卸載

[root@localhost ~]# rpm -e gcc

1三、不執行腳本卸載

[root@localhost ~]# rpm -e --noscripts tree

1四、升級

[root@localhost ~]# rpm -Uvh tree-1.5.3-3.el6.x86_64.rpm 

-U和-F選項都可以升級一個包.可是,舊包不存在時,-U選項會安裝新包,而-F選項不安裝新包。

4、倉庫-Repository

關於yum-priorities插件, 這個插件是用來設置yum在調用軟件源時的順序的。由於官方提供的軟件源,都是比較穩定和被推薦使用的。所以,官方源的順序要高於第三方源的順序。如何保證這個順序,就須要安裝yum-priorities這插件了。

安裝 yum-priorities 插件後, 您能夠給各個源設置優先級priority,通常設置官方標準源優先級爲 1, 最高, 第三方推薦 >10

一、EPEL Repository

EPEL(企業Linux的額外軟件包)是一個免費的,開源的,流行的,基於社區的存儲庫項目,旨在提供在Fedora中開發,測試和改進的高質量軟件包,並可用於RHEL,CentOS,Scientific Linux等的軟件包。

### For CentOS/RHEL 7 ###
yum localinstall   http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

### For CentOS/RHEL 6 ###
yum localinstall  http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

別忘了,還有一步
yum install yum-priorities

二、REMI Repository

REMI是一個普遍使用的第三方存儲庫,它爲Fedora和Enterprise Linux(EL)發行版的用戶提供最新版本的PHP、MySql和一些其餘相關軟件,如RHEL,CentOS,Oracle,Scientific Linux等。在啓用Remi以前,須要首先啓用EPEL倉庫

### For CentOS/RHEL 7 ###
yum install epel-release
wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
subscription-manager repos --enable=rhel-7-server-optional-rpms  [On RHEL only]
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

### For CentOS/RHEL 6 ###
yum install epel-release
wget https://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm
rhn-channel --add --channel=rhel-$(uname -i)-server-optional-6   [On RHEL only]
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

yum install yum-priorities

三、RPMFusion Repository

RPMFusion是一個第三方存儲庫,爲Fedora和Enterprise Linux發行版提供一些免費和非免費的附加軟件,包括RHEL和CentOS。在啓用RPM Fusion以前,您須要啓用EPEL repo。

### For CentOS/RHEL 7 ###
yum install epel-release
yum localinstall  https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
yum localinstall  https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

### For CentOS/RHEL 6 ###
yum install epel-release
yum localinstall  https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm
yum localinstall  https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm

4. ELRepo Repository

ELRepo(社區企業Linux存儲庫)是一個RPM存儲庫,旨在提供與硬件相關的軟件包,如文件系統驅動程序,圖形驅動程序,網絡驅動程序,聲音驅動程序,網絡攝像頭和視頻驅動程序,以改善您使用Enterprise Linux的體驗。要在系統上啓用ELRepo,請使用如下命令。

### For CentOS/RHEL 7 ###
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

### For CentOS/RHEL 6 ###
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

5. NUX-dextop Repository

NUX-dextop是用於EL的桌面和多媒體軟件包的RPM存儲庫。它包含許多基於圖形軟件和命令行界面(CLI)的程序,包括Remmina遠程桌面共享工具,VLC媒體播放器等等。在啓用nux-dextop以前,還須要啓用EPEL repo。

### For CentOS/RHEL 7 ###
yum -y install epel-release
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

### For CentOS/RHEL 6 ###
yum -y install epel-release
rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

6. GhettoForge  Repository

GhettoForge項目專一於爲Enterprise Linux版本6和7提供包,這些包目前不在基本EL包集中,也不在其餘第三方存儲庫中。您可使用如下命令在系統上啓用GhettoForge。

### For CentOS/RHEL 7 ###
rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm

### For CentOS/RHEL 6 ###
rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el6.noarch.rpm

七、Psychotic Ninja Repository

對於Enterprise Linux版本6和7,Psychotic Ninja旨在提供基本EL包集中以及其餘第三方存儲庫中不存在的高質量包。要啓用Psychotic Ninja存儲庫,首先須要導入GPG密鑰而後安裝它。

rpm --import http://wiki.psychotic.ninja/RPM-GPG-KEY-psychotic
rpm -ivh http://packages.psychotic.ninja/6/base/i386/RPMS/psychotic-release-1.0.0-1.el6.psychotic.noarch.rpm

請注意,這個統一的精神病發布包適用於全部版本和體系結構,包括64位版本的CentOS / RHEL 7。

八、IUS Community Repository

最後列出的是,IUS(Inline with Upstream Stable)是一個新的第三方社區支持的repo,爲最新的PHP,Python,MySQL上游版本提供高質量的RPM包,用於Red Hat Enterprise Linux(RHEL)和CentOS 。

就像咱們看到的許多回購同樣,IUS也依賴於EPEL。

### For CentOS/RHEL 7 ###
yum -y install epel-release
rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm

### For CentOS/RHEL 6 ###
yum -y install epel-release
rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpm

九、Webtatic Repository

Webtatic是一個yum存儲庫,一般處理與Web主機相關的包,CentOS / RHEL存儲庫中不包含這些包。 執行如下命令之一以在CentOS / RHEL 7/6系統上安裝REMI yum存儲庫。

### For CentOS/RHEL 7 ###
yum localinstall  http://repo.webtatic.com/yum/el7/webtatic-release.rpm

### For CentOS/RHEL 6 ###
yum localinstall  http://repo.webtatic.com/yum/el6/latest.rpm

以上部分倉庫也能夠忽略key,參數是:--nogpgcheck 

5、解決衝突

特殊狀況 : 但在不一樣優先級的源中都含有同一個包時, 它的行爲可能就不是咱們所須要的.

例如, 在 base 源中有個包 : abc-2.2.0.x86_64.rpmbase 是最高優先級. 在其餘的優先級中也有許多 abc 包, 若是你想安裝 abc-2.1.0-x86_64.rpm, 經過命令

yum install abc-2.1.0

就會出現下面的提示:xx packages excluded due to repository priority protection,而且找不到所須要的包,這是由於在高優先級源中存在的包,會將其餘低優先級中的包屏蔽掉,所以沒法從低優先級的源中安裝所須要的包。

修改priorities的配置文件是/etc/yum/pluginconf.d/priorities.conf

其內容爲:

[main]

enabled=0   # 0禁用 1啓用

默認是1;設置enabled = 0, 這樣就能夠禁用priorities插>件。從而可以安裝任意源上的包。

參考文章:

http://www.javashuo.com/article/p-uscdvfoa-bn.html

https://tecadmin.net/top-5-yum-repositories-for-centos-rhel-systems/

相關文章
相關標籤/搜索