1. 程式人生 > 其它 >13LinuxRPM和YUM和APT

13LinuxRPM和YUM和APT

RPM

轉自:Linux rpm命令 | 菜鳥教程 (runoob.com)

介紹

rpm 命令用於管理套件。

rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程式,由於它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的採用。RPM 套件管理方式的出現,讓 Linux 易於安裝,升級,間接提升了 Linux 的適用度。

語法

rpm [-acdhilqRsv][-b<完成階段><套間檔>+][-e<套件擋>][-f<檔案>+][-i<套件檔>][-p<套件檔>+][-U<套件檔>][-vv][--addsign<套件檔>+][--allfiles][--allmatches][--badreloc][--buildroot<根目錄>][--changelog][--checksig<套件檔>+][--clean][--dbpath<資料庫目錄>][--dump][--excludedocs][--excludepath<排除目錄>][--force][--ftpproxy<主機名稱或IP地址>][--ftpport<通訊埠>][--help][--httpproxy<主機名稱或IP地址>][--httpport<通訊埠>][--ignorearch][--ignoreos][--ignoresize][--includedocs][--initdb][justdb][--nobulid][--nodeps][--nofiles][--nogpg][--nomd5][--nopgp][--noorder][--noscripts][--notriggers][--oldpackage][--percent][--pipe<執行指令>][--prefix<目的目錄>][--provides][--queryformat<檔頭格式>][--querytags][--rcfile<配置檔>][--rebulid<套件檔>][--rebuliddb][--recompile<套件檔>][--relocate<原目錄>=<新目錄>][--replacefiles][--replacepkgs][--requires][--resign<套件檔>+][--rmsource][--rmsource<檔案>][--root<根目錄>][--scripts][--setperms][--setugids][--short-circuit][--sign][--target=<安裝平臺>+][--test][--timecheck<檢查秒數>][--triggeredby<套件檔>][--triggers][--verify][--version][--whatprovides<功能特性>][--whatrequires<功能特性>]

引數說明

  • -a  查詢所有套件。
  • -b<完成階段><套件檔>+或-t <完成階段><套件檔>+  設定包裝套件的完成階段,並指定套件檔的檔名稱。
  • -c  只列出組態配置檔案,本引數需配合"-l"引數使用。
  • -d  只列出文字檔案,本引數需配合"-l"引數使用。
  • -e<套件檔>或--erase<套件檔>  刪除指定的套件。
  • -f<檔案>+  查詢擁有指定檔案的套件。
  • -h或--hash  套件安裝時列出標記。
  • -i  顯示套件的相關資訊。
  • -i<套件檔>或--install<套件檔>  安裝指定的套件檔。
  • -l  顯示套件的檔案列表。
  • -p<套件檔>+  查詢指定的RPM套件檔。
  • -q  使用詢問模式,當遇到任何問題時,rpm指令會先詢問使用者。
  • -R  顯示套件的關聯性資訊。
  • -s  顯示檔案狀態,本引數需配合"-l"引數使用。
  • -U<套件檔>或--upgrade<套件檔> 升級指定的套件檔。
  • -v  顯示指令執行過程。
  • -vv  詳細顯示指令執行過程,便於排錯。
  • -addsign<套件檔>+  在指定的套件里加上新的簽名認證。
  • --allfiles  安裝所有檔案。
  • --allmatches  刪除符合指定的套件所包含的檔案。
  • --badreloc  發生錯誤時,重新配置檔案。
  • --buildroot<根目錄>  設定產生套件時,欲當作根目錄的目錄。
  • --changelog  顯示套件的更改記錄。
  • --checksig<套件檔>+  檢驗該套件的簽名認證。
  • --clean  完成套件的包裝後,刪除包裝過程中所建立的目錄。
  • --dbpath<資料庫目錄>  設定欲存放RPM資料庫的目錄。
  • --dump  顯示每個檔案的驗證資訊。本引數需配合"-l"引數使用。
  • --excludedocs  安裝套件時,不要安裝檔案。
  • --excludepath<排除目錄>  忽略在指定目錄裡的所有檔案。
  • --force  強行置換套件或檔案。
  • --ftpproxy<主機名稱或IP地址>  指定FTP代理伺服器。
  • --ftpport<通訊埠>  設定FTP伺服器或代理伺服器使用的通訊埠。
  • --help  線上幫助。
  • --httpproxy<主機名稱或IP地址>  指定HTTP代理伺服器。
  • --httpport<通訊埠>  設定HTTP伺服器或代理伺服器使用的通訊埠。
  • --ignorearch  不驗證套件檔的結構正確性。
  • --ignoreos  不驗證套件檔的結構正確性。
  • --ignoresize  安裝前不檢查磁碟空間是否足夠。
  • --includedocs  安裝套件時,一併安裝檔案。
  • --initdb  確認有正確的資料庫可以使用。
  • --justdb  更新資料庫,當不變動任何檔案。
  • --nobulid  不執行任何完成階段。
  • --nodeps  不驗證套件檔的相互關聯性。
  • --nofiles  不驗證檔案的屬性。
  • --nogpg  略過所有GPG的簽名認證。
  • --nomd5  不使用MD5編碼演算確認檔案的大小與正確性。
  • --nopgp  略過所有PGP的簽名認證。
  • --noorder  不重新編排套件的安裝順序,以便滿足其彼此間的關聯性。
  • --noscripts  不執行任何安裝Script檔案。
  • --notriggers  不執行該套件包裝內的任何Script檔案。
  • --oldpackage  升級成舊版本的套件。
  • --percent  安裝套件時顯示完成度百分比。
  • --pipe<執行指令>  建立管道,把輸出結果轉為該執行指令的輸入資料。
  • --prefix<目的目錄>  若重新配置檔案,就把檔案放到指定的目錄下。
  • --provides  查詢該套件所提供的相容度。
  • --queryformat<檔頭格式>  設定檔頭的表示方式。
  • --querytags  列出可用於檔頭格式的標籤。
  • --rcfile<配置檔案>  使用指定的配置檔案。
  • --rebulid<套件檔>  安裝原始程式碼套件,重新產生二進位制檔案的套件。
  • --rebuliddb  以現有的資料庫為主,重建一份資料庫。
  • --recompile<套件檔>  此引數的效果和指定"--rebulid"引數類似,當不產生套件檔。
  • --relocate<原目錄>=<新目錄>  把本來會放到原目錄下的檔案改放到新目錄。
  • --replacefiles  強行置換檔案。
  • --replacepkgs  強行置換套件。
  • --requires  查詢該套件所需要的相容度。
  • --resing<套件檔>+  刪除現有認證,重新產生簽名認證。
  • --rmsource  完成套件的包裝後,刪除原始程式碼。
  • --rmsource<檔案>  刪除原始程式碼和指定的檔案。
  • --root<根目錄>  設定欲當作根目錄的目錄。
  • --scripts  列出安裝套件的Script的變數。
  • --setperms  設定檔案的許可權。
  • --setugids  設定檔案的擁有者和所屬群組。
  • --short-circuit  直接略過指定完成階段的步驟。
  • --sign  產生PGP或GPG的簽名認證。
  • --target=<安裝平臺>+  設定產生的套件的安裝平臺。
  • --test  僅作測試,並不真的安裝套件。
  • --timecheck<檢查秒數>  設定檢查時間的計時秒數。
  • --triggeredby<套件檔>  查詢該套件的包裝者。
  • --triggers  展示套件檔內的包裝Script。
  • --verify  此引數的效果和指定"-q"引數相同。
  • --version  顯示版本資訊。
  • --whatprovides<功能特性>  查詢該套件對指定的功能特性所提供的相容度。
  • --whatrequires<功能特性>  查詢該套件對指定的功能特性所需要的相容度。

