1. 程式人生 > >如何在CentOS / RHEL上使用yum命令

如何在CentOS / RHEL上使用yum命令

 

如何使用yum命令通過RHN或Internet更新來修復我的紅帽企業Linux/CentOS Linux版本5.x/6.x/7.x伺服器?

可以在RHEL V5.x下使用 up2date 命令嗎?

up2date命令是RHEL V4.X或舊版本的一部分。您需要使用YUM命令來使用RHN或Internet更新以修補系統。

使用yum命令安裝關鍵和非關鍵安全更新以及二進位制包。作為根使用者登入以安裝和更新系統。

這個頁面顯示了一些常見的系統管理員任務,您可以在CentOS或RHEL上使用yum命令來執行這些任務。

 


如何使用RHN註冊我的基於RHEL的系統

 

要使用RHN註冊RHEL 5.x系統,請鍵入以下命令,然後按照螢幕說明操作(CentOS使用者跳到下一步):
# rhn_register


使用RHN型別註冊RHEL 7.x系統
# subscription-manager register --username tom --password jerry --auto-attach

 

警告!這些示例僅適用於RHEL / CentOS Linux 5.x或更高版本。對於RHEL 4.x及更早版本,請使用up2date命令

 

如何顯示更新的軟體和安全修復程式列表

 

在shell提示符下鍵入以下命令:


# yum list updates


示例輸出:

載入的外掛:fastermirror 
從快取的hostfile 
 * base 載入映象速度:ftp.iitm.ac.in 
 * epel:repo.ugm.ac.id 
 * extras:ftp.iitm.ac.in 
 * updates:ftp.iitm.ac.in 
更新的軟體包
apr.x86_64 1.3.9- 5 .el6_9.1更新
device-mapper.x86_64 1.02.117- 12 .el6_9.1更新
device-mapper-libs.x86_64 1.02.117- 12 .el6_9.1更新
kernel-devel .x86_64 2.6.32-696.16.1.el6更新
kernel-headers.x86_64 2.6.32-696.16.1.el6更新
libblkid.x86_64 2.17.2- 12.28 .el6_9.1更新
libuuid.x86_64 2.17.2- 12.28 .el6_9.1更新
util-linux-ng.x86_64 2.17。 2- 12.28 .el6_9.1更新

 

如何確定我的系統上已安裝的軟體包是否存在更新

 

# yum check-update

 

通過應用所有更新來修補系統

 

要下載並安裝所有更新,請鍵入以下命令:


# yum update


示例輸出:

更新所有CentOS 6.x軟體包,包括它們所依賴的軟體包

 

更新所有CentOS 6.x軟體包,包括它們所依賴的軟體包


您只能使用以下語法應用與安全相關的包更新:


$ sudo yum update --security

 

更新指定的包

更新指定的包。語法是


$ yum update {package-name-1}


檢查並更新httpd包,輸入:


$ sudo yum update httpd


您可以使用以下語法將一個包更新為特定版本,例如nginx:


$ ## first find a list of all dups ##
$ yum --showduplicates list nginx
$ ## now update to particular version ##
$ sudo yum update-to nginx-version
$ sudo yum update-to nginx-1.12.2-1.el7

 

列出所有已安裝的包

 

要列出所有已安裝的軟體包,請輸入:Sample outputs:


$ rpm -qa ## not recommend just use yum ##
$ yum list installed

 

載入的外掛:fastermirror 
從快取的hostfile 
 * base 載入映象速度:ftp.iitm.ac.in 
 * epel:mirror1.ku.ac.th 
 * extras:ftp.iitm.ac.in 
 * updates:ftp.iitm.ac.in 
已安裝的軟體包
GeoIP.x86_64 1.5.0- 11 .el7 @base    
OpenEXR-libs.x86_64 1.7.1- 7 .el7 @base    
SDL.x86_64 1.2.15- 14 .el7 @base    
ShellCheck.x86_64 0.3.5- 1 .el7 @epel   
acl.x86_64 2.2.51- 12 .el7 @base    
alsa-lib.x86_64 1.1.3- 3 .el7 @base    
apr.x86_64 1.4.8- 3 .el7_4.1 @updates 
apr-util.x86_64 1.5.2- 6 .el7 @base    
atk.x86_64 2.22.0- 3 .el7 @base    
atk-devel.x86_64 2.22.0- 3 .el7 @base   
atlas.x86_64 3.10.1- 12 .el7 @base    
audit-libs.x86_64 2.7.6- 3 .el7 @base    
autoconf.noarch                                     2.69 - 11 .el7 @base    
autogen-libopts.x86_64                              5.18 - 5 .el7 @base    
.. .. 
.. 
... 
yum-plugin-fastermirror.noarch 1.1.31- 42. .el7 @base   
zip.x86_64                                          3.0 - 11 .el7 @base    
zlib.x86_64 1.2.7- 17 .el7 @base    
zlib-devel.x86_64 1.2.7- 17 .el7 @base

 

