詳解Linux系統源碼包安裝方法

來源:互聯網
上載者:User

Linux越來越火熱,微軟都開始著急了,於是發布了windows 7這款系統,吸引廣大使用者。Linux越來越成為主流,你瞭解Linux系統嗎?你是Linux系統的應用者嗎?本文為你詳細介紹Linux系統源碼包安裝,為你在學習Linux系統源碼包安裝時起一定的作用。

1. 解壓縮包

可以通過下載或其他方式獲得了一個軟體包,通常它是一個壓縮檔,大部分可能是存檔的和壓縮的,這些檔案一般以 .tar .gz為副檔名。

首先拷貝它到一個目錄,然後 untar 和 gunzip 解壓它。 通常這個命令是

tar xzvf filename [filename 是軟體檔案名稱]

解壓後的檔案一般會在目前的目錄下的建立子目錄,並以這個包名來命名。 你也可以用用這個命令預先查看結果 tar tzvf filename,顯示包裡有那些解壓檔案。

源檔案如果是新的 bzip2 (.bz2) 格式,可用 bzip2 -cd filename | tar xvf -,或更簡單的 tar xyvf filename ,這很不錯的tar命令被不斷的完善。

說明:

A:有時候一些檔案必須安裝在使用者的 home 目錄下,或更多的是在一個固定的目錄,比如 /, /usr/src, 或 /opt 。所以必須仔細閱讀安裝包的配置資訊。當一個軟體包裡如果有config 和 Makefiles 檔案則最好去編輯它,這裡包括了安裝指令和說明。提示:你改變 makefile 會導致不同的結果。大部分軟體包允許用 make install 自動處理安置二進位檔案在適當的系統位置。

B:你可能碰到過一些共用檔案、shell 封存檔案、尤其是 Internet 上的源碼新聞群組。它們保留的原因是具有人性化的可讀性,並且允許新聞群組緩衝並通過它們篩選和剔除出不合格的。它們可能用 unshar filename.shar 命令來解壓。

C: 一些源碼封存檔案是用非標準的 DOS,Mac 或其他壓縮的比如:zip, arc, lha, arj, zoo, rar, and shk.

D: 有時候,你可能需要使用一個 patch 或顯示改變了的 diff 檔案來升級或修複存檔的源碼檔案。這 doc 檔案或者 README 檔案將告訴你怎麼去使用。一個很好的命令用標準文法來調用的命令是 patch < patchfile.

2.關於 rpm 安裝包

一些 Linux 使用者懼怕通過使用源碼來手動安裝軟體包,不過現在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安裝運行平穩又快,作為一個軟體安裝在某幾個有名的作業系統。

作為方便的RPM包也存在很多不好的缺點,例如:
A: 要瞭解軟體中更多更詳細的內容你必須去在二進位中去瞭解,而不是rpm包。

B: 還有安裝一個 rpm 包如果需要依賴關係那麼安裝就可能會導致失敗。

C: 當 rpm 請求你系統中不同版本的庫,那麼安裝將不能繼續,除非你為錯誤的庫位置建立串連符號到正確的位置。

說明:必須使用root 安裝 rpm 和 deb 。因為它需要必須的寫入許可權。

最簡單的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 會自動解包和安裝。

3.關於安裝 Linux 包出現的一些問題及解決方案

假設 make 失敗有個連結錯誤: -lX11: No such file or directory,正好在 xmkmf 之後已被調用,這可能意味著 Imake 不能被完全建立。檢查第一部分 Makefile 檔案的的行是這樣:

LIB= -L/usr/X11/lib
INCLUDE= -I/usr/X11/include/X11
LIBS= -lX11 -lc -lm

這個 -L 和 -I 開關告訴編譯器和連結分別在哪裡找到 library 和 include 檔案。在這個例子裡, X11 庫應該在 /usr/X11/lib 目錄,且 X11 包含檔案應該在 /usr/X11/include/X11 目錄裡。假如對於你的機器上的這個錯誤,請處理修改 Makefile 並重新再 make。

