本文章為原創,如有轉載,請注明出處
1. yum指令
yum 指令:用于添加/删除/更新RPM包,自動解決包的依賴問題以及系統更新更新
參數
-e [error level], --errorlevel=[error level] 錯誤輸出級别
-q, --quiet 安靜的操作
-t 忽略錯誤
-R[分鐘] 設定等待時間
-y 自動應答yes
--skip-broken 忽略依賴問題
--nogpgcheck 忽略GPG驗證
check-update 檢查可更新的包
clean all 清除全部
clean packages 清除臨時封包件(/var/cache/yum 下檔案)
clean headers 清除rpm頭檔案
clean oldheaders 清除舊的rpm頭檔案
deplist 列出包的依賴
list 可安裝和可更新的RPM包
list installed 已安裝的包
list extras 已安裝且不在資源庫的包
info 可安裝和可更新的RPM包 資訊
info installed 已安裝包的資訊(-qa 參數相似)
install[RPM包] 安裝包
localinstall 安裝本地的 RPM包
update[RPM包] 更新包
upgrade 更新系統
search[關鍵詞] 搜尋包
provides[關鍵詞] 搜尋特定封包件名
reinstall[RPM包] 重新安裝包
repolist 顯示資源庫的配置
resolvedep 指定依賴
remove[RPM包] 解除安裝包
- 例子
1,安裝
[root@localhost ~]# yum install php53 #安裝php5.3
[root@localhost ~]# yum groupinstall "MySQL Server" #安裝mysql資料庫組
2,更新和更新
[root@localhost ~]# yum update #全部更新
[root@localhost ~]# yum update php53 #更新php
[root@localhost ~]# yum check-update #檢查可更新的程式
[root@localhost ~]# yum upgrade php53 #更新php53
[root@localhost ~]# yum groupupdate "MySQL Server" #更新mysql服務組
3,查找和顯示
[root@localhost ~]# yum info php53 #檢視php53的安裝資訊
[root@localhost ~]# yum list #列出所有可安裝的程式包
[root@localhost ~]# yum list php53 #列出所有php53的程式包
[root@localhost ~]# yum groupinfo "MySQL Server" #檢視mysql服務組的,相關安裝包
[root@localhost ~]# yum deplist php53 #檢視php53依賴情況
4,删除
[root@localhost ~]# yum remove php53 #删除php53
[root@localhost ~]# yum groupremove "MySQL Server" #删除mysql服務組
5,清除緩存
[root@localhost ~]# yum clean packages #清除緩存目錄下的軟體包
[root@localhost ~]# yum clean headers #清除緩存目錄下的 headers
[root@localhost ~]# yum clean oldheaders #清除緩存目錄下舊的 headers
[root@localhost ~]# yum clean, yum clean all #清除所有
2. rpm
rpm是一個功能十分強大的軟體包管理系統,它使得在Linux下安裝、更新和删除軟體包的工作變得容易,并且具有查詢、驗證軟體包的功能。與圖形化工具相比,使用指令行可以獲得更大的靈活性。以下的例子都以example-1.2.3-1.i386.rpm代表對象軟體包的名稱
- 安裝選項
指令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 将要安裝的RPM包的檔案名
詳細選項:
-h (or --hash) 安裝時輸出hash記号 (``#'')
--test 隻對安裝進行測試,并不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟體包中的文檔檔案
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟體包
--replacefiles 替換屬于其它軟體包的檔案
--force 忽略軟體包及檔案的沖突
--noscripts 不運作預安裝和後安裝腳本
--prefix 将軟體包安裝到由 指定的路徑下
--ignorearch 不校驗軟體包的結構
--ignoreos 不檢查軟體包運作的作業系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口号為
通用選項
-v 顯示附加資訊
-vv 顯示更加詳細的資訊
--root 讓RPM将指定的路徑做為"根目錄",這樣預安裝程式和後安
裝程式都會安裝到這個目錄下
--rcfile 設定rpmrc檔案為
--dbpath 設定RPM 資料庫存所在的路徑為
- 删除選項
指令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
參數
pkg1 ... pkgN :要删除的軟體包
詳細選項
--test 隻執行删除的測試
--noscripts 不運作預安裝和後安裝腳本程式
--nodeps 不檢查依賴性
通用選項
-vv 顯示調試資訊
--root 讓RPM将指定的路徑做為"根目錄",這樣預安裝程式和後安裝
程式都會安裝到這個目錄下
--rcfile 設定rpmrc檔案為
--dbpath 設定RPM 資料庫存所在的路徑為
- 更新選項
指令格式
rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
參數
file1.rpm ... fileN.rpm 軟體包的名字
詳細選項
-h (or --hash) 安裝時輸出hash記号 (``#'')
--oldpackage 允許"更新"到一個老版本
--test 隻進行更新測試
--excludedocs 不安裝軟體包中的文檔檔案
-F, --freshen=+ 如果軟體包已經安裝,更新軟體包
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟體包
--replacefiles 替換屬于其它軟體包的檔案
--force 忽略軟體包及檔案的沖突
--percent 以百分比的形式輸出安裝的進度。
--noscripts 不運作預安裝和後安裝腳本
--prefix 将軟體包安裝到由 指定的路徑下
--ignorearch 不校驗軟體包的結構
--ignoreos 不檢查軟體包運作的作業系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口号為
通用選項
-v 顯示附加資訊
-vv 顯示調試資訊
--root 讓RPM将指定的路徑做為"根目錄",這樣預安裝程式和後安裝程式都會安裝到這個目錄下
--rcfile 設定rpmrc檔案為
--dbpath 設定RPM 資料庫存所在的路徑為
- 查詢選項
指令格式:
rpm -q ( or --query) options
參數:
pkg1 ... pkgN :查詢已安裝的軟體包
詳細選項
-p (or ``-'') 查詢軟體包的檔案
-f 查詢屬于哪個軟體包
-a 查詢所有安裝的軟體包
--whatprovides 查詢提供了 功能的軟體包
-g 查詢屬于 組的軟體包
--whatrequires 查詢所有需要 功能的軟體包
資訊選項
顯示軟體包的全部辨別
-i 顯示軟體包的概要資訊
-l 顯示軟體包中的檔案清單
-c 顯示配置檔案清單
-d 顯示文檔檔案清單
-s 顯示軟體包中檔案清單并顯示每個檔案的狀态
--scripts 顯示安裝、解除安裝、校驗腳本
--queryformat (or --qf) 以使用者指定的方式顯示查詢資訊
--dump 顯示每個檔案的所有已校驗資訊
--provides 顯示軟體包提供的功能
--requires (or -R) 顯示軟體包所需的功能
通用選項
-v 顯示附加資訊
-vv 顯示調試資訊
--root 讓RPM将指定的路徑做為"根目錄",這樣預安裝程式和後安裝程式都會安裝到這個目錄下
--rcfile 設定rpmrc檔案為
--dbpath 設定RPM 資料庫存所在的路徑為
- 校驗已安裝的軟體包
指令格式:
rpm -V ( or --verify, or -y) options
參數
pkg1 ... pkgN 将要校驗的軟體包名
軟體包選項
-p Verify against package file
-f 校驗所屬的軟體包
-a Verify 校驗所有的軟體包
-g 校驗所有屬于組 的軟體包
詳細選項
--noscripts 不運作校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗檔案屬性
通用選項
-v 顯示附加資訊
-vv 顯示調試資訊
--root 讓RPM将指定的路徑做為"根目錄",這樣預安裝程式和後安裝程式都會安裝到這個目錄下
--rcfile 設定rpmrc檔案為
--dbpath 設定RPM 資料庫存所在的路徑為
- 校驗軟體包中的檔案
文法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 軟體包的檔案名
Checksig--詳細選項
--nopgp 不校驗GPG簽名
通用選項
-v 顯示附加資訊
-vv 顯示調試資訊
--rcfile 設定rpmrc檔案為
- 其它rpm選項
--rebuilddb 重建RPM資料庫
--initdb 建立一個新的RPM資料庫
--quiet 盡可能的減少輸出
--help 顯示幫助檔案
--version 顯示RPM的目前版本
[root@localhost ~]# rpm -ivh ipchains-1.3.6-1.i386.rpm #安裝包,并顯示詳細進度
[root@localhost ~]# rpm -i ftp://ftp.xxx.xxx #線上安裝
[root@localhost ~]# rpm -Va #校驗所有的rpm包,查找丢失的檔案
[root@localhost ~]# rpm -qf /usr/bin/who #查找一個檔案屬于哪個rpm包
[root@localhost ~]# rpm -qpi mon-0.37j-1.i386.rpm #列出一個rpm包的描述資訊
[root@localhost ~]# rpm -qpl mon-0.37j-1.i386.rpm #列出一個rpm包的檔案資訊
[root@localhost ~]# rpm -Uvh ipchains-1.3.6-1.i386.rpm #更新包
[root@localhost ~]# rpm -q httpd #檢視httpd的安裝包
[root@localhost ~]# rpm -e httpd #移除安裝包
[root@localhost ~]# rpm -qi httpd #得到httpd安裝包的資訊
Name : httpd Relocations: (not relocatable)
Version : 2.2.3 Vendor: CentOS
Release : 45.el5.centos.1 Build Date: 2011年05月04日 星期三 18時54分56秒
Install Date: 2011年06月29日 星期三 08時05分34秒 Build Host: builder10.centos.org
Group : System Environment/Daemons Source RPM: httpd-2.2.3-45.el5.centos.1.src.rpm
Size : 3281960 License: Apache Software License
Signature : DSA/SHA1, 2011年05月04日 星期三 20時31分28秒, Key ID a8a447dce8562897
URL : http://httpd.apache.org/
Summary : Apache HTTP 伺服器
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
[root@localhost ~]# rpm -ql httpd #列出httpd中有哪些檔案
[root@localhost ~]# rpm -qa #列出所有已安裝的包
3. createrepo
createrepo用以建立yum源(軟體倉庫),即為存放于本地特定位置的衆多rpm包建立索引,描述各包所需依賴資訊,并形成中繼資料
- 基本用法
基本文法:createrepo [option] <directory>
常用參數詳解
-u --baseurl <url>
指定Base URL的位址
-o --outputdir <url>
指定中繼資料的輸出位置
-x --excludes <packages>
指定在形成中繼資料時需要排除的包
-i --pkglist <filename>
指定一個檔案,該檔案内的包資訊将被包含在即将生成的中繼資料中,格式為每個包資訊獨占一行,不含通配符、正則,以及範圍表達式。
-n --includepkg
通過指令行指定要納入本地庫中的包資訊,需要提供URL或本地路徑。
-q --quiet
安靜模式執行操作,不輸出任何資訊。
-g --groupfile <groupfile>
指定本地軟體倉庫的組劃分,範例如下:
createrepo -g comps.xml /path/to/rpms
注意:組檔案需要和rpm包放置于同一路徑下。
-v --verbose
輸出詳細資訊。
-c --cachedir <path>
指定一個目錄,用作存放軟體倉庫中軟體包的校驗和資訊。當createrepo在未發生明顯改變的相同倉庫檔案上持續多次運作時,指定cachedir會明顯提高其性能。
--update
如果中繼資料已經存在,且軟體倉庫中隻有部分軟體發生了改變或增減,則可用update參數直接對原有中繼資料進行更新,效率比重新分析rpm包依賴并生成新的中繼資料要高很多。
-p --pretty
以整潔的格式輸出xml檔案。
-d --database
該選項指定使用SQLite來存儲生成的中繼資料,預設項。
$ mkdir -p /yum/centos/6/ #建立本地源目錄
$ createrepo -p -d -o /yum/centos/6/ix86_64 /yum/centos/6/ix86_64 #初始化源目錄,産生repodata
4. rpm和srpm
RPM: RedHat Package Manager
優點:
- 由于已經編譯完成并且打包完畢,是以軟體傳輸與安裝上很友善
- 由于軟體資訊都已經記錄在Linux主機的資料庫上,很友善查詢,更新,解除安裝。
缺點:
- 軟體安裝環境必須跟打包時的環境需求一緻或者相當。
- 需要滿足軟體的依賴屬性需求
- 解除安裝的時候需要小心,最底層不能先删除,否則會造成系統問題。也就是最後安裝先解除安裝。
SRPM: Source RPM
使用必須将該軟體以RPM管理的方式先編譯,此時SRPM會編譯成RPM檔案。
檔案格式 | 檔案名格式 | 直接安裝與否 | 内含程式類型 | 可否修改參數并編譯 |
---|---|---|---|---|
RPM | xxx.rpm | 可 | 已編譯 | 不可 |
SRPM | xxx.src.rpm | 未編譯的源代碼 |
rp-xxxx - 3.1 - 5 .i386 .rpm
軟體名稱 軟體的版本資訊 釋出次數 硬體平台 擴充名