Unix/Linux 軟體安裝首先我們明白,在Unix like的機器上,一套軟體並不僅僅有一個程式,而是一堆程式碼檔案。例如main.c,haha.c,sin_value.c這三個原始碼檔案。1.程式源碼1.1用gcc等編譯工具手動編譯#什麼是gcc工具?GNU的gcc工具是很通用的C語言編譯器。gcc -c main.cgcc -c haha.cgcc -c sin_value.cgcc -c cos_value.c產生main.o,haha.o,sin_value.o,cos_value.o 4個經過編譯檔案。將幾個.o檔案進行串連,並加入libm數學函數,以產生main可執行檔。gcc -o main main.o haha.o sin_value.o cos_value.o \-lm -L/usr/lib -L/lib#然後我們就可以跑main這個可執行檔了。[padep@cnsz081003 fwy]$ ./mainPlease input your name: fengweiyuanPlease enter the degree angle (ex> 90): 110Hi, Dear fengweiyuan, nice to meet you.The Sin is: 0.94The Cos is: -0.341.2 用configure與make等工具編譯源碼./configure檢測使用者環境,檢查該OS是否適合等。然後會產生makefile文字檔。1.是否有適合的編譯器,可以編譯本軟體的程式源碼。2.是否已經存在本軟體所需的函數庫或其他依賴軟體。3.OS平台,包括核心版本,是否適合本軟體。4.核心的頭定義檔案是否存在。makefile當中記錄了源碼如何編譯等資訊。這個步驟的相關資訊你可以參考README與INSTALL等檔案。makeclean不一定需要,但執行一下比較安全。如果已經有上次編譯過的.o檔案存在,當然是清除一下比較好,這樣我們就可確定新編譯出來的執行檔案我們可以確定是使用自己的機器所編譯完成的。make會在目前的目錄下搜尋makefile這個文字檔,利用makefile來編譯源碼,編譯成可執行檔,放目前的目錄下。(這個過程就如上面1.1的產生.o檔案,將.o檔案串連一起並加函數庫的工作)。make會自動判斷源碼是否經過變動了而自動更新執行檔案。make install如果makefile裡面有寫上關於install的選項,就會將上一步編譯完成的檔案安裝到預設的目錄下,以完成安裝。這些步驟是一個一個來的,前面的沒有成功,後面的也無法執行。總結由於不同OS的函數庫路徑、或者函數庫檔案名稱定義,或者是預設安裝的編譯器,以及核心版本不同。理論上,不能將CentOS 5.x上編譯出來的二進位檔案(二進位執行檔案包含該OS上函數庫路徑資訊),拿到SuSE上執行。所以同一套軟體要在不同的平台上執行,必須要重複編譯,因此才需要源碼。2.已經編譯好的檔案2.1二進位分發版直接選擇編譯好的二進位分發版,需要從網站上按照作業系統版本來選擇。其實就使在特定作業系統上,已經編譯好的二進位檔案,我們直接拷貝使用。
2.2rpm包要安裝的軟體,預先編譯了,然後打包成rpm安裝包。包頭會有軟體依賴資訊,安裝rpm包前,rpm會先依照rpm包頭記錄的資訊,去檢查環境是否滿足,若不滿足就不安裝。安裝的時候,會將該軟體的資訊,寫入本地RPM資料庫,以便未來的查詢、驗證與反安裝。所以,rpm包並不是跨平台的,要安裝這個rpm包,那麼這個平台要與當初建立這個軟體檔案的主機環境一致或相當才行。
srpm包。**.src.rpm