我們都知道windows軟件的安裝非常簡單,只要運行安裝程序就可以了,可是Linux系統的軟件可沒那麼容易安裝,下面小編就給大家介紹下Linux系統中軟件的安裝方法。
先來看看Linux軟件擴展名。軟件後綴為.rpm最初是Red Hat Linux提供的一種包封裝格式,現在許多Linux發行版本都使用;後綴為.deb是Debain Linux提供的一種包封裝格式;後綴為.tar.gz、tar.Z、tar.bz2或.tgz是使用Unix系統打包工具tar打包的;後綴為.bin的一般是一些商業軟件。通過擴展名可以了解軟件格式,進而了解軟件安裝。
一 源碼安裝方式
由於linux操作系統開放源代碼,因而在其上安裝的軟件大部分也都是開源軟件,例如apache、tomcat、php等軟件。開源軟件基本都提供源碼下載,源碼安裝的方式;源碼安裝的好處是用戶可以自己定制軟件功能,安裝需要的模塊,不需要的功能可以不用安裝,此外,用戶還可以自己選擇安裝路徑,方便管理,卸載軟件也很方便,只需刪除對應的安裝目錄即可。沒有windows所謂的注冊表之說。
源碼安裝軟件一般有以下幾個步驟組成:下載解壓源碼、分析安裝平台環境(ifconfigure)、編譯安裝軟件(make,make install)。下面我們分別介紹。
1.1 下載解壓源碼
linux下軟件的源碼一般都是C或者C++語言編寫的,並且都會在軟件的官方網站上提供源碼包下載,例如apache開源項目的官方網站為http://www.apache.org,此外在網上的很多開源社區一般也提供一些常用軟件的源碼下載,源碼都打包成壓縮文件,常見的源碼打包壓縮格式有“.tar.gz”、“.tar.baz2”等。我們可以從網站上首先下載源碼文件,然後在傳到所在的linux系統下,如果你的linux系統處於聯網狀態下,也可以直接在系統內通過wget之類的下載命令將源碼包直接下載到linux系統下。
下載完成,把相應的軟件解包即可,針對下載軟件包的不同,使用不同的方法進行解壓,解壓完畢後進入解壓生成的目錄中,在這個目錄下,一般都存在一個REDAME文件,這個文本文件非常重要,它詳細的介紹了這個軟件所能完成的功能、授權許可、安裝需求、安裝注意事項、安裝方式等等,由於linux各個版本的差異,以及安裝環境的不同,軟件的安裝方式也不盡相同,所以在安裝軟件前,一定要事先閱讀這個README文件,確保安裝的正確性。
1.2 分析安裝平台環境
在軟件包解壓完畢之後,我們進入源碼目錄,一般都會存在configure和README這麼兩個文件,README就是上面我們講到的,是對軟件的介紹和安裝說明;linux下軟件的安裝受到操作系統安裝環境的影響,比如某些軟件在安裝或者運行過程中需要調用操作系統本身的庫文件,或者需要運行系統的某個工具等等,但是系統中不存在這個庫文件或者這個工具沒有安裝,那麼安裝或者運行軟件就會失敗。
為了避免這個問題的出現,在安裝軟件的時候就需要分析操作系統環境,檢測當前系統是否擁有安裝軟件所需的所有文件和工具,如果系統缺少某個文件,就給出提示,直到滿足軟件的所有需求為止。這個就是configure文件的功能,configure文件一般是個可執行文件,可以在當前目錄下直接輸入“。/configure”進行軟件安裝的環境測試,如果提示缺少某些安裝包,就需要進行安裝,直到測試通過。通常的,源碼安裝都需要GCC或者CC編譯器,這些編譯器一般在安裝系統時定制安裝包中的開發工具選項下,其實這也是我們在第二章安裝linux系統中要求選擇開發工具包的原因所在。
此外,在執行configure分析軟件需求時,還可以在“。/configure”後面加上軟件的安裝路徑以及安裝所需的模塊等等一些選項,來定制用戶需要的軟件功能。
1.3 編譯安裝軟件
在驗證軟件安裝環境後,正式進入軟件的編譯步驟,在進行編譯前,首先了解下關於編譯的一些基礎知識。
在linux系統下,make是我們經常用到的編譯命令,無論是安裝軟件還是項目開發,都會經常用到編譯安裝命令,也就是make和make install,對於一個包含很多源文件的應用程序,使用make和makefile工具可以簡單快速的解決各個源文件之間復雜的依賴關系,同時,make工具還可以自動完成所有源碼文件的編譯工作,並且可以只對上次編譯後修改過的文件進行增量編譯,因此,熟練掌握了make和makefile工具之後,源碼安裝軟件就變的像windows下安裝軟件一樣簡單。
Makefile文件
make工具最主要的功能就是通過makefile文件來實現的,makefile文件是按照某種語法來進行編寫的,文件中定義了各個源文件之間的依賴關系,並說明了如何編譯源文件並生成可執行文件,它通過描述各個源程序之間的關系讓make工具自動完成編譯工作。
在linux系統下,習慣用Makefile替代makefile文件,我們在執行configure通過後,就會在當前目錄下生成這個文件,一般情況下在命令行輸入make時,make命令會默認去尋找當前目錄下的Makefile文件,如果我們用其它文件作為makefile,就要在make命令選項後指定makefile文件,例如我們設定編譯規則文件為make_file,就需要使用以下命令指定:
[root@WEBServer ~]#make -f make_file
下面我們通過舉例了解下Makefile的編寫原則和內容。
例如有一個test程序,有三個源文件file1.c、file2.c、file3.c以及庫文件LS編譯生成,這三個源文件還分別包含了自己的頭文件1.h、2.h、3.h。通常,C編譯器將會輸出三個目標文件file1.o、file2.o、file3.o。假定file1.c和file3.c都要聲明用到一個apcs的文件,但是file2.c不用,也就是在file1.c和file3.c文件中都有類似“#include “apcs””的聲明。
下面這段代碼就是對test程序的描述:
1:#It is a example for describing makefile2:test: file1.o file2.o file3.o3:cc file1.o file2.o file3.o -LS -o test
4:file1.o: file1.c 1.h apcs
5:gcc -c file1.c
6:file3.o: file3.c 3.h apcs
7:gcc -c file3.c
8:file2.o: file2.c c.h
9:gcc -c file2.c
這個描述文檔其實就是一個makefile文件,第一行為注釋行,第二行指定test程序有file1.o、file2.o、file3.o鏈接生成,第三行描述了如何從test所依賴的文件建立可執行文件,接下來的第四、六、八行定義了三個目標文件和它們依賴的“.c”、“.h”和“apcs”文件。剩下的第五、七、九行定義了如何從目標依賴的文件生成可執行文件。
在了解Makefile文件結構後,我們就可以控制編譯的選項,定制自己所需的軟件功能。
接下來,我們只需在命令行輸入make命令,即可進入編譯階段,根據軟件源程序的大小和系統的硬件配置,編譯時間不定,編譯完畢,會在當前目錄以及子目錄下生成相應的可執行文件,接下來就進入最後的安裝軟件階段,在命令行輸入make install命令,開始安裝軟件,安裝進程會首先創建安裝目錄,如果我們沒有指定安裝的目錄,安裝程序默認會安裝在系統的/usr/local目錄下創建安裝目錄,然後將相應的文件和可執行程序從源碼目錄拷貝到安裝目錄下,這樣安裝就完畢了。
1.4 源碼安裝Apache Http server
下面我們通過源碼安裝apache,實例講解linux下源碼的安裝方式。
1. 下載解壓apache源碼
[root@WEBServer~]#mkdir /apache #在根目錄下創建一個apache目錄[root@WEBServer~]#cd /apache #切換到apache目錄[root@WEBServer apache]#wget \ #下載apache源碼》http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.bz2[root@WEBServer apache]#tar -jxvf httpd-2.2.9.tar.bz2 #解壓apache源碼[root@WEBServer apache]#ls #顯示解壓結果httpd-2.2.9 httpd-2.2.9.tar.bz2
2. 測試安裝環境
[root@WEBServer apache]#cd httpd-2.2.9 #切換到httpd-2.2.9目錄下[root@WEBServer httpd-2.2.9]#./configure --prefix=/opt/apache2.2.9 \》--enable-so \》--enable-mods-shared=most \
》--enable-proxy-balancer=shared \
》--enable-proxy-http=shared \
》--enable-proxy-ajp \
》--enable-rewrite
注意:上面我們指定apache的安裝目錄為/opt/apache2.2.9,同時指定需要編譯的apache模塊。
下面分別介紹這些模塊代表的含義,更詳細的請參看apache文檔。
l --enable-so選項:表示讓 Apache 可以支持DSO模式,這裡采用的是 Apache2.0以後的語法。如果你的Apache 是1.3版本,應改為“--enable-module=so”。
l --enable-mods-shared=most選項:表示動態編譯大部分常用的模塊,當然,也可以有選擇的加載一些模塊,most意思是只包含通常用的模塊,並且以動態加載模式加載。如果用的是 Apache1.3, 改為“--enable-shared=max”即可。
l --enable-proxy-balancer=shared選項:表示讓apache支持負載均衡功能,即動態的編譯apache的負載均衡模塊。
l --enable-proxy-http=shared選項:表示動態編譯apache的http代理模塊。
l --enable-proxy-ajp選項:表示動態編譯apache的proxy-ajp模塊。
l --enable-rewrite選項:讓apache支持地址重寫功能,即動態編譯apache的rewrite模塊。
3.編譯安裝軟件
[root@WEBServer httpd-2.2.9]#make
[root@WEBServer httpd-2.2.9]#make install安裝完畢,apache被安裝到/opt/apache2.2.9下,接下來我們就可以使用apache軟件了。
二 RPM包方式安裝
2.1 RPM包管理工具介紹
RPM是Red Hat Package Manager的縮寫,本意就是Redhat軟件包管理,是最先由Redhat公司開發出來的linux下軟件包管理工具,由於這種軟件管理方式非常方便,逐漸被其它linux發行商所借用,現在已經成為linux平台下通用的軟件包管理方式,例如Fedora 、Redhat、suse、Mandrake等主流linux發行版本都默認采用了這種軟件包管理方式。
RPM包管理類似於windows下的“添加/刪除程序”但是功能卻比“添加/刪除程序”強大很多。在Linux的系統安裝光盤中,有很多以“.rpm”結尾的軟件包,這些包文件就是我們所說的RPM文件。每個RPM文件中包含了已經編譯好的二進制可執行文件,其實就是將軟件源碼文件進行編譯安裝,然後進行封裝,就成了RPM文件,類似與windows安裝包中的“.exe”文件。此外RPM文件中還包含了運行可執行文件所需的其它文件,這點也和windows下的軟件包類似,windows程序的安裝包中,除了“exe”可執行文件,還有其它依賴運行的文件。
RPM包管理方式的優點是:安裝簡單方便,因為軟件已經編譯完成打包完畢,安裝只是個驗證環境和解壓的過程。此外通過RPM方式安裝的軟件,RPM工具都會記錄軟件的安裝信息,這樣方便了軟件日後的查詢,升級和卸載。
RPM包管理方式的缺點是對操作系統環境的依賴很大,它要求RPM包的安裝環境必須與RPM包封裝時的環境相一致或相當。還需要滿足安裝時與系統某些軟件包的依賴關系,例如需要安裝A軟件,但是A軟件需要系統有B和C軟件的支持,那麼就必須先安裝B和C軟件,然後才能安裝A軟件。這也是我們在用RPM包方式安裝軟件需要特別注意的地方。
2.2 RPM包種類和命令
RPM包的封裝格式一般有兩種,分別是RPM和SRPM,SRPM包也是一種RPM,但是它包含了編譯時的源碼文件和一些編譯指定的參數文件,因而在使用的時候需要重新進行編譯,通常SRPM對應的RPM文件類似與“xxxxxxxx.src.rpm”格式。
下面我們講述一下兩種RPM包對應的文件名含義:
例如一個rpm文件:nxserver-2.1.0-22.i386.rpm其中“nxserver”表示軟件的名稱,“2.1.0”表示軟件的版本號,“22”表示軟件更新發行的次數,“i386”表示適合硬件的平台,最後的“.rpm”是rpm軟件包的標識。
一般的RPM封裝包的命名格式都有這五個部分組成,由於SRPM包是需要編譯才能使用的,因此沒有上面顯示項中對應的平台選項,其它與RPM包命令格式完全一樣。
對於RPM包的五個組成部分,我們下面介紹一些它們更詳細的含義和異同:
軟件名稱:是對軟件包的標識;
軟件的版本號:每個軟件都有自己的版本號,版本號可以說明軟件從開始到現在發行了多少了,軟件是否是新的等等。
軟件更新發行次數:由於一個版本的軟件在發行後可能出現bug或者漏洞,那麼就需要修復和重新封裝,每修復封裝一次,軟件的名稱就要更新一次。
適合的硬件平台:由於RPM包要在各種不同的linux硬件平台上使用,但是由於每個不同的硬件平台RPM打包封裝的參數也各不相同,這樣就出現了針對i386、i686、x86_64、noarch等的平台名稱標識。
i386指這個軟件包適用於intel 80386以後的x86架構的計算機。
i686指這個軟件包適用於intel 80686以後(奔騰pro以上)的x86架構的計算機。
x86_64指這個軟件包適用於x86架構64為處理器的計算機。
noarch表示這個軟件包與硬件構架無關,可以通用。
需要注意的是:i386軟件包可以在任意x86平台下使用,無論是i686或是x86_64的機器,相反,i686的軟件包不一定能在i386硬件上面使用,由於i686軟件包一般都是對cpu進行了優化,所有具有向後兼容性,但是不具有先前兼容的特性。
RPM軟件包標識:RPM軟件包標識用於指明此文件是rpm格式的文件,一般有兩種後綴標識,分別是以“.rpm”結尾和以“.src.rpm”結尾。
2.3 RPM工具的使用
RPM工具的使用分為安裝、查詢、驗證、更新、刪除等操作,下面我們分別介紹。
1. 安裝軟件包
命令格式:rpm -i [輔助選項] file1.rpm file2.rpm…。.fileN.rpm主選項說明:
-i:install的意思,就是安裝軟件。也可以使用“--install”。
參數說明:file1.rpm file2.rpm…。.filen.rpm是指定將要安裝RPM包的文件名,可以多個文件一起安裝。
輔助選項說明:這裡的選項很多,我們只列出常用選項,詳細解釋如下:
l -v:顯示附加信息。
l -h:安裝時輸出標記“#”。
l --test:只對安裝進行測試,並不實際安裝。
l --nodeps:不檢查軟件之間的依賴關系。加入此選項可能會導致軟件不可用。
l --force:忽略軟件包以及軟件沖突。
l --replacepkgs:強制重新安裝已經安裝的軟件包。
l --prefix:將軟件包安裝到由 指定的路徑下。
l --percent:以百分比的形式輸出安裝的進度。
l --excludedocs:不安裝軟件包中的說明文件l --includedocs:安裝軟件包,包含說明文件。
 123 共3頁