歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux軟件 >> 從源代碼安裝Linux軟件

從源代碼安裝Linux軟件

日期:2017/2/27 14:16:36   编辑:Linux軟件
  安裝Linux軟件越來越容易了, 現在,大多數版本的Linux都支持很多類型的管理工具包,可以在很大程度上簡化軟件安裝過程,例如RPM(RedHat軟件管理工具包) 。但是我們也不能低估了懂得在Linux下直接用源代碼安裝軟件的重要性。 使用源代碼進行軟件安裝,可能會更復雜一些,但是用源代碼安裝軟件至今仍然是在Linux進行軟件安裝的重要手段,也是運行Linux的最主要的優勢之一。使用源代碼安裝軟件,能按照用戶的需要選擇用戶制定的安裝方式進行安裝,而不是僅僅依靠那些在安裝包中的預配置的參數選擇進行安裝。另外,仍然有一些軟件程序只能從源代碼處進行安裝。從這些原因來說,有必要懂得如何從源代碼中進行軟件安裝。本指南將指導用戶如何從源代碼進行軟件安裝。 獲得源代碼 有很多地方都提供源代碼包,到底在什麼地方獲得,這取決於軟件的特殊需要。對於那些使用比較普遍的軟件,如Sendmail,可以從商業網站處下載源代碼軟件包(如sendmail.org),也可以從世界各地的FTP或者HTTP鏡象站點進行下載。比較小的包,則可能需要從開發者的Web站點下載。 許多源代碼軟件包可以有很多種下載方式,包括對RPM和DEB專門創建的包,也可以是預編譯成為二進制格式的包,當然還有源代碼方式。許多源代碼會被壓縮成為.tar格式,這是源代碼包進行打包的最簡單方式。這些文件通常以.tar.gz做為擴展名。 因為程序tar本身並不做任何壓縮,只進行打包,所以.tar文件還需要用gzip軟件進行壓縮,形成以.gz為擴展名的文件。這些文件通常使用tar XPfz命令來解壓縮。大多數軟件開發者會在軟件安裝包中包含目錄結構,所以安裝時沒必要再進行人工創建目錄。不過,可以把文件解壓縮到一個空目錄中進行安裝,這是比較好的習慣。 例如,假如要下載一個sendmail的源代碼軟件包,首先會創建一個/use/local/sendmail的目錄;然後把下載來的sendmail.8.12.0.tar.gz源代碼壓縮文件放到該目錄下,再從該目錄下通過運行命令tar xpfz sendmail 8.12.0.tar.gz進行解壓縮。 有些Web浏覽器,如Netscape,當遇到以.gz為文件擴展名的文件時,會自動進行文件解壓縮。如果在下載來的文件只是以.tar為擴展名的文件包,那麼直接就用tar xpf命令來解該文件包就可以了,因為該文件並沒有壓縮。 從源代碼中進行軟件安裝 成功解壓縮源代碼文件後,接下來應該在安裝前閱讀readme文件和查看其它安裝文件。盡管許多源代碼文件包都使用基本相同的命令,但是有時在閱讀這些文件時就能發現一些重要的區別。例如,有些軟件包含一個可以做完安裝的安裝腳本程序。在正式安裝之前閱讀這些說明文件,通常會為安裝節約大量的時間。 通常的安裝方法是從安裝包的目錄執行以下命令: /configure make make install 配置腳本程序將對系統進行檢測,確定要安裝的組件,並且完成諸如編譯器的兼容性和所需要的庫的完整性檢測。如果發現有任何遺漏,安裝程序就會輸出一個錯誤信息,並且創建一個config.cache文件來保存這個失敗的安裝信息。如果想繼續進行安裝,重新運行配置腳本,就需要使用命令rm刪除config.cache文件,這樣,就可能保證配置腳本能再次進行所有的安裝檢測。 這兒列出了一個腳本執行的快照: # ./configure creating cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for a BSD compatible install... /usr/bin/install -c checking for socket in -lsocket... no checking for strlcpy... no