找出是否在系統上安裝了httpd包

 

$ rpm -qa | grep httpd*
$ yum list installed httpd


樣本輸出:

載入的外掛:fastermirror 
從快取的hostfile 
 * base 載入映象速度:centos.excellmedia.net 
 * epel:repo.ugm.ac.id 
 * extras:centos.excellmedia.net 
 * updates:centos.excellmedia.net 
已安裝的軟體包
httpd.x86_64 2.4 .6- 67 .el7.centos.6 @updates

 

列出可用於安裝系統上安裝的所有軟體包的所有軟體包

 

$ yum list
$ yum list
$ yum list | more ## [ Use more command to show info one screen at a time ] ##
$ yum list | grep bash ## [ Use grep command to filter out results ] ##

 

列出可用於安裝的所有軟體包

 

$ yum list available
$ yum list available | more
$ yum list available | grep nginx

 

如何按名稱搜尋包

 

您可以使用search命令搜尋包描述中的指定字串。list命令也可以使用。要搜尋httpd和所有匹配的perl包,請輸入:Sample output from :


$ yum list {package-name}
$ yum list {regex}
$ yum list httpd
$ yum list perl*
$ yum search {package-name}
$ yum search nginx
$ yum search nginx*


yum list perl*

載入“installonlyn”外掛
載入“安全”外掛
設定儲存庫
從本地檔案讀取儲存庫的元資料中
已安裝的軟體包
perl.i386                                 4:5.8.8- 10 .el5_0.2安裝        
Perl的存檔- Tar.noarch                   1.30 - 1 .fc6安裝        
Perl的BSD-Resource.i386                    1.28 - 1 .fc6.1安裝        
Perl的壓縮-Zlib.i386                   1.42 - 1安裝.fc6       
Perl的DBD-MySQL.i386                       3.0007 - 1 .fc6安裝        
的perl-DBI.i386                             1.52 - 1 .fc6安裝        
Perl的文摘-HMAC.noarch                   1.01 - 15                 安裝        
Perl的文摘-SHA1.i386                     2.11安裝-1.2.1        
perl- HTML-Parser.i386                     3.55 - 1 .fc6安裝    
..... 
....... 
.. 
perl-libxml-perl.noarch                   0.08-1.2.1基             
的perl-suidperl.i386                        4:5.8.8- 10個 .el5_0.2更新

 

如何檢視有關包的詳細資訊

語法是:示例輸出:


$ yum info {pkg-1} {pkg-2}
$ yum info htop
$ yum info nginx htop

 

顯示有關RHEL / CentOS Linux伺服器上的程式包的詳細資訊

顯示有關RHEL / CentOS Linux伺服器上的程式包的詳細資訊

 

 

如何顯示包的依賴項列表

語法是:示例輸出:


$ yum deplist {pkg}
## show for htop pkg
$ yum deplist htop

載入的外掛:fastermirror 
從快取的hostfile 
 * base 載入映象速度:centos.excellmedia.net 
 * epel:repo.ugm.ac.id 
 * extras:centos.excellmedia.net 
 * updates:centos.excellmedia.net 
package:htop.x86_64 2.0 .2- 1 .el7 
  依賴性:libc.so.6的( GLIBC_2.15 )( 64位) 
   提供商:glibc.x86_64 2.17 - 196 .el7_4.2 
  依賴性:libgcc_s.so.1 ()( 64位) 
   提供商:libgcc.x86_64 4.8.5- 16 .el7_4.1 
  依賴:libgcc_s.so.1 (GCC_3.0 )( 64位) 
   提供者:libgcc.x86_64 4.8.5- 16 .el7_4.1 
  依賴:libgcc_s.so.1 ( GCC_3.3.1 )( 64位) 
   提供者:libgcc.x86_64 4.8.5- 16 .el7_4.1 
  dependency:libm.so.6 ()( 64bit ) 
   provider:glibc.x86_64 2.17 - 196 .el7_4.2 
  dependency:libm.so.6 ( GLIBC_2.2.5 )( 64bit ) 
   provider:glibc.x86_64 2.17 - 196 .el7_4。 2
  dependency:libncursesw.so.5 ()( 64bit ) 
   provider:ncurses-libs.x86_64 5.9 - 14.20130511 .el7_4 
  dependency:libtinfo.so.5 ()( 64bit ) 
   provider:ncurses-libs.x86_64 5.9 - 14.20130511 .el7_4 
  dependency: rtld ( GNU_HASH ) 
   提供者:glibc.x86_64 2.17 - 196 .el7_4.2 
   提供者:glibc.i686 2.17 - 196 .el7_4.2

 

