1. 程式人生 > 其它 >linux的軟體安裝—通過原始碼安裝

linux的軟體安裝—通過原始碼安裝

在windows下安裝軟體,大家的流程一般是這樣的:從網上或者其他渠道找到安裝包,雙擊擊安裝包,一直點選下一步,然後就完成了。在這個過程中,有可能會去選擇個安裝路徑或者簡單配置一些安裝選項。整個過程還是挺直觀的。

一旦習慣了windows的這中安裝思維,來到linux下,你可能就會抓狂了。哪裡去下載安裝包,下載後為啥不能雙擊安裝。

其實在linux下安裝軟體,要換個思路,不能以windows的思維去做。

在linux的世界裡,安裝軟體有三個方法,第一、從原始碼安裝;第二、通過包管理工具來安裝,比如紅帽系的rpm包管理工具rpm、debian系的deb包管理工具dpkg;第三、通過軟體包管理器來安裝,比如紅帽系的yum、debian系的apt。在這裡我先介紹怎麼從原始碼安裝軟體。

從原始碼安裝軟體

如果你剛接觸linux,你可能會問,啥是原始碼,這東西能吃嗎?實際上,我們所有使用的軟體,執行著的程式都是從原始碼來的。

先來介紹段小歷史。計算機只認識0、1這兩個數字,計算機世界裡所有的東西都是通過這兩個數字呈現出來的:你看到的照片、看到的視訊、聽到的音樂、使用的軟體等。計算機剛發明的時候,確實是使用0、1這兩個東西來寫程式的,那個時候,需要準備紙帶,通過在紙帶上打孔來表示0、1,把打好孔的紙帶送到計算機那裡執行。這個時候的操作,只能由專業的人員來編寫,編寫效率低,對普通人來說,那就是天書。後來隨著技術的發展,就出現了程式語言這個東西,通過程式語言,人們就可以用類似於書寫英文的方式來寫程式了,寫出來的程式不能夠直接用,需要通過編譯軟體,把人寫的程式翻譯成機器可以認識的東西—0、1這個兩個數字,被翻譯後的程式碼,就是我們看到的軟體了,所以軟體實際上就是0、1數字組成的東西。

看了這段小歷史,你可能就知道了什麼是從原始碼安裝軟體了。從原始碼安裝,我們首先要找軟體的原始碼,這個一般在軟體的官方網站就可以找到。找到之後,用編譯軟體,對原始碼進行編譯,完成編譯後,這個軟體就可以使用了。我們以安裝nginx整個軟體來看看這個整個過程是怎麼操作的。

nginx是一個web服務軟體,這個軟體是由俄羅斯的一位大牛開發的,最初是用在這個網站,由於nginx的效能出眾,現在已經應用到大量網站。

我們先從nginx的官網找到原始碼:

這裡面隨便找一個就可以了,我選擇了nginx-1.18.0這個穩定版的。

通過wget-O /tmp/nginx,就可以把這個原始碼包下載下載,這裡我把原始碼包下載到了tmp目錄,命名為nginx。

>>wget是一個命令列的下載工具,格式是:wget 源url -O 目的地址

下載下來後,這個原始碼包是不能夠直接用的,它是一個壓縮包,需要把它解壓後才能看到裡面的原始碼。

通過cd /tmp,進入到tmp目錄,用ls命令,就可以看到我們剛剛下載的東西了:

通過nginx-1.18.0.tar.gz的字尾tar和gz我們可以找到這個壓縮包使用tar打包,並且用gzip對包進行壓

通過tar命令我們就可以把這個壓縮包解壓:

tar -zxf nginx

再用ls命令,就可以看解壓出來的檔案了:


進入nginx-1.18.0這個資料夾,我們可以看到

這裡,我們主要關注configure、README、src檔案和資料夾。

configure是安裝時的配置和檢查工具,一個shell指令碼檔案。

README是說明檔案,安裝之前可以看看裡面的內容,裡面可以提供許多有效的資訊。

src是原始碼,我們的所有原始碼都放在這裡:

可以看到,這裡是以.h 和.c檔案結尾的檔案,這些是用C語言寫的原始碼,開啟其中一個就可以看到原始碼是長成什麼樣子的了:

看到沒,是不是很像英文寫的東西?


解壓後,我們就可以通過configure對環境檢查,看看有沒有少東西,順便設定個安裝目錄。我把安裝目錄設定在/tmp/installPath

命令是這麼寫的:./configure --prefix=/tmp/installPath,如果沒有這個資料夾,它會自動建立。接下來就看檢查的手機號碼交易地圖結果怎麼樣了。如果不正常,會提示缺少什麼東西,然後跟著提示把缺少的東西安裝上就可以了。

檢查完、配置好之後,就可以開始編譯了,敲make命令就可以開始。

在小專案中,我們可以不用這個工具,直接通過編譯器,對原始碼進行編譯。但是在專案比較大,檔案多的時候,需要這個工具對編譯過程進行管理,它會呼叫makefile,這個makefile就是一個寫好編譯語句的東西,裡面會呼叫編譯器,比如gcc,執行編譯,清理編譯後的冗餘檔案,通過make和makefile,就可以很方便對專案的編譯進行管理。如果在大專案中,不使用這個工具,要對成百上千上萬的原始碼

是不太可能的,如果其中一個檔案修改了,要重新編譯的話,將會是一個噩夢。

編譯完後,可以看到類似的結果:

最後,我們需要做的就是安裝了,通過make install,這個軟體就會被安裝到我們最開始設定的那個資料夾裡面:

這樣,我們整個的安裝過程就完成了。這裡面最消耗時間的就是編譯和環境檢查,在這裡面有最可能出現的就是缺整個缺哪個軟體包,需要自己手動去把這些缺少的東西找到並安裝。

安裝完後,如果我們不需要了應該怎麼刪除呢?再windows中,如果我們不需要一個軟體,我們是這麼刪除的:開啟控制面板,找到程式管理,在裡面找到之前安裝的軟體,然後點選解除安裝,如果順利,就可以把軟體刪除。刪除完後,通常會留下尾巴,比如說登錄檔裡的東西。然後,你可能會用清理工具進行深度清理。是不是覺得windwos的安裝比刪除簡單些?

在linux裡,刪除就簡單了,直接用rm -rf 安裝的資料夾 既可以了,拿剛才安裝的nginx來說,rm -rf /tmp/installPath就可以了。是不是覺得刪除很簡單。哈哈。

好了,整個過程我們走完了,總結一下從原始碼安裝的整個過程:

第一、從官方網站找到原始碼,並下載。使用的命令是wget來下載,如果沒有也可以使用curl。

第二、對原始碼包進行解壓,把原始檔放到一個資料夾。通過命令tar -zxf來解壓原始碼包。

第三、用原始碼包裡的configure這個工具,檢查安裝環境,補上沒有安裝的軟體,通過檢測後,如果有需要,可以配置安裝位置。

第四、通過make這個工具,對原始碼進行編譯。

第五、通過make install,對編譯好的檔案。

希望本文對你有幫助~