水可載舟,亦可覆舟!node
在Linux操做系統中,經常使用的軟件有RPM包軟件包,src.rpm格式的軟件包(源碼),以源代碼發佈的軟件包以及.bin格式軟件包和綠色軟件。若是採用.rpm格式的軟件,同一軟件針對不一樣的Linux發行版有不一樣的RPM包,相互依賴關係會常常出現不可預料的錯誤,但安裝過程很簡單,源碼軟件包不依賴具體的發行版本和操做系統內核,但安裝此軟件的主機上應有對應的開發工具(GCC)和內核代碼程序支持,並且安裝過程要稍微複雜一些,.bin格式文件能夠直接運行安裝,綠色軟件包則能夠直接使用。架構
.rpmide
Linux發行版本都使用某中形式的軟件包管理安裝,更新和卸載軟件,這種方法與直接從源代碼安裝相比,具備如下優勢。工具
A 軟件包易於安裝和卸載開發工具
B 易於更新已安裝的軟件包。測試
C 易於保護配置文件ui
D 易於跟蹤已安裝文件編碼
rpm 包根據不一樣的操做系統內核和處理器架構編譯過的,所以,不一樣的操做系統內核版本和處理器架構都須要本身獨立的RPM包spa
rpm 全稱Red Hat Package Manager(Red Hat包管理器)。其本質上就是一個包,包含能夠當即在特定處理器架構和操做系統內核上安裝和運行的Linux軟件,大多數Linux RPM軟件包的命名有必定的規律,其命名規則以下所示:操作系統
名稱-版本-修正版-類型
Software-1.2.1-i386.rpm
.src.rpm
.deb
.tar.gz .tar.Z .tar.bz2 .tarz
.bin
安裝系統軟件包(講解圖形界面的安裝)
redhat-config-packages
RPM軟件包管理
安裝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 <path> 將軟件包安裝到由 <path> 指定的路徑下 #制定安裝目錄,有些腳本不準制定位置
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操做系統
--nodeps 不檢查依賴性關係
--ftpproxy <host> 用 <host> 做爲 FTP代理
--ftpport <port> 指定FTP的端口號爲 <port
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root <path> 讓RPM將<path>指定的路徑作爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile <rcfile> 設置rpmrc文件爲 <rcfile>
--dbpath <path> 設置RPM 資料庫存所在的路徑爲 <path>
2、刪除
命令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
參數
pkg1 ... pkgN :要刪除的軟件包
詳細選項
--test 只執行刪除的測試
--noscripts 不運行預安裝和後安裝腳本程序
--nodeps 不檢查依賴性
通用選項
-vv 顯示調試信息
--root <path> 讓RPM將<path>指定的路徑作爲"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile <rcfile> 設置rpmrc文件爲 <rcfile>
--dbpath <path> 設置RPM 資料庫存所在的路徑爲 <path>
3、升級
命令格式
rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm
4、查詢
命令格式:
rpm -q ( or --query) options
參數:
pkg1 ... pkgN :查詢已安裝的軟件包
詳細選項
-p <file>(or ``-'') 查詢軟件包的文件
-f <file> 查詢<file>屬於哪一個軟件包
-a 查詢全部安裝的軟件包
--whatprovides <x> 查詢提供了 <x>功能的軟件包
-g <group> 查詢屬於<group> 組的軟件包
--whatrequires <x> 查詢全部須要 <x> 功能的軟件包
信息選項
<null> 顯示軟件包的所有標識
-i 顯示軟件包的概要信息
-l 顯示軟件包中的文件列表
-c 顯示配置文件列表
-d 顯示文檔文件列表
-s 顯示軟件包中文件列表並顯示每一個文件的狀態
--scripts 顯示安裝、卸載、校驗腳本
--queryformat (or --qf) 以用戶指定的方式顯示查詢信息
--dump 顯示每一個文件的全部已校驗信息
--provides 顯示軟件包提供的功能
--requires (or -R) 顯示軟件包所需的功能
5、校驗已安裝的軟件包
命令格式:
rpm -V ( or --verify, or -y) options
參數
pkg1 ... pkgN 將要校驗的軟件包名
軟件包選項
-p <file> Verify against package file <file>
-f <file> 校驗<file>所屬的軟件包
-a Verify 校驗全部的軟件包
-g <group> 校驗全部屬於組 <group> 的軟件包
詳細選項
--noscripts 不運行校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗文件屬性
6、校驗軟件包中的文件
語法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 軟件包的文件名
Checksig--詳細選項
--nopgp 不校驗PGP簽名
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--rcfile <rcfile> 設置rpmrc文件爲 <rcfile>
7、其它RPM選項
--rebuilddb 重建RPM資料庫
--initdb 建立一個新的RPM資料庫
--quiet 儘量的減小輸出
--help 顯示幫助文件
--version 顯示RPM的當前版本
rpm –ivh mysoftware-1.2-i386.rpm
//安裝 rpm軟件包 -i install 安裝軟件 -v verify 檢測套件是否正確安裝
//-h hash 安裝時在屏幕依次打印標識(即#符號)顯示安裝進步
rpm –qpi mysoftware-1.2-i386.rpm
//查詢某一個rpm文件的信息命令
rpm –Uvh mysoftware-1.2-i386.rpm
//須要更新的軟件
rpm –e mysoftware
//卸載軟件名
單獨刪除一個rpm時系統可能會提示錯誤,尤爲是系統上有相關的程序依賴於它時。
這時能夠用—force選項從新安裝。
rpm –ivh –force mysoftware-1.2-i386.rpm
查詢軟件包安裝狀況
rpm –qa //查詢當前系統全部安裝的rpm包
rpm –qa | grep softwarename //查詢當前系統是否安裝了某軟件包
rpm –qa | grep telnet //查詢當前系統是否安裝了telnet
rpm –qal mysoftware-1.2-i386.rpm //查看rpm包在系統中安裝的文件的詳細信息,可使用-l參數
目前rpm有兩種模式,一種是已通過編碼的(i386.rpm).這種軟件包只能用於對應平臺(如i386.rpm軟件包起處理器只能是i386的);
一種是末通過編碼的(src.rpm),這種軟件包沒有固定的應用平臺限制,並且操做方便,用戶能夠根據內核和Linux開發工具從新編譯,用戶必須在當前系統中安裝Linux內核和開發工具).對於.src.rpm 安裝過程以下所示:]
rpm –ivh Filename.src.rpm //解壓軟件包系統自動解壓到/usr/src/redhat/SPECS文件夾
cd /usr/src/redhat/SPECS
rpmbuild –bb filename. Spec //編譯軟件包,解壓到/usr/src/redhat/RPMS/i386 自動
cd /usr/src/redhat/RPMS/i386
rpm –ivh /usr/src/regflag/RPMS/i386/filename.rpm
使用源代碼安裝:
tar文件 tar xf xxx.tar
gz文件 tar zxvf xxx.tar.gz
bz2文件 tar xjvf xxx.tar.bz2
源碼編譯安裝
./configure //配置
make // 調用make ,編譯程序
make install //安裝源代碼
make clean //刪除安裝時產生的臨時文件
make uninstall //卸載軟件
文件的安裝xxx.bin
chmod +x xxx.bin && ./bin