1. 程式人生 > >linux下軟體編譯與安裝

linux下軟體編譯與安裝

一、什麼是原始碼包軟體;

顧名思義,原始碼包就是原始碼的可見的軟體包,基於Linux和BSD系統的軟體最常見;在國內源可見的軟體幾乎絕跡;大多開源軟體都是國外出品;在國內較為出名的開源軟體有fcitx;lumaqq;Lumaqq及scim等;但軟體的原始碼可見並不等於軟體是開源的,我們還要以軟體的許可為準;比如有些軟體是原始碼可見的,但他約定使用者只能按他約定的內容來修改;比如vbb論壇程式;所以一個軟體是否是開源軟體,得具備兩個條件;一是原始碼可見;二是要有寬鬆的許可證書,比如GPL證書等;在GNULinux或BSD社群中,開發人員在放出軟體的二進位制軟體包的同時,也會為我們提供原始碼軟體包;


二、原始碼有何用?

一個軟體的如果有原始碼,是任何人都能看到他是怎麼開發而來的,就像一個瓶子,比如瓶子製作的模具是什麼;需要什麼材料;具體的用途以及瓶子的詳細說明書等等。軟體的開放原始碼就是類似,開發者在給我們軟體的同時,也會告訴我們軟體是怎麼開發出來的;只要我們的水平足夠的高,所有的程式碼都在那裡,我們就可以修改和定製軟體,以適合我們的需要;如果Windows開放原始碼,並以GPL釋出,一樣是有人能造出來N多的Windows發行版;遺憾的是Windows並不是開源系統; 
所以軟體的原始碼的用處無非是以下兩點;

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

三、怎樣安裝以原始碼包打包的軟體;


1、原始碼包的打包格式;
原始碼一般以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

至於file.src.rpm 的用法,請參見:《file.src.rpm使用方法的簡介》

2、如何編譯安裝原始碼包;(大多數)


1)解開軟體包檢視幫助文件;

我們解開一個包後,進入解壓包,一般都能發現README(或reame)和INSTALL(或install);或doc(或DOC)目錄;看名字就知道個差不多; 比如我們下載一個比較新的fcitx的軟體包,比如是 
fcitx-3.2-050827.tar.bz2 我們在解開這個軟體包會會發現如下的檔案;[[email protected]]# 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
2)編譯安裝軟體的條件;

首先我們在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了;請參考:《JRE安裝和配置,以適合JAVA程式執行所具備的環境》 用perl開發的程式,是需要perl環境的,所以必須得把perl的包安裝上,python也同理; 
3)編譯安裝軟體的方法;
大多以tar.gz 和tar.bz2打包軟體,大多是通過 ./configure ;make ;make install來安裝的;有的軟體是直接make;make install ; 我們可以通過./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]# makeinstall 
呼叫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,請參見:《在FedoraCore 中,有些常用命令怎麼沒有?解決辦法設定PATH》 所以您的PATH可以設定成這樣的;
exportPATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"當然這只是舉個例子,fcitx可以進入桌面自動執行的,請參看 http://www.fcitx.org 官方站上的安裝說明;舉個例子只是讓大家好理解一點;再舉一個例子,比如我想安裝mlterm ;並指定安裝目錄為/opt/mlterm中;http://mlterm.sourceforge.net#./configure--prefix=/opt/mlterm
#make
#make install

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

3.其它型別軟體;


1)基於perl 和python 的程式的安裝;

一般情況下,用 #perl file.pl安裝;比如:VMware 的Linux版本的安裝;
[[email protected] vmware-distrib]# perlvmware-install.pl基於python開發,也得用 python file.py 來安裝 一般軟體包都有README和INSTALL 或者 DOC文件,看文件安裝;

2)有些安裝程式是指令碼型的呼叫;要用 #sh 檔名

