tar.gz 和(hé)tar.bz2詳解
大多以tar.gz 和tar.bz2打包軟件,大多是通過 ./configure ;make ;make install 來安裝(zhuāng)的;有的軟件是直接make;make install ;
我們可以(yǐ)通過(guò)./configure --help 來查看配置軟件的功能;大多軟件是提供./configure 配置軟件的功能的;少數的也(yě)沒有,如(rú)果沒有的就不用./configure ;直(zhí)接make;make install 就(jiù)行了(le);
./configure 比較重要的一個參數是 --prefix ,用--prefix 參數,我們(men)可以指定軟件安裝目錄;當我們不需要這個軟件時,直接刪(shān)除軟件的目錄就行(háng)了;
比如我們可以指(zhǐ)定fcitx 安裝到(dào) /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪除 /opt/fcitx 目錄;
所以我們舉這(zhè)個例子中,fcitx如果定製安裝到 /opt/fcitx目錄中,完整(zhěng)的安裝方(fāng)法(fǎ)應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
====================================================================
一、什麽(me)是源碼包軟(ruǎn)件;
顧名思義,源碼包就是源代碼的可見的軟件包,基於Linux和BSD係統的軟件最常見(jiàn);在國內源可見的軟件幾乎絕跡;大(dà)多開源軟件都是國外出品;在國內較(jiào)為(wéi)出名的開源軟件有fcitx;lumaqq;Lumaqq及scim等;
但軟件的(de)源代碼可見並不(bú)等於軟(ruǎn)件是開源的,我們還要以軟件的許可為(wéi)準(zhǔn);比如有些軟件是源碼可見的,但他約定用戶隻能按他約定的內容(róng)來修改(gǎi);比如vbb論壇程序;所(suǒ)以一個軟件是否是開源軟件,得具備兩(liǎng)個條件;一是源代碼可見;二是要有寬鬆的許可證書,比(bǐ)如GPL證書等;
在(zài)GNU Linux或BSD社區中,開發人員(yuán)在放(fàng)出軟件的二進製(zhì)軟件包的同時,也會為我們提(tí)供源代碼軟件包;
二(èr)、源代碼有何用?
一個軟件的如果有源(yuán)碼,是任何人都能看到他是怎麽(me)開發而來的,就像一(yī)個(gè)瓶子,比如瓶子製作的模(mó)具是什麽;需要什麽材(cái)料;具體的(de)用途以及(jí)瓶子的詳細說明(míng)書等等。軟(ruǎn)件的開放源碼就是類(lèi)似,開發者在給我們軟件的同時(shí),也會告訴我們(men)軟件是怎(zěn)麽開發出來的;隻要我們的水平(píng)足夠的高,所有的代碼都在那裏,我們就可以修改和定製軟件,以適合我們的(de)需(xū)要(yào);如果Windows開(kāi)放源代碼,並以GPL發布,一樣是有人能造出來N多的Windows發行版;遺憾的是 Windows並不是開源係統;
所以軟件的源代碼的用處無非是以下兩點;
1、軟件(jiàn)根據用(yòng)戶的需(xū)要加以(yǐ)定製;
2、二(èr)次開發;注:要根據軟件的許可證書約定為準,開發者許可二次開發才行;
三、怎(zěn)樣安裝以源碼包打包的軟件;
1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格(gé)式的解包命(mìng)令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
至於file.src.rpm 的用法,請參見:《file.src.rpm 使用方法的簡介》
2、如(rú)何編譯安裝源碼包;(大多數)
1)解開軟件包查看幫助(zhù)文(wén)檔;
我們解開一(yī)個包後,進入解壓包,一般都能發(fā)現README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看(kàn)名字就知道個差不多;
比如我(wǒ)們(men)下載一個比較新的fcitx 的軟件包,比如是 fcitx-3.2-050827.tar.bz2
我們在(zài)解(jiě)開這個(gè)軟件包會會發現(xiàn)如下的文件;
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost 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
所(suǒ)以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;裏麵都告訴我(wǒ)們(men)如何安裝;
有時安裝文檔也會在開發者的主頁上有詳細的說明,及常見問題的處(chù)理等;比如 LumaQQ
2)編譯安裝軟件的條件;
首先我們在Linux係(xì)統中至(zhì)少得把開發工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發工具或基礎包;還要安裝一些相應的開發(fā)包,一般是文件名包括dev的,比如kernel-devel;還有一些開發庫(kù),比如以lib開(kāi)頭的;如果(guǒ)您在編譯軟件(jiàn)時,有時提示缺少什麽東西之類(lèi)的,大多(duō)少的是(shì)這些(xiē)開發工具和開發庫等;從光盤中找出安裝就(jiù)是(shì)了(le);有時光盤沒有(yǒu)提(tí)供(gòng),請(qǐng)用google搜索相應的軟件包,有時可能也(yě)會用到源碼(mǎ)包(bāo)編譯安裝所依賴的包;
有時本來係統中已(yǐ)經安(ān)裝了所依賴的(de)包,但係統提示找不到應該怎麽辦?這時需要我們設置一下PKG_CONFIG_PATH的環境變量就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然後我們再來運行編譯的./configure ;make ;make install ,嚐試著來吧;
以java開發(fā)的工具開發的程序,要用到 jre或者jdk ;jdk已經包括jre了,所以如果我們隻是要求(qiú)有一個java程序運行(háng)的環境,隻需要(yào)安裝jre就行了;安裝好jre,配置一(yī)下(xià)java的環境變量就可以用了。如果是圖形界麵的程序,點點鼠標就OK了;
用perl 開發的程序(xù),是需要perl環境的,所以必須得把perl的包安裝上,python 也同理;
3)編譯安裝軟件的方法;
大多以tar.gz 和tar.bz2打包軟件,大多是(shì)通過 ./configure ;make ;make install 來(lái)安裝的;有的軟(ruǎn)件是直接make;make install ;
我們可以通過./configure --help 來查看配置軟件的功能;大多軟件是提(tí)供./configure 配置軟件的功能的(de);少數的也沒有,如果沒(méi)有的就不用./configure ;直接make;make install 就行了;
./configure 比(bǐ)較重要的一個參數是 --prefix ,用--prefix 參數,我們可以指定軟件安裝目錄;當我們不需要這個軟件時,直接刪除軟件的目錄就(jiù)行了;
比如我們可以指(zhǐ)定fcitx 安裝(zhuāng)到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時,可以直接刪(shān)除 /opt/fcitx 目錄;
所以我們舉這個例子中,fcitx如果定(dìng)製安裝(zhuāng)到 /opt/fcitx目錄中,完整的安裝方法應該是:
[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
[root@localhost fcitx]#cd fcitx
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx
[root@localhost fcitx]# make
[root@localhost fcitx]# make install
調(diào)用fcitx ,應該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 隻要執行fcitx ,就能調用,請配置環境變量,或者在/usr/bin 中做一(yī)個fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情(qíng)況下都有說,但大多軟件(jiàn)沒有提供源碼包的(de)卸載方法;我們可以找到軟件的安裝點刪(shān)除。主要看你把它安裝(zhuāng)在哪了(le)。
設置(zhì)環境變量PATH,請參見:《在Fedora Core 中(zhōng),有些常用命令怎麽沒有?解決辦法設置PATH》
所以(yǐ)您的PATH可以設置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
當然這隻是舉個例子,fcitx 可以進入桌麵自動運行的(de),請參看 http://www.fcitx.org 官方站上的安裝(zhuāng)說明;舉個(gè)例子隻是讓大家好理(lǐ)解一點;
再舉一個例子,比如我想安裝mlterm ;並指(zhǐ)定安(ān)裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源碼(mǎ)包安裝的軟件,都指定安裝(zhuāng)在 /opt目錄中,這樣不就知道了軟件安裝在哪裏了;也方便卸載;
3.其它類型(xíng)軟件;
1)基於perl 和python 的程序的安裝;
一般(bān)情況下,用 #perl file.pl安裝;比(bǐ)如:VMware 的Linux版本的安裝;
[root@localhost vmware-distrib]# perl vmware-install.pl
基於python 開發,也得用 python file.py 來安裝
一(yī)般軟件包都有README和INSTALL 或者 DOC 文檔(dàng),看文檔安(ān)裝;
2)有(yǒu)些安裝程(chéng)序是腳本型的調用;要用 #sh 文件名
比如NVdia驅(qū)動的(de)安裝就是這(zhè)樣的(de);
[beinan@localhost ~]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run
當然也能通過(guò) chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ,然後 ./NFORCE-Linux-x86-1.0-0306-pkg1.run 來安裝;
也有一些是以file.bin 文件
[beinan@localhost ~]# chmod 755 file.bin
[beinan@localhost ~]# ./file.bin
大抵如此。。。。。。。。
後記: 源碼包及特殊格式的軟件安裝就寫這麽多(duō),寫的(de)再(zài)多也是寫不完。我們主要還是以軟件(jiàn)的安裝文檔(dàng)為準(zhǔn);安(ān)裝軟件時,如果隻是簡單的應用,如果有rpm包,盡可能的用rpm包;主要是方便和易於管理(lǐ);
附錄:
安裝軟件時,最好用各自發行(háng)版所提(tí)供的係統軟件包管理工具,對於Fedora/Redhat 您可以參考如下文(wén)章;
0)RPM 基礎 《RPM 的介(jiè)紹和應用(yòng)》
1)Fedora 係統管理軟件包工具 system-config-packages,方便的添加和移除係(xì)統(tǒng)安裝盤提供的軟件包,詳(xiáng)情(qíng)請看 《Fedora 軟件包管理器(qì)system-config-packages》
2)Redhat 係統管理
關鍵詞:tar.gz,tar.bz2
閱讀本文後您有什(shí)麽感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0