checking for strlcat... no checking for arc4random... no checking for MD5Update... no checking for warnx... yes checking for libpcap... yes checking for ANSI C header files... yes checking for sys/ioctl.h... yes checking for sys/time.h... yes updating cache ./config.cache creating ./config.status creating Makefile creating config.h 注意:並不是所有的選項都選擇“是”;腳本將會提示是否有丟失的要求項 。 第二個命令是make,完成把源代碼編譯成為可執行的二進制代碼,用來進行系統安裝。這一步可能要花費大量的時間,這主要是看要編譯的代碼大小和系統的速度了。 這個命令階段,是最有可能出現問題的階段。盡管開發者在努力開發盡可能廣泛使用的源代碼,但仍然會有很多Linux變種版本不能得到支持。如果有問題出現在庫文件上,那麼看看你是否有完整的Linux開發版。這就是為什麼使用源代碼安裝軟件的靈活處,也是我們提供這篇指南的原因。使用源代碼可以查出錯誤發生的地方,可以查找較舊的庫文件。 如果在安裝時出現了問題,可以去訪問開發者站點以及提供你的Linux版本站點,通常這些站點都會幫助查找安裝時所需要的文件。還有,要多使用搜索站點,比如Google和Yahoo這些搜索引擎進行搜索,因為你碰到的問題可能別人早已經碰到過,解決問題的方法可能就在互聯網上的什麼地方放著呢。 接下來的make install命令將把源代碼的編譯結果,安裝到你的系統,這些結果通常是二進制代碼或庫文件。主要方法是拷貝這些文件到合適的目錄下,成為系統文件。這些步驟通常可以在配置階段完成。如果不能確定該命令運行完成之後文件都存到什麼地方了,可以查看readme和安裝文件,看安裝程序默認安裝在什麼目錄下了。 也可以查看配置腳本創建的makefile文件,看有什麼變量存貯在該文件中。標准目錄通常是/usr/local/bin,/usr/local/sbin和/usr/local/lib,不過也有可能有變化,需要的話做可以進一步的研究。 要完成最後一個命令,必須擁有根權限,否則就不能把文件拷貝到指定的目錄。一種方法是以根權限運行所有的命令,這時為了安全,應該檢查腳本的安全性,因為以根權限運行腳本的任何命令,都相當於在根權限下運行每個命令行。雖然這不是太大的問題,尤其是從比較有名的站點下載時,安全問題都會得到保證,但最好還是在腦中繃緊這根弦,防人之心不可無。 小結 下載源代碼,並從源代碼中進行程序的安裝,這是Linux最大的優勢。即使不是編程人員,也可以控制那些要安裝的源代碼選項,編譯到新生成的軟件中。一些程序包可能除了使用源代碼安裝外,別無其它選擇;而且預編譯程序並沒有把全部參數都開放。這些要求的結果就是:從源代碼進行軟件安裝,是系統管理員必備的技巧之一。



接下來的make install命令將把源代碼的編譯結果,安裝到你的系統,這些結果通常是二進制代碼或庫文件。主要方法是拷貝這些文件到合適的目錄下,成為系統文件。這些步驟通常可以在配置階段完成。如果不能確定該命令運行完成之後文件都存到什麼地方了,可以查看readme和安裝文件,看安裝程序默認安裝在什麼目錄下了。 也可以查看配置腳本創建的makefile文件,看有什麼變量存貯在該文件中。標准目錄通常是/usr/local/bin,/usr/local/sbin和/usr/local/lib,不過也有可能有變化,需要的話做可以進一步的研究。 要完成最後一個命令,必須擁有根權限,否則就不能把文件拷貝到指定的目錄。一種方法是以根權限運行所有的命令,這時為了安全,應該檢查腳本的安全性,因為以根權限運行腳本的任何命令,都相當於在根權限下運行每個命令行。雖然這不是太大的問題,尤其是從比較有名的站點下載時,安全問題都會得到保證,但最好還是在腦中繃緊這根弦,防人之心不可無。 小結 下載源代碼,並從源代碼中進行程序的安裝,這是Linux最大的優勢。即使不是編程人員,也可以控制那些要安裝的源代碼選項,編譯到新生成的軟件中。一些程序包可能除了使用源代碼安裝外,別無其它選擇;而且預編譯程序並沒有把全部參數都開放。這些要求的結果就是:從源代碼進行軟件安裝,是系統管理員必備的技巧之一。



Copyright © Linux教程網 All Rights Reserved