例項

安裝軟體

# rpm -hvi dejagnu-1.4.2-10.noarch.rpm 
警告:dejagnu-1.4.2-10.noarch.rpm: V3 DSA 簽名:NOKEY, key ID db42a60e
準備...           
########################################### [100%]

顯示軟體安裝資訊

# rpm -qi dejagnu-1.4.2-10.noarch.rpm

YUM

轉自:Linux apt 命令 | 菜鳥教程 (runoob.com)

yum( Yellow dog Updater, Modified)是一個在 Fedora 和 RedHat 以及 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
  • \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 Install Process
Parsing package install arguments
Resolving Dependencies  <==先檢查軟體的屬性相依問題
--> Running transaction check
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated
--> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated
filelists.xml.gz          100% |=========================| 1.6 MB    00:05
filelists.xml.gz          100% |=========================| 138 kB    00:00
-> Finished Dependency Resolution
……(省略)

例項 2

移除 pam-devel

[root@www ~]# yum remove pam-devel
Setting up Remove Process
Resolving Dependencies  <==同樣的,先解決屬性相依的問題
--> Running transaction check
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Removing:
 pam-devel               i386       0.99.6.2-4.el5   installed         495 k

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       0 Package(s)
Remove       1 Package(s)  <==還好,並沒有屬性相依的問題,單純移除一個軟體

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing   : pam-devel                    ######################### [1/1]

Removed: pam-devel.i386 0:0.99.6.2-4.el5
Complete!

例項 3

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

[root@www ~]# yum list pam*
Installed Packages
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
Available Packages <==底下則是『可升級』的或『未安裝』的
pam.i386                  0.99.6.2-4.el5         base
pam-devel.i386            0.99.6.2-4.el5         base
pam_krb5.i386             2.2.14-10              base

國內 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/ (操作前請做好相應備份)

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo CentOS-Base.repo

執行以下命令生成快取

yum clean all
yum makecache

APT

轉自:Linux apt 命令 | 菜鳥教程 (runoob.com)

apt(Advanced Packaging Tool)是一個在 Debian 和 Ubuntu 中的 Shell 前端軟體包管理器。

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

apt 命令執行需要超級管理員許可權(root)。

apt 語法

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

apt 常用命令

  • 列出所有可更新的軟體清單命令:sudo apt update

  • 升級軟體包:sudo apt upgrade

    列出可更新的軟體包及版本資訊:apt list --upgradeable

    升級軟體包,升級前先刪除需要更新軟體包:sudo apt full-upgrade

  • 安裝指定的軟體命令:sudo apt install <package_name>

    安裝多個軟體包:sudo apt install <package_1> <package_2> <package_3>

  • 更新指定的軟體命令:sudo apt update <package_name>

  • 顯示軟體包具體資訊,例如:版本號,安裝大小,依賴關係等等:sudo apt show <package_name>

  • 刪除軟體包命令:sudo apt remove <package_name>

  • 清理不再使用的依賴和庫檔案: sudo apt autoremove

  • 移除軟體包及配置檔案: sudo apt purge <package_name>

  • 查詢軟體包命令: sudo apt search

  • 列出所有已安裝的包:apt list --installed

  • 列出所有已安裝的包的版本資訊:apt list --all-versions

例項

檢視一些可更新的包:

sudo apt update

升級安裝包:

sudo apt upgrade

在以上互動式輸入字母 Y 即可開始升級。

可以將以下兩個命令組合起來,一鍵升級:

sudo apt update && sudo apt upgrade -y