首頁 > 軟體

Linux基礎教學 - Linux yum 命令

2020-06-16 17:16:22

yum( Yellow dog Updater, Modified)是一個在FedoraRedHat以及SUSE中的Shell前端軟體包管理器。

基於RPM包管理,能夠從指定的伺服器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum提供了查詢、安裝、刪除某一個、一組甚至全部軟體包的命令,而且命令簡潔而又好記。

yum 語法

yum [options][command][package...]
  • options:可選,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。
  • command:要進行的操作。
  • package操作的物件。

yum常用命令

  • 1.列出所有可更新的軟體清單命令:yum check-update
  • 2.更新所有軟體命令:yum update
  • 3.僅安裝指定的軟體命令:yum install <package_name>
  • 4.僅更新指定的軟體命令:yum update <package_name>
  • 5.列出所有可安裝的軟體清單命令:yum list
  • 6.刪除軟體包命令:yum remove <package_name>
  • 7.查詢軟體包 命令:yum search <keyword>
  • 8.清除快取命令:
    • yum clean packages: 清除快取目錄下的軟體包
    • yum clean headers: 清除快取目錄下的 headers
    • yum clean oldheaders: 清除快取目錄下舊的 headers
    • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除快取目錄下的軟體包及舊的headers

範例 1

安裝 pam-devel

[root@www ~]# yum install pam-devel
Setting up InstallProcessParsingpackage install arguments
ResolvingDependencies<==先檢查軟體的屬性相依問題-->Running transaction check
--->Package pam-devel.i386 0:0.99.6.2-4.el5set to be updated
-->ProcessingDependency: pam =0.99.6.2-4.el5forpackage: pam-devel
-->Running transaction check
--->Package pam.i386 0:0.99.6.2-4.el5set to be updated
filelists.xml.gz          100%|=========================|1.6 MB    00:05
filelists.xml.gz          100%|=========================|138 kB    00:00->FinishedDependencyResolution……(省略)

範例 2

移除 pam-devel

[root@www ~]# yum remove pam-devel
Setting up RemoveProcessResolvingDependencies<==同樣的,先解決屬性相依的問題-->Running transaction check
--->Package pam-devel.i386 0:0.99.6.2-4.el5set to be erased
-->FinishedDependencyResolutionDependenciesResolved=============================================================================PackageArchVersionRepositorySize=============================================================================Removing:
 pam-devel               i386       0.99.6.2-4.el5   installed         495 k

TransactionSummary=============================================================================Install0Package(s)Update0Package(s)Remove1Package(s)<==還好,並沒有屬性相依的問題,單純移除一個軟體Isthis ok [y/N]: y
DownloadingPackages:Running rpm_check_debug
RunningTransactionTestFinishedTransactionTestTransactionTestSucceededRunningTransactionErasing: pam-devel                    ######################### [1/1]Removed: pam-devel.i386 0:0.99.6.2-4.el5Complete!

範例 3

利用 yum 的功能,找出以 pam 為開頭的軟體名稱有哪些?

[root@www ~]# yum list pam*InstalledPackages
pam.i386                  0.99.6.2-3.27.el5      installed
pam_ccreds.i386           3-5                    installed
pam_krb5.i386             2.2.14-1               installed
pam_passwdqc.i386         1.0.2-1.2.2            installed
pam_pkcs11.i386           0.5.3-23               installed
pam_smb.i386              1.1.7-7.2.1            installed
AvailablePackages<==底下則是『可升級』的或『未安裝』的
pam.i386                  0.99.6.2-4.el5base
pam-devel.i386            0.99.6.2-4.el5base
pam_krb5.i386             2.2.14-10base

國內 yum 源

網易(163)yum源是國內最好的yum源之一 ,無論是速度還是軟體版本,都非常的不錯。

將yum源設定為163 yum,可以提升軟體包安裝和更新的速度,同時避免一些常見軟體版本無法找到。

安裝步驟

首先備份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下載對應版本 repo 檔案, 放入 /etc/yum.repos.d/ (操作前請做好相應備份)

  • CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
  • CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
  • CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repoCentOS-Base.repo

執行以下命令生成快取

yum clean all
yum makecache

除了網易之外,國內還有其他不錯的 yum 源,比如中科大和搜狐。

中科大的 yum 源,安裝方法檢視:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

sohu 的 yum 源安裝方法檢視: http://mirrors.sohu.com/help/centos.html

設定本地Yum倉庫

實現此案例需要按照如下步驟進行。

步驟一:搭建一個本地Yum,將RHEL6光碟手動掛載到/media

命令操作如下所示:

[root@localhost ~]# mount /dev/cdrom /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# mount | tail -1/dev/sr0 on /media type iso9660 (ro)

步驟二:將本地設定為用戶端,進行Yum驗證

Yum用戶端需編輯組態檔,命令操作如下所示:

[root@localhost ~]# cd /etc/yum.repos.d///必須在這個路徑下[root@localhost yum.repos.d]# ls                  //此路徑下事先有組態檔的模板
rhel-source.repo

[root@localhost yum.repos.d]# cp rhel-source.repo rhel6.repo //組態檔必須以.repo結尾[root@localhost yum.repos.d]# vim rhel6.repo
[rhel-6]//中括號裡內容要求唯一,但不要出現特殊字元
name=RedHatEnterpriseLinux6//此為描述資訊,可以看情況填寫
baseurl=file:///media/                     //此項為yum軟體倉庫位置,指向光碟掛載點
enabled=1//此項為是否開啟,1為開啟0為不開啟
gpgcheck=1//此項為是否檢查簽名,1為監測0為不檢測
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release  //簽名認證資訊的路徑[root@localhost /]# yum repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system isnot registered to RedHatSubscriptionManagement.You can use subscription-manager to register.
rhel-6|3.9 kB     00:00... 
rhel-6/primary_db                                  |3.1 MB     00:00... 
repo id             repo name                                     status
rhel-6RedHatEnterpriseLinux63,690
repolist:3,690

對於 Linux 軟體安裝時提示缺失庫的,可以使用 yum 的 provides 引數檢視 libstdc++.so.6 的庫檔案包含在那個安裝包中只需要執行:

yum provides libstdc++.so.6

然後按查詢到安裝包包名,使用 yum install 安裝即可。


IT145.com E-mail:sddin#qq.com