1. 程式人生 > >八、Linux原始碼包編譯和安裝

八、Linux原始碼包編譯和安裝

8.1. 原始碼的用處

原始碼的用處無非是以下兩點

1、軟體根據使用者的需要加以定製;
2、二次開發;注:要根據軟體的許可證書約定為準,開發者許可二次開發才行;

LINUX本是開源的,看大家的倔勁有多大了,呵呵,好了,下面正文開始吧,我發完就睡覺了!


8.2. 原始碼包的打包格式


    原始碼一般以file.tar.gz  , file.tar.bz2  或  file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;


[[email protected] beinan]# tar jxvf file.tar.bz2
[[email protected]

beinan]# tar zxvf file.tar.gz

我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個差不多;

比如我們下載一個比較新的fcitx 的軟體包,比如是 fcitx-3.2-050827.tar.bz2

我們在解開這個軟體包會會發現如下的檔案;


[[email protected] fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[[email protected] fcitx]#cd fcitx
[[email protected]
fcitx]# ls
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools

所以我們就可以看fcitx的INSTALL 和doc目錄的
安裝
文件了;裡面都告訴我們如何安裝

有時安裝文件也會在開發者的主頁上有詳細的說明,及常見問題的處理等;比如 LumaQQ

8.3. 編譯安裝軟體的條件

首先我們在Linux系統中至少得把開發工具安裝上,比如gcc;perl;python;glibc;gtk;make ;

automake 等開發工具或基礎包;還要安裝一些相應的開發包,一般是檔名包括dev的,比如kernel-devel;還有一些開發庫,比如以lib開頭的;如果您在編譯軟體時,有時提示缺少什麼東西之類的,大多少的是這些開發工具和開發庫等;從光碟中找出安裝就是了;有時光碟沒有提供,請用google搜尋相應的軟體包,有時可能也會用到原始碼包編譯安裝所依賴的包;

有時本來系統中已經安裝了所依賴的包,但系統提示找不到應該怎麼辦?這時需要我們設定一下PKG_CONFIG_PATH的環境變數就行了;

#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來執行編譯的./configure ;make ;make install ,嘗試著來吧;

以java開發的工具開發的程式,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們只是要求有一個java程式執行的環境,只需要安裝jre就行了;安裝好jre,配置一下java的環境變數就可以用了。如果是圖形介面的程式,點點滑鼠就OK了;

用perl 開發的程式,是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;

8.4. 編譯安裝軟體的方法

大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install 來安裝的;有的軟體是直接make;makeinstall ;

我們可以通過./configure --help 來檢視配置軟體的功能;大多軟體是提供./configure 配置軟體的功能的;少數的也沒有,如果沒有的就不用./configure ;直接make;make install 就行了;

./configure 比較重要的一個引數是 --prefix ,用--prefix 引數,我們可以指定軟體安裝目錄;當我們不需要這個軟體時,直接刪除軟體的目錄就行了;

比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;


[[email protected] fcitx]#./configure --prefix=/opt/fcitx

如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;

所以我們舉這個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整的安裝方法應該是:


[[email protected] fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[[email protected] fcitx]#cd fcitx
[[email protected] fcitx]# ./configure --prefix=/opt/fcitx
[[email protected] fcitx]# make
[[email protected] fcitx]# make install

呼叫fcitx ,應該是


[[email protected] ~]#/opt/fcitx/bin/fcitx

如果您想要讓fcitx 只要執行fcitx ,就能呼叫,請配置環境變數,或者在/usr/bin 中做一個fcitx 的連結;


[[email protected] beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx

一般的情況下都有說,但大多軟體沒有提供原始碼包的解除安裝方法;我們可以找到軟體的安裝點刪除。主要看你把它安裝在哪了。

設定環境變數PATH,這個我就不多廢話了,大家應該都會吧

您的PATH可以設定成這樣的;

exportPATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"

舉一個例子,比如我想安裝mlterm;並指定安裝目錄為/opt/mlterm中;http://mlterm.sourceforge.net


#./configure --prefix=/opt/mlterm
#make
#make install

把原始碼包安裝的軟體,都指定安裝在 /opt目錄中,這樣不就知道了軟體安裝在哪裡了;也方便解除安裝;