如何安裝指定的包[RPM(s)]

 

要安裝名為httpd的包:示例輸出:
# yum install {package-name-1} {package-name-2}
# yum install httpd
# yum install nginx mariadb-server php-fpm
# yum install htop

 

在CentOS / RHEL上安裝名為htop的指定包

 

在CentOS / RHEL上安裝名為htop的指定包

 


要從名為foo.rpm或http或ftp映象的本地檔案安裝軟體包:也可以安裝特定版本。要在repos中,在列表/搜尋命令中查詢或顯示重複項
$ sudo yum localinstall foo.rpm
$ sudo yum https://server1.cyberciti.biz/foo.rpm


$ yum --showduplicates list php
$ ## now install to particular version ##
$ sudo yum update-to php-version
$ sudo yum update-to php-7.0.2-1.nix

 

如何將程式包降級到早期版本

 

語法是:
# yum downgrade {pkg}
# yum downgrade nginx

 

如何重新安裝包

 

語法是:


# yum reinstall {pkg}
# yum reinstall httpd

 

如何刪除/解除安裝指定的包[RPM(s)]

 

刪除名為httpd的包,輸入:


# yum remove {package-name-1} {package-name-2}
# yum erase {package-name-1} {package-name-2}
# yum remove httpd
# yum erase htop

 

如何刪除不需要/不需要的包/ deps

 

語法是:
# yum autoremove


示例輸出:

載入的外掛:fastermirror 
解析依賴項
- >執行事務檢查
--->包tcp_wrappers-libs.x86_64 0:7.6 - 77 .el7將被刪除
- >完成的依賴項解析
- >查詢不需要的剩餘依賴項
找到並刪除0不需要依賴
 
關係已解決的依賴關係= ============================================== ================================================== ====== 
 包Arch版本儲存庫大小=
 

================================================== ================================================== == 
刪除:
 tcp_wrappers-libs x86_64               7.6 - 77 .el7 @base               131 k 
 
交易摘要= ============================== ================================================== ====================== 
刪除   1個軟體包
已安裝大小:131 k 
這是否[ y / N ]:y正在
下載軟體包:
執行事務檢查
執行事務測試
事務測試成功了

 
執行的事務
  刪除:tcp_wrappers的-libs- 7.6 - 77 .el7.x86_64                                                  1 / 1  
  驗證:tcp_wrappers的-libs- 7.6 - 77 .el7.x86_64                                                  1 / 1 
  
刪除:
  tcp_wrappers的-libs.x86_64 0:7.6 - 77 .el7                                                                 
 
完成!

 

顯示可用包列表

 

$ yum list all

 

顯示組軟體列表

 

鍵入以下命令:


$ yum grouplist
OR 
$ yum groups list


輸出:

已安裝的組:
   工程和科學
   MySQL資料庫
   編輯器
   系統工具
   基於文字的Internet 
   傳統網路伺服器
   DNS名稱伺服器
   撥號網路支援
   FTP伺服器
   網路伺服器
   舊版軟體開發
   舊版軟體支援
   開發庫
   圖形
   Web伺服器
   Ruby 
   列印支援
   郵件伺服器
   伺服器配置工具
   PostgreSQL資料庫
可用組:
   Office / Productivity 
   管理工具
   Beagle 
   開發工具
   GNOME軟體開發
   X軟體開發
   虛擬化
   GNOME桌面環境
   創作和釋出
   單聲道
   遊戲和娛樂
   XFCE-4.4 
   Tomboy 
   Java 
   Java開發
   Emacs 
   X視窗系統
   Windows檔案伺服器
   KDE軟體開發
   KDE(K桌面環境)
   部落
   聲音和視訊
   FreeNX和NX 
   新聞伺服器
   百勝公用事業
   圖形網際網路
