歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 安裝及管理Linux應用程序

安裝及管理Linux應用程序

日期:2017/2/28 14:02:23   编辑:Linux教程

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.sh、setup等,只需運行安裝文件就可以根據向導完成安裝。

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類此的服務軟件。

Copyright © Linux教程網 All Rights Reserved