比如NVdia驅動的安裝就是這樣的;
[[email protected] ~]# shNFORCE-Linux-x86-1.0-0306-pkg1.run當然也能通過chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run ,然後./NFORCE-Linux-x86-1.0-0306-pkg1.run 來安裝; 也有一些是以file.bin檔案
[[email protected] ~]# chmod 755 file.bin 
[[email protected] ~]#./file.bin 
大抵如此。。。。。。。。後記:原始碼包及特殊格式的軟體安裝就寫這麼多,寫的再多也是寫不完。我們主要還是以軟體的安裝文件為準;安裝軟體時,如果只是簡單的應用,如果有rpm包,儘可能的用rpm包;主要是方便和易於管理; 
附錄: 安裝軟體時,最好用各自發行版所提供的系統軟體包管理工具,對於Fedora/Redhat 您可以參考如下文章; 0)RPM基礎 《RPM的介紹和應用》 1)Fedora系統管理軟體包工具system-config-packages,方便的新增和移除系統安裝盤提供的軟體包,詳情請看 《Fedora軟體包管理器system-config-packages》 2)Redhat系統管理軟體包工具,新一點的系統應該是 redhat-config-packages ,用法和 《Fedora軟體包管理器system-config-packages》 一樣;3)apt + synaptic 軟體包線上安裝、移除、升級工具; 用法:《用apt+synaptic線上安裝或升級Fedora core 4.0 軟體包》
4)yum 軟體包線上安裝、升級、移除工具;用法:《Fedora/Redhat線上安裝更新軟體包,yum 篇》 5)所有的yum和apt教程 《aptand yum》 6)《file.src.rpm使用方法的簡介》 7)《如何編譯安裝原始碼包軟體》 目前apt和yum 已經極為成熟了,建議我們安裝軟體時採用 apt或者yum ;如果安裝系統盤提供的軟體包,可以用system-config-packages 或redhat-config-packages ;

相關推薦

linux軟體編譯安裝

一、什麼是原始碼包軟體;顧名思義,原始碼包就是原始碼的可見的軟體包,基於Linux和BSD系統的軟體最常見;在國內源可見的軟體幾乎絕跡;大多開源軟體都是國外出品;在國內較為出名的開源軟體有fcitx;lumaqq;Lumaqq及scim等;但軟體的原始碼可見並不等於軟體是開

Linux軟體原始碼包安裝問題解決方法

從原始碼包安裝軟體最重要的就是仔細閱讀README INSTALL等說明檔案通常從原始碼包安裝軟體的步驟是:tar jxvf gtk+-2.4.13.tar.bz2 解開原始碼包cd gtk+-2.4.13/ 進入原始碼目錄./configure 似乎在某些環境下./configure會造成終端退出而使用.

linux簡單編譯靜態庫編譯使用

庫函式,那麼一般來說庫函式分為兩種方式:靜態庫和動態庫。兩者的區別其實很小,靜態庫是必須要連結到執行檔案中去的,而動態庫是不需要連結到最後的執行檔案中的。怎麼理解呢?也就是說,對於最後的執行檔案而言,

OpenSSL在Win7 64位編譯安裝

由於工作原因,想編寫個基於OpenSSL的Server端用於測試,但沒想到安裝OpenSSL會那麼的艱難…… 首先,在Windows下安裝OpenSSL有兩種方法: 1、懶人版:OpenSSL官網沒有提供windows版本的安裝包,可以選擇其他開源平臺提供的

Linux 軟體包的安裝,壓縮,解壓(詳細)

1、已經編譯打包好的xxx.rpm    如果你的Linux系統帶有安裝程式,最好用系統自帶的安裝程式來安裝。比如 SuSE的YaST2就帶有安裝程式,在KDE環境下只要是rpm,就可以在Konqueror裡面點選再“Install with YaST2”,這樣做的好處是Ya

解決linuxjdk版本安裝版本不一致

在linux下安裝jdk後,利用java -version檢視版本使,發現不是自己所安裝的jdk版本,此時,不要著急,請看如下解決辦法: which java ——檢視預設的jdk安裝路徑 加

編譯Boost庫】Linux如何編譯安裝Boost庫

前言 編譯比特幣錢包時,需要依賴Boost庫,由於編譯時間較長,在“試一試”中浪費好長時間,所以把可以成功的過程記錄下來吧。 下載Boost安裝包 通過wget工具下載 wget https://dl.bintray.com/boostorg/r

Linux 環境 PHP 擴展的變異編譯安裝

font spa mysql 所有 sqli 技術 php 操作 size (操作系統 Centos7, 已安裝 mysqli 為例) 1,進入到 PHP 解壓後的源碼包的的 ext 文件夾 2,查看是否存在 mysqli 擴展 => ls 3,這裏既是所有 PHP

