1. 程式人生 > >鳥哥的Linux私房菜讀書筆記--開放原始碼的軟體安裝與升級簡介

鳥哥的Linux私房菜讀書筆記--開放原始碼的軟體安裝與升級簡介

1、開源、程式編譯與可執行檔案

在Linux系統中,一個檔案能不能被執行看的是有沒有可執行許可權x,Linux系統真正認識的可執行檔案是二進位制檔案,例如/usr/bin/passwd,/bin/touch檔案即為二進位制程式程式碼。shell scripts可以執行時利用shell程式的功能進行一些 判斷式,最終執行的除了bash提供的功能外,仍然呼叫的是已經編譯好的二進位制程式來執行的,bash也是一支二進位制程式通過使用指令:$ file  檔名來測試該檔案是不是二進位制檔案,如果是二進位制(binary)檔案且可執行時,通過指令會顯示檔案的執行類別為                                (ELF 64-bit LSB executable),同時會說明是否使用動態函式庫,如果是一般的script就會顯示text executables字樣。

· 開放原始碼:就是程式程式碼,寫給人類看的程式語言,但機器並不認識,所以無法執行; · 編譯程式:將程式程式碼轉譯成為機器看的懂得語言,就類似翻譯者的角色; · 可執行檔案:經過編譯程式變成二進位制程式後,機器看的懂所以可以執行的檔案。

2、函式庫

函式庫分為動態與靜態。函式庫類似於子程式,可以被呼叫執行一段功能函式。

3、make與configure(安裝)

當執行make時,make會在當時的目錄下搜尋Makefile(or makefile)這個文字檔案,其中記錄了原始碼如何編譯的詳情資訊。make會自動判斷原始碼是否經過變動,而自動更新執行檔。make是一支程式,軟體開發商會寫一支測試程式來偵測使用者的作業環境,以及該作業環境是否有軟體開發商所需要的其他功能。該程式偵測結束後,就會主動建立makefile規則檔案,通常這支偵測程式檔名為configure或config。偵測環境是軟體開發商為不同版本提供相應的相容服務,偵測的資料大致有:

· 是否有適合的編譯程式可以編譯本軟體的程式程式碼; · 是否已經存在本軟體所需要的函式庫,或其他需要的相依軟體; · 作業系統平臺是否適合本軟體,包括 Linux 的核心版本; · 核心的表頭定義檔 (header include) 是否存在 (驅動程式必須要的偵測)。

4、Tarball軟體

Tarball是將軟體的所有原始碼檔案先以tar打包,再進行壓縮,常見的為gzip壓縮,tarball一般檔案的副檔名為*.tar.gz,或者簡寫為*.tgz,今年來bzip2及xz的壓縮技術發展取代zip,因此檔名也會變為*.tar.bz2、*.tar.xz等。tarball是一個軟體包,解壓后里面有(1)原始碼檔案

(2)偵測程式檔案

(3)本軟體的建議說明與安裝說明(INSTALL  README)

5、安裝軟體與升級軟體

更新分為兩大類:(1)直接以原始碼透過編譯來安裝與升級(2)直接以編譯好的binary program來安裝與升級。第一點就是直接以tarball在自己的機器上進行偵測編譯安裝 與設定等等動作就是升級了。

tarball安裝軟體的流程

(1)將tarball有廠商 的網頁下載下來

(2)將tarball解開,產生很多的原始碼檔案

(3)開始以gcc進行原始碼的編譯(會產生目標檔案object files)

(4)以gcc進行函式庫、主、子程式的連線,以形成主要的binary file

(5)將上述的binary file 以及相關的配置檔案安裝在自己的主機上面。