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