完成

按組安裝所有預設包

 

安裝所有“開發工具”組包,輸入:
# yum groupinstall "Development Tools"
OR
# yum groups install "Development Tools"

 

按組更新所有預設包

 

更新所有“開發工具”組包,輸入:
# yum groupupdate "Development Tools"
OR
# yum groups update "Development Tools"

 

刪除組中的所有包

 

刪除所有“開發工具”組包,輸入:


# yum groupremove "Development Tools"
OR
# yum groups remove "Development Tools"

 

顯示包組的描述和內容

 

$ yum groupinfo 'Development Tools'


或樣本輸出:


$ yum groups info 'Development Tools'
$ yum groups info 'File and Print Server'

載入的外掛:fastermirror 
從快取的hostfile 載入映象速度
 * base:del-mirrors.extreme-ix.org 
 * epel:ftp.riken.jp 
 * extras:del-mirrors.extreme-ix.org 
 * updates:del-mirrors.extreme -ix.org 
 
環境組:檔案和列印伺服器
 環境-Id:file-print-server-environment 
 描述:企業的檔案,列印和儲存伺服器。
 強制組:
   + base 
   + core 
   + file-server 
   + print-server 
 可選組:
   + backup-client 
   + backup-server 
   + debugging 
   + directory-client 
   + guest-agents 
   + ha 
   + hardware-monitoring
   + java-platform 
   + large-systems 
   + network-file-system-client 
   + performance 
   + remote-system-management 
   + resilient-storage</span>

 

安裝特定的架構包

 

如果您使用的是64位RHEL版本,則可以安裝32個軟體包(請注意,在最新版本的CentOS / RHEL 7.x中刪除了32位支援):


# yum install {package-name}.{architecture}
# yum install mysql.i386

 

顯示未通過官方RHN訂閱的回購安裝的軟體包

 

顯示所有未通過訂閱頻道或儲存庫提供的包,即顯示通過其他儲存庫安裝的包:


$ yum list extras


示例輸出:

載入“installonlyn”外掛
載入“安全”外掛
設定儲存
庫從本地檔案讀取儲存庫元資料
額外軟體包
DenyHosts.noarch 2.6-python2.4安裝        
VMwareTools.i386 6532-44356已安裝        
john.i386 1.7.0.2-3.el5.rf安裝        
kernel.i686 2.6.18-8.1.15.el5安裝        
kernel-devel.i686 2.6.18-8.1.15.el5安裝        
lighttpd.i386 1.4.18-1.el5.rf安裝       
lighttpd-fastcgi.i386 1.4.18-1.el5.rf安裝了        
psad.i386 2.1-1安裝了        
rssh.i386 2.3.2-1.2.el5.rf已安裝  

 

顯示提供檔案的包

 

您可以輕鬆找到RPM包提供的檔案。例如,找出提供/ etc / passwd檔案的內容:


$ yum whatprovides /etc/passwd
OR 
$ yum provides /etc/passwd


示例輸出:

載入的外掛:fastermirror 
從快取的hostfile 
 * base 載入映象速度:centos.excellmedia.net 
 * epel:repo.ugm.ac.id 
 * extras:centos.excellmedia.net 
 * updates:centos.excellmedia.net 
setup-2.8.71- 7.el7.noarch:一組系統配置和設定檔案
Repo:base 
Matched from:
Filename:/ etc / passwd 



setup-2.8.71-7.el7.noarch:一組系統配置和設定檔案
Repo:@base 
匹配自:
檔名:/ etc / passwd

您可以使用相同的命令列出滿足依賴項的包:
$ yum whatprovides {dependency-1} {dependency-2}
$ yum provides string
$ yum provides '*bin/nginx*'

 

如何清理yum快取

 

您可以刪除所有快取和下載的包,標題和其他資訊:


# yum clean all


示例輸出:

載入的外掛:fastermirror 
清理repos:base epel extras updates 
清理一切
也許你想要:rm -rf / var / cache / yum,還可以釋放被禁用或刪除的repos中的孤立資料佔用的空間
清理快速映象列表

 

以上命令可以幫助清除可能由過時標頭,網路錯誤等導致的問題。要檢查本地RPM資料庫是否存在問題:


# yum check

 

如何列出軟體儲存庫

 

$ yum repolist


樣本輸出:

