歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux軟件

linux軟件安裝:源碼(1)

在windows上安裝軟件只要不斷點擊下一步下一步就行,但是無法修改軟件的源代碼,如果要增加或者減少軟件的某些功能,只能求助於當初發行軟件的廠商了。

而linux上面的軟件幾乎都經過GPL授權的,也就是說每個軟件都提供源代碼,可以自行修改程序。

何為GPL:GPL,是General Public License的縮寫,是一份GNU通用公共授權非正式的中文翻譯,保證你共享和修改自由軟件的自由。——保證自由軟件對所有用戶是自由的。

linux上真正識別的可執行文件其實是二進制文件,那麼我們如何做出一個二進制的程序呢,首先要寫程序,比如vim編寫程序,這就是所謂的源代碼,就是一般的純文本文件,在完成這個源文件的編寫後,進行編譯成os能夠識別的二進制程序,而要編譯的話自然需要編譯程序來操作。

比如使用c語言進行源代碼編寫,寫完後,用linux上標准的c語言編譯程序gcc來編譯,就可以制作一個二進制文件。

事實上,在編譯過程中還會生成所謂的目標文件,拓展名.o結尾,有的時候會在程序中調用其他的外部子程序,這時在編譯過程中就必須把函數庫加進去,如此,編譯程序就可以將us哦呦的程序代碼和函數庫做一個鏈接(link)以生成正確的執行文件。

目標文件是指源文件經過編譯程序產生的能被cpu直接識別二進制文件。 
可執行文件就是將目標文件連接後形成的可執行文件,當然也是二進制的。

make configure
使用gcc編譯的過程並不簡單,如果源碼很大的話。此時可使用make命令來簡化編譯命令。
make是一個程序,當執行make時,make會在當前目錄下搜尋makefile這個文本文件,makefile記錄了源碼如何編譯的詳細信息,而makefile如何得到,通過軟件開發商都會寫一個
檢測程序來檢測用戶的操作環境。檢測程序完畢後,會新建這個makefile規則文件,通過這個檢測程序的文件名叫configure或config
那麼為什麼要檢測操作環境呢?
雖然每個linux distribution用的是相同的內核,但是內核的調用不同,而且每個軟件所需的函數庫也不同,同時,軟件開發商不僅會針對linux開發,而是會針對整個unix-like做開發
因此也必須檢測該操作系統是否有合適的編譯器,一般來說,檢測程序會檢測的數據如下:
  是否有合適的編譯程序可以編譯本軟件的程序代碼。
  是否已經存在本軟件所需要的函數庫或其他需要的相關軟件。
  操作系統是否適合本軟件
  內核的頭定義文件是否存在

也就是說,首先要執行configure來新建makefile,這個步驟很重要,然後用make調用所需要的數據來編譯即可。

由於不同的linux distribution的函數庫文件所放置的位置的路徑或者是函數庫的文件名都不相同,理論上在centos上編譯編譯出的二進制文件在ubuntu上無法執行,所以同一套
軟件要在不同平台上面執行時,必須要重復編譯,因此需要源碼。

軟件的安裝和升級
軟件的更新分兩大類:
直接以源碼通過編譯來安裝和升級
直接用編譯好的二進制程序來安裝和升級

tarball文件:一個軟件包,壓縮文件
解壓後:
源代碼文件
檢測程序文件
軟件的安裝說明(install、readme)

tarball安裝流程:
下載tarball
解壓縮得到很多源文件
用gcc編譯生成目標文件
用gcc進行函數庫,主程序,子程序的鏈接,形成主要的二進制文件
將上述額二進制文件和相關的配置文件安裝在自己的主機上。

Copyright © Linux教程網 All Rights Reserved