鳥哥的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 以及相關的配置檔案安裝在自己的主機上面。