沒有聲明涉及的數學庫函數,像下列各項:
/tmp/cca011551.o(.text+0x11): undefined reference to `cos'

要修複它,需要明確連結到匹配的庫,在 Makefile (看先前的例子) 裡增加一個 -lm 到 LIB 或 LIBS 標記 。

用其他方法嘗試
仍然失敗 如果失敗,參考下列指令碼:
make -DUseInstalled -I/usr/X386/lib/X11/config

這個直接方式的類別相當於。

在少數例子裡,用 root 運行 ldconfig 可能會解決:
# ldconfig 更新共用庫連結符號。

一些 Makefiles 使用你系統裡未被承認的庫別名。一個例子,構建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在檔案或連結。然而,在那裡是 libX11.so.6.1。解決方案是用 root 運行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接著需要運行 ldconfig 。

有一些包需要你安裝一個或更多庫的升級版本。需要拷貝一個或更多的庫到適當的目錄裡,刪除舊的庫,重新設定動態連結程式庫。

4.一些其他的問題處理

安裝一個shell 指令碼如果出現:No such file or directory 的錯誤訊息。這是可以檢查檔案許可權確定檔案事可執行檔,並檢查檔案頭確定是否 shell 或程式是指令碼在指定的位置被調用。一個例子,這個指令碼可能是這樣開始的:

#!/usr/local/bin/EDEN

如EDEN的實際安裝位置是在你的 /usr/bin 目錄,用一個 /usr/local/bin 替代

這個指令碼不能運行有兩個方法來糾正!

A: 檔案頭改成 #!/usr/bin/EDEN

B: 或增加一個連結符, ln -s /usr/bin/EDEN

5.一個典型的例子 Xloadimage

首先說明下面的例子來源於國外網站的一個技術執行個體,這裡我做了翻譯和整理。

這個例子展現一個簡單的問題。xloadimage 程式對我的圖形工具的調整設定是有用的附加。從源碼目錄拷貝檔案,用 tar xzvf 解壓檔案,可是在運行 make 的時候出現令人討厭的錯誤並停止了。

 
  1. gcc -c -O -fstrength-reduce -finline-functions -fforce-mem  
  2. -fforce-addr -DSYSV -I/usr/X11R6/include  
  3. -DSYSPATHFILE="/usr/lib/X11/Xloadimage" mcidas.c  
  4. In file included from /usr/include/stdlib.h:32,  
  5. from image.h:23,  
  6. from xloadimage.h:15,  
  7. from mcidas.c:7:  
  8. /usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:  
  9. conflicting types for `wchar_t'  
  10. /usr/X11R6/include/X11/Xlib.h:74: previous declaration of  
  11. `wchar_t'  
  12. make[1]: *** [mcidas.o] Error 1  
  13. make[1]: Leaving directory  
  14. `/home/thegrendel/tst/xloadimage.4.1'  
  15. make: *** [default] Error 2 

這個錯誤訊息包含了實質的線索:

查看 image.h 檔案的 23 行:
#include

在源碼的某處對於 xloadimage, wchar_t 已經在指定標準 include 檔案重新定義。 告訴我們首先在 image.h 的 23 行嘗試注釋它,或許 stdlib.h include 是不存在的,畢竟不是所有都是必需的。

在這點,構建中的收益來源於所有任何一個致命錯誤。xloadimage 現在功能正常。

6.安裝 Linux 包的一些總結

堅持自己動手處理所有的安裝出現的問題,不斷總結努力學習,從錯誤裡去仔細研究,努力動手排錯,從每個不足甚至失敗的地方得到擴充和提升,可以增強安裝構建軟體的技巧。這樣你就學會了Linux系統源碼包安裝方法了。

  1. 淺析Linux作業系統中開源Cisco路由虛擬機器
  2. 詳解三十種Linux發行版本
  3. 學習心得:Linux系統檔案鎖
  4. 闡述Linux擴充檔案系統
  5. 輕鬆的完成Linux建立檔案系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.