Linuxmemcache編譯安裝基本使用

清空 .tar.gz 報錯 關閉window eas -- 編譯 url 圖片 memcache是一套分布式的高速緩存系統,特點為key-value 存儲 一、在 linux 編譯安裝memcache、redis等,需要 gcc,make,cmake,autoconf,

(Ubuntu系列)——Linux軟體安裝解除安裝(命令列模式)

關於軟體的形式: Linux下是除了二進位制形式的軟體分發外,還有原始碼形式的軟體包,講一講這些軟體的安裝與解除安裝: 一、二進位制分發軟體包的安裝與解除安裝 linux軟體的二進位制分發是指事先已經編譯好二進位制形式的軟體包的釋出形式,其優點是安裝使

Linuxtomcat6.0jdk安裝

可執行 tomcat6 環境變量 /var/ serve 兩個 所在 開機自啟動 完成後 Linux下tomcat6.0與jdk安裝 步驟如下: 1、 上傳apache-tomcat-6.0.37.tar.gz和jdk-6u13-linux-i586.bin至/usr/lo

Linux軟件的安裝管理

linux軟件安裝方式一、源碼安裝方式: 1.下載、解壓源碼包通常源碼包的格式:".tar.gz"、".tar.bz2"2.分析安裝平臺環境./configure 後面可以加上軟件的安裝路勁以及所需模塊選項3.編譯、安裝軟件在執行./configure通過後,會在當

(轉)linux查看已安裝的軟件卸載

用戶 inux all dpkg 幫助 int ray 圖形界面 工具 因為linux安裝軟件的方式比較多,所以沒有一個通用的辦法能查到某些軟件是否安裝了。總結起來就是這樣幾類: 1、rpm包安裝的,可以用rpm -qa看到,如果要查找某軟件包是否安裝,用 rpm -qa

Linux軟體安裝軟體,Linux

Debian/Ubuntu apt-get dpkg aptitude aptitude命令與apt-get命令一樣,都是Debian Linux及其衍生系統中功能極其強大的包管理工具。與apt-get不同的是,aptitude在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時

Linux 搭建第三方軟體安裝軟體

一.搭建第三方軟體庫 原材料: 1.Linux 系統 2.第三方軟體包 (1)檢視存放第三方軟體包目錄的位置: pwd /software/ (2)root 使用者下新建/software 存放第三方軟體包: mkdir /software (3)將下載的軟體包存

Linux原始碼編譯安裝mariadb資料庫

環境:centos7 準備:mariadb-10.2.18.tar 資料庫安裝包 [[email protected] ~]# rz Transferring mariadb-10.2.18.tar.gz... 第一步: 建立mysql使用者 [[email 

Linux軟體安裝

編譯dbus下載地址 :http://dbus.freedesktop.org/releases/dbus/tar zxvf dbus-1.10.0echo ac_cv_have_abstract_sockets=yes>arm-linux.cache./configure --prefix=/opt/

同學們自行調研Linux軟體安裝的幾種方式(原始碼安裝, rpm安裝, yum安裝). 重點要理解rpm安裝和yum安裝的區別.

一、原始碼安裝 原始碼安裝的步驟就是:編譯原始碼,然後安裝 1.1 安裝準備 a. 首先用yum安裝gcc,用於編譯原始碼 b. 官網下載原始碼包 c. winSCP windows與linux傳輸檔案(如果直接用要安裝軟體的linux電腦下載就不用傳輸了) 1

linuxPHP編譯安裝程式碼踩過的坑解決

坑1:編譯之前需要:需要安裝gcc 和 autoconfig,要不然安裝編譯不成功的!(如果系統有就不需要安裝了!) 坑2:解壓出來的PHP檔案裡的php.ini xxx 複製到在編譯PHP目錄下etc下。 坑3:如果php.ini 不生效,用命令  php -i | g

Linux軟體安裝常識

前言:當我們學習一個系統的時候,安裝解除安裝檢視軟體位置是一個必不可少且重要的環節,這裡就在這記下一些Linux下安裝軟體的一些知識。 Linux下有兩種軟體包的管理機制:1.Deb軟體包和Rpm軟體包。這裡詳細講解Deb軟體包的一些知識。 軟體包的命名 分別對應軟體報的名稱,