


Linux源碼包編譯和安裝
源代碼的用處無(wú)非是以下兩點(diǎn);
1、軟件根據(jù)用戶的需要加以定制;
2、二次開發(fā);注:要根據(jù)軟件的許可證書約定為準(zhǔn),開發(fā)者許可二次開發(fā)才行;
LINUX本是開源的,看大家的倔勁有多大了,呵呵,好了,下面正文開始吧,我發(fā)完就睡覺(jué)了!
1、源碼包的打包格式;
源代碼一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;
[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz
我們解開一個(gè)包后,進(jìn)入解壓包,一般都能發(fā)現(xiàn)README(或reame)和INSTALL( 或install);或doc(或DOC)目錄;看名字就知道個(gè)差不多;
比如我們下載一個(gè)比較新的fcitx 的軟件包,比如是 fcitx-3.2-050827.tar.bz2
我們?cè)诮忾_這個(gè)軟件包會(huì)會(huì)發(fā)現(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
所以我們就可以看fcitx的INSTALL 和doc目錄的安裝文檔了;里面都告訴我們?nèi)绾?/span>安裝;
有時(shí)安裝文檔也會(huì)在開發(fā)者的主頁(yè)上有詳細(xì)的說(shuō)明,及常見問(wèn)題的處理等;比如 LumaQQ
2)編譯安裝軟件的條件;
首先我們?cè)贚inux系統(tǒng)中至少得把開發(fā)工具安裝上,比如 gcc ;perl;python;glibc;gtk;make ;automake 等開發(fā)工具或基礎(chǔ)包;還要安裝一些相應(yīng)的開發(fā)包,一般是文件名包括dev的,比如kernel-devel;還有一些開發(fā)庫(kù),比如以lib開頭的;如果您在編譯軟件時(shí),有時(shí)提示缺少什么東西之類的,大多少的是這些開發(fā)工具和開發(fā)庫(kù)等;從光盤中找出安裝就是了;有時(shí)光盤沒(méi)有提供,請(qǐng)用google搜索相應(yīng)的軟件包,有時(shí)可能也會(huì)用到源碼包編譯安裝所依賴的包;
有時(shí)本來(lái)系統(tǒng)中已經(jīng)安裝了所依賴的包,但系統(tǒng)提示找不到應(yīng)該怎么辦?這時(shí)需要我們設(shè)置一下PKG_CONFIG_PATH的環(huán)境變量就行了;
#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
或
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
然后我們?cè)賮?lái)運(yùn)行編譯的./configure ;make ;make install ,嘗試著來(lái)吧;
以java開發(fā)的工具開發(fā)的程序,要用到 jre或者jdk ;jdk已經(jīng)包括jre了,所以如果我們只是要求有一個(gè)java程序運(yùn)行的環(huán)境,只需要安裝jre就行了;安裝好jre,配置一下java的環(huán)境變量就可以用了。如果是圖形界面的程序,點(diǎn)點(diǎn)鼠標(biāo)就OK了;
用perl 開發(fā)的程序,是需要perl環(huán)境的,所以必須得把perl的包安裝上,python 也同理;
3)編譯安裝軟件的方法;
大多以tar.gz 和tar.bz2打包軟件,大多是通過(guò) ./configure ;make ;make install 來(lái)安裝的;有的軟件是直接make;make install ;
我們可以通過(guò)./configure --help 來(lái)查看配置軟件的功能;大多軟件是提供./configure 配置軟件的功能的;少數(shù)的也沒(méi)有,如果沒(méi)有的就不用./configure ;直接make;make install 就行了;
./configure 比較重要的一個(gè)參數(shù)是 --prefix ,用--prefix 參數(shù),我們可以指定軟件安裝目錄;當(dāng)我們不需要這個(gè)軟件時(shí),直接刪除軟件的目錄就行了;
比如我們可以指定fcitx 安裝到 /opt/fcitx 目錄中;
[root@localhost fcitx]#./configure --prefix=/opt/fcitx
如果我們不需要fcitx 時(shí),可以直接刪除 /opt/fcitx 目錄;
所以我們舉這個(gè)例子中,fcitx如果定制安裝到 /opt/fcitx目錄中,完整的安裝方法應(yīng)該是:
[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 ,應(yīng)該是
[beinan@localhost ~]#/opt/fcitx/bin/fcitx
如果您想要讓fcitx 只要執(zhí)行fcitx ,就能調(diào)用,請(qǐng)配置環(huán)境變量,或者在/usr/bin 中做一個(gè)fcitx 的鏈接;
[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx
一般的情況下都有說(shuō),但大多軟件沒(méi)有提供源碼包的卸載方法;我們可以找到軟件的安裝點(diǎn)刪除。主要看你把它安裝在哪了。
設(shè)置環(huán)境變量PATH,這個(gè)我就不多廢話了,大家應(yīng)該都會(huì)吧
您的PATH可以設(shè)置成這樣的;
export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"
舉一個(gè)例子,比如我想安裝mlterm ;并指定安裝目錄為/opt/mlterm中; http://mlterm.sourceforge.net
#./configure --prefix=/opt/mlterm
#make
#make install
把源碼包安裝的軟件,都指定安裝在 /opt目錄中,這樣不就知道了軟件安裝在哪里了;也方便卸載;
1)基于perl 和python 的程序的安裝;
一般情況下,用 #perl file.pl安裝;比如:VMware 的Linux版本的安裝;
[root@localhost vmware-distrib]# perl vmware-install.pl
基于python 開發(fā),也得用 python file.py 來(lái)安裝
一般軟件包都有README和INSTALL 或者 DOC 文檔,看文檔安裝;
2)有些安裝程序是腳本型的調(diào)用;要用 #sh 文件名
比如NVdia驅(qū)動(dòng)的安裝就是這樣的;
[beinan@localhost ~]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run
當(dāng)然也能通過(guò) chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ,然后 ./NFORCE-Linux-x86-1.0-0306-pkg1.run 來(lái)安裝;
也有一些是以file.bin 文件
[beinan@localhost ~]# chmod 755 file.bin
[beinan@localhost ~]# ./file.bin
后記: 源碼包及特殊格式的軟件安裝就寫這么多,寫的再多也是寫不完。我們主要還是以軟件的安裝文檔為準(zhǔn);安裝軟件時(shí),如果只是簡(jiǎn)單的應(yīng)用,如果有rpm包,盡可能的用rpm包;主要是方便和易于管理。
關(guān)鍵字:Linux、源碼包、編譯、安裝
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解