1. 程式人生 > >linux下的軟件包管理與源代碼方式安裝軟件

linux下的軟件包管理與源代碼方式安裝軟件

軟件包 軟件包管理工具 dpkg與rpm 高級軟件包管理工具APT 源代碼編譯安裝軟件

1、什麽是軟件包?
軟件包是指將應用程序、配置文件和管理數據打包的產物。
2、Linux下常用的基本軟件包管理工具有兩種:dpkg工具和RPM工具。對應於兩種不同格式的軟件包,即.deb格式與.rpm格式。dpkg軟件包工具主要用於Debian和Ubuntu這兩個發行版本。RPM工具用於絕大多數的Linux發行版本,如Red Hat、openSUSE等。
3、使用dpkg和rpm工具安裝軟件需要考慮軟件的依賴性問題,只有應用程序所依賴的所有庫和支持都已經正確安裝好了,軟件才能被正確安裝。
4、dpkg工具的常用選項:
--install(-i):安裝特定的軟件包。該選項會在安裝軟件包之前把系統上原有的舊版本刪除。
--force:強制安裝軟件包。系統將忽略一切依賴和兼容性問題直到軟件包”安裝完畢“。請謹慎使用。
-l:查看已經安裝的軟件包。假設需要查找當前系統中的OpenSSH版本信息時,可以使用如下命令:dpkg -l | grep openssh。
--search(-S):查看所安裝的軟件包究竟向系統中復制了哪些文件。以OpenSSH為例:dpkg -S openssh。
--remove(-r):卸載已經安裝的軟件包。卸載和安裝軟件均需提供軟件包的名字。例如要卸載安裝在系統中的Opera瀏覽器,首先使用dpkg -l | grep opera 查看opera瀏覽器的軟件包信息,然後使用sudo dpkg --remove opera 刪除opera瀏覽器。
註意:所卸載的軟件包可能含有其他軟件所依賴的庫和數據文件,在這種情況下,卸載將可能導致不可預計的後果。因此,在卸載前請確認已經解決了所有的依賴關系或者使用更高級的軟件包工具。
5、RPM工具的常用選項:
-ivh:安裝軟件包。註意這是三個選項的組合使用。-i用於安裝一個軟件包。-v用於顯示rpm當前正在執行的工作。-h通過打印一系列的“#”提醒用戶當前的安裝進度。
--force:忽略一切依賴和兼容性問題,強行安裝軟件包。
--nodeps:使rpm忽略軟件包相關性沖突繼續安裝軟件包。當正在安裝的軟件包在其他一些軟件包的支持下才能正常工作時,就會發生軟件包相關性沖突。
-U:用於升級一個軟件包。通常加上-v、-h一起使用(即-Uvh)。升級操作實際是卸載和安裝的組合。在升級軟件時,rpm首先卸載老版本的軟件包,然後再安裝新版本的軟件包。rpm的升級操作會保留軟件的配置文件。
-q:查看已安裝的軟件包。
-e:卸載軟件包。這個命令接收軟件包的名字作為參數,不帶有版本信息。
--test:要求rpm模擬刪除軟件包的全過程,但並不真的執行刪除操作。
6、高級軟件包工具:APT(Advanced Package Tool)。
(1)APT可以自動檢測軟件依賴問題,下載和安裝所有文件。不需像使用dpkg與rpm工具那樣一個個的安裝所依賴的組件。
(2)系統第一次啟動時,需要運行apt-get update更新緩存中的軟件包信息,此後,就可以使用apt-get install命令安裝軟件包了。推薦每次進行軟件安裝和更新時都運行apt-get update,以保證獲得的軟件包是最新的。
(3)常用選項:
apt-get:用於執行和軟件包安裝有關的所有操作。
apt-cache:用於查找軟件包的相關信息。
apt-get install:下載並安裝軟件包。
apt-get upgrade:下載並安裝在本系統上已有的軟件包的最新版本。
apt-get remove:卸載特定的軟件包。
apt-get source:下載特定的軟件源代碼。
apt-get clean:刪除所有已下載的包文件。
apt-get -h:列出apt-get的完整用法。
apt-cache search:搜索軟件包列表中特定的軟件包。
apt-cache depends:列出特定軟件包的依賴關系。
7、從源代碼編譯安裝軟件:
(1)從源代碼編譯安裝軟件沒有絕對的流程,不同的軟件有不同的編譯方式,但基本思想是一致的。
(2)從源代碼編譯安裝軟件通常能讓編譯者獲得更多的控制,例如軟件安裝的位置,開啟和禁用軟件的某些功能等。
(3)大致步驟如下:
a:從網上下載到所需安裝軟件的源代碼。在Linux下,“.tar.bz2”和“.tar.gz”這樣的壓縮格式是發布源代碼的標準格式。
b:利用解壓縮工具解壓源代碼。
c:根據軟件提供的安裝文檔README或者INSTALL,使用configure腳本對軟件進行個性化配置。Linux上所有的軟件都使用configure這個腳本來配置以源代碼形式發布的軟件。configure依據用戶提供相關參數生成對應的makefile文件,然後makefile指導make命令正確地編譯軟件。
d:使用make工具進行編譯。make是一種高級編譯工具,它可以依據makefile文件中的規則調用合適的編譯器編譯源代碼。因為大型軟件總是由大量模塊組合在一起,其中源代碼文件的聯系錯綜復雜,不可能逐一動手編譯這些文件。使用make工具可以按照預先設定的步驟自動執行這一切。
e:運行make install根據c步驟配置安裝軟件。
(4)如果出現問題,不要慌亂,這是正常的,應該首先閱讀安裝文檔,然後再互聯網上查找相關信息,一步步地解決所遇到的問題。

linux下的軟件包管理與源代碼方式安裝軟件