安裝及管理Linux應用程式

kuqlan發表於2015-03-11

Linux應用程式的組成
1.
普通的可執行程式檔案,一般儲存在/usr/bin目錄中,普通使用者即可執行。
2.
伺服器程式、管理程式檔案,一般儲存在/usr/sbin目錄中,需要管理員才能執行。
3.
配置檔案,一般儲存在/etc目錄中,配置檔案較多時會建立相應的子目錄。
4.
日誌檔案,一般儲存在/var/log目錄中。
5.
關於應用程式的參考文件等資料,一般儲存在/usr/share/doc/目錄中。
6.
執行檔案及配置檔案的man手冊頁,一般儲存在/usr/share/man目錄中。

軟體包的封裝型別
1.RPM
軟體包:這種軟體包檔案的副檔名為".rpm",只能在使用RPM機制的Linux作業系統中安裝。RPM軟體包一般針對特定版本的系統定製,因此依賴性較強。安裝RPM包需要使用rpm命令。

2.DEB軟體包:這種軟體包檔案的副檔名為".deb",只能在使用DPKG機制的Linux作業系統中安裝。安裝DEB軟體包需要使用Linux系統中的dkpg命令。

3.原始碼包:這種軟體包是程式設計師開發完成的原始程式碼,一般被製作成".tar.gz"".tar.bz2"等格式的壓縮包檔案,因多數使用tar命令打包而成,所以經常被稱為"TarBall"。安裝原始碼軟體包需要使用相應的編譯工具,由於大部分Linux系統中都安裝有基本的編譯環境,因此使用原始碼軟體包要更加靈活。

4.提供安裝程式的軟體包:這種軟體包的副檔名不一,但仍以TarBall格式的居多。軟體包中會提供用於安裝的可執行程式或指令碼檔案,如install.shsetup等,只需執行安裝檔案就可以根據嚮導完成安裝。

5.綠色免安裝的軟體包:這種軟體包直接包含有編譯好的執行程式檔案,因此不需要特別安裝。

RHEL6
系統的光碟中攜帶大部分軟體包都組織在Server目錄中,透過該目錄中的檔案可以熟悉RPM軟體包的一般命名格式。掛載光碟的命令如下(假設sss.rpm為應用軟體包):
#mount /dev/cdrom  /media/
#ls -ls /media/Server/sss.rpm

使用RPM包管理工具及命令

RPM軟體包管理機制最早由Red Hat公司提出,後來隨著版本的升級逐漸融入了更多的優秀特性,成為眾多Linux發行版中工人的軟體包管理標準。

使用RPM機制封裝的軟體包檔案擁有約定俗成的命名格式,一般使用“軟體名-軟體版本-釋出次數.硬體平臺型別.rpm”的檔名形式。

使用rpm命令能夠實現幾乎所有對RPM軟體包的管理功能,執行"man rpm"命令可以檢視關於rpm命令的幫助資訊。

 

1.查詢RPM軟體包資訊

rpm -qa

 

rpm  -qa |grep httpd

rpm  -qa |grep gcc

 

常用引數說明

-qa:顯示當前系統中以RPM方式安裝的所有軟體列表

-qf:檢視指定檔案或目錄是由哪個軟體包所安裝的。

-qd:顯示指定軟體包在當前系統中安裝的文件檔案(--docfiles)列表。

 

2.安裝、升級、解除安裝RPM軟體包

-i:在當前系統中安裝(Install)一個新的RPM軟體包。

-e:解除安裝指定名稱的軟體包。

-U:檢查並升級系統中某個軟體包,若該軟體包並未安裝,則等同於"-i"選項。

-F:檢查並更新系統中某個軟體包,若該軟體包並未安裝,則放棄安裝。

-h:在安裝或升級軟體包過程中以"#"號顯示安裝過程。

-v:顯示軟體安裝過程中的詳細資訊。

更多選項參考man資訊。

 

在安裝包時,千萬要注意U選項,這會升級Linux核心,有可能致linux啟動不起來。


安裝rpm命令:

rpm  -ivh  sss.rpm

rpm  -ivh  --force  sss.rpm       --強制安裝軟體包,但是70%的可能是裝好後不好使用;