repo id repo name status 
base / 7 / x86_64 CentOS- 7 -  Base                                                  9591 
epel / x86_64 Enterprise Linux 7的額外軟體包-  x86_64                  12155 
extras / 7 / x86_64 CentOS- 7 - 附加                                                 327 327 
nginx / x86_64 nginx repo                                                        313 
updates / 7 / x86_64 CentOS- 7- 更新                                               1573 
repolist:23959

 

請參閱有關已啟用的yum儲存庫的資訊

 

要獲取有關nginx repo的資訊,請執行:


$ yum repoinfo nginx


Sample outputs:

回購ID:nginx的/ x86_64的
回購名稱:nginx的回購
回購狀態:啟用
回購修訂:1511279401 
回購更新時間:週二年11月21  15:50:07 2017年 
回購PKGS:313 
回購尺寸:143中號
回購的BaseURL :http://nginx.org/packages/mainline/centos/ 7 / x86_64的/ 
回購到期:21600第二(小號) (最後:星期六12月的23  16:49:24  2017 ) 
  過濾:只讀:本
Repo-filename:/etc/yum.repos.d/nginx.repo 
 
repolist:313

 

如何使用給定的儲存庫

 

語法是:


# yum repo-pkgs repo_name_id <list|install|remove|upgrade|reinstall> [pkg]


列出來自nginx儲存庫的所有包:從nginx儲存庫


# yum repo-pkgs nginx list


獲取有關nginx包的資訊:從nginx儲存庫安裝名為'nginx'的包:從nginx儲存庫安裝所有包:清除/刪除/刪除名為'nginx'的包nginx儲存庫:從nginx儲存庫中刪除/刪除/刪除所有包:從nginx儲存庫升級nginx包:從nginx儲存庫重新安裝nginx包:


# yum repo-pkgs nginx info | more
# yum repo-pkgs nginx info nginx

# yum repo-pkgs nginx install nginx
# yum repo-pkgs nginx install
# yum repo-pkgs nginx remove nginx
# yum repo-pkgs nginx remove
# yum repo-pkgs nginx upgrade nginx
# yum repo-pkgs nginx reinstall nginx

 

如何檢視和使用yum歷史記錄

 

語法為:有關詳細資訊,請參閱“ CentOS / RHEL:請參閱yum命令的詳細歷史記錄 ”。


# yum history
# yum history list
# yum info ID
# yum undo ID
# yum redo ID

 

如何檢視有關yum命令的幫助

 

有關更多資訊,請參閱yum命令手冊頁:示例輸出:


$ man yum
$ yum help
$ yum help install
$ yum help erase

已載入的外掛:fastermirror 
erase PACKAGE ... 

從系統

別名中刪除一個或多個軟體包:remove

 

yum命令摘要

Command name Description/usage
yum check-update Display list of available package updates
yum update
yum update pkg1
Update all packages or update the pkg1 package
yum install pkg Install a package
yum localinstall pkg.rpm Install a package from a file named pkg.rpm
yum erase pkg Remove a package
yum remove pkg Same as above
yum autoremove Free disk space by removing unwanted packages
yum reinstall pkg Reinstall a package
yum downgrade pkg Downgrade a package to an older version
yum check Check rpm database for errors/problems
yum clean packages Delete cached packages database
yum clean all Delete out all packages and meta data from disk cache
yum list
yum list installed
yum list php
yum list available
List package names
yum deplist pkg1 Show dependencies for a pkg1
yum info pkg Show info about a package
yum search pkg
yum search regex
Search package names
yum provides string
yum whatprovides string
List package that provides the given file or other info
yum history list Show a list of all yum command history action such as install/update/erase
yum history info ID Get info of yum action ID
yum history undo ID Undo the yum command action from ID
yum history redor ID Redot the yum command action from ID
yum grouplist List package groups
yum groupinstall ‘Group Name’ Install all packages in the given group name
yum groupinfo ‘Group Name’ See packages in the given group name
yum groupremove ‘Group Name’ Remove/Delete all packages in the selected group
yum repolist Show a list of all enabled repositories
yum repoinfo repoID Show info about repoID
yum repo-pkgs repoID list Show packages from repoID repo
yum repo-pkgs repoID install Install all packages from repoID repo
yum repo-pkgs repoID remove Erase all packages from repoID repo
yum repo-pkgs repoID reinstall Reinstall all packages from repoID repo
yum help
yum help command
man yum
Show help about yum command or read yum command man page

 

參考來源:https://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/