rpm  -ivh  --nodeps  sss.rpm      安裝時忽略軟體依賴性;

 

刪除RPM軟體包:

rpm -e  sss                       ---刪除時不要帶副檔名

rpm  -ivh  sss.rpm

rpm  -ivh  --force  sss.rpm       強制安裝軟體包,但是70%的可能是裝好後不好使用;

 

 

怎麼解決軟體包安裝迴圈依賴?

將所有的軟體包放到一個目錄下後,進入目錄後執行如下:

rpm -ivh  *.rpm

rpm  -ivh  sss.rpm

 

rpm  -ivh  --force  sss.rpm       強制安裝軟體包,但是70%的可能是裝好後不好使用;

rpm  -ivh  --nodeps  sss.rpm      安裝時忽略軟體依賴性;

3.維護RPM資料庫
RPM資料庫損壞時,使用rpm命令的"--rebuilddb""--initdb"功能進行重建。

從原始碼編譯安裝程式
現代的Linux發行版本通常使用包管理機制對軟體進行打包安裝,這樣就省去了軟體的編譯安裝過程,大大簡化了Linux系統的安裝和使用難度。但是在有些情況下,仍然需要使用原始碼編譯的方式為系統安裝新的應用程式,例如:
1.安裝較新版本的應用程式時
2.當前安裝的程式無法滿足應用需求:對於RPM格式封裝的應用程式,一般只包含了該軟體所能實現的一小部分功能,而難以由使用者自行修改、定製。透過對程式的原始碼進行重新配置並編譯安裝後,可以定製更靈活、更豐富的功能。
3.為應用程式新增新功能時:當需要利用現有的應用程式原始碼進行適當的修改,以便增強新的功能時,也必須釋放出該軟體的原始碼,進行適當修改後重新編譯安裝。
編譯原始碼需要相應的開發環境,對於自由軟體來說,gcc編譯器是最佳選擇。確認系統中編譯環境:

原始碼編譯安裝的基本過程

1.解包:原始碼吧一般為TallBall形式,使用tar命令進行解壓釋放。在Linux系統中,可以將各種軟體的原始碼檔案儲存到/usr/src/目錄中,便於集中管理,如:

#tar xzf  sss.tar.gz  -C  /usr/src

 

2、預編譯,makefile

配置工作通常由原始碼目錄中的"configure"指令碼檔案來完成,具體引數可以在原始碼目錄中執行"./configure --help"進行檢視。不同的程式其配置引數會存在區別,但是"--prefix"形式的引數卻是大多數開源軟體通用的,該配置引數用於指定軟體包安裝的目標資料夾,未指定引數時,"configure"配置指令碼將採用預設值。若將應用程式的相關檔案安裝到同一個目錄中,需要解除安裝時就非常方便,一般只要將程式資料夾刪除即可

MySql為例, tar.gz/gz    tar.bz2

./configure --help

            --prefix=/usr/local/soft

 

這步驟可能出現一些出現一些缺少庫檔案。當出現錯誤時,一定要把預編譯失敗生成的makefile刪除掉。

怎麼刪除,就用rm命令刪除

 

3.Make編譯

編譯:編譯的過程主要是根據Makefile檔案中的配置資訊,將原始碼檔案編譯、連線成二進位制的模組檔案、執行程式等。第二步的配置完成後執行"make"命令可以完成編譯工作,一般比需配置步驟更長的時間,   make  10  並行編譯,加開編譯速度,在這一步出現錯誤,要進行make clean  ,將中間狀態的二進位制檔案都要刪除掉。

 

4.安裝:編譯完成後,就可以執行"make install"命令將軟體的執行程式、配置檔案、幫助文件等相關檔案複製到Linux系統中了,即應用程式的最後安裝過程。

上述過程中,有時候為了簡單起見,也可以將編譯、安裝的步驟寫成一行命令執行,中間使用"&&"符合分隔即可(make && make install

.make install

第三部很少有問題

 

如果原始碼安裝除錯的合理,效能將會提升10倍甚至幾十倍的提升。尤其是資料庫和apache類此的服務軟體。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1455471/,如需轉載,請註明出處,否則將追究法律責任。

相關文章