關於Linux軟件包安裝
Linux下的軟件包安裝分兩大類,一種是二進制方法安裝,另一種是源代碼方式安裝。
我們先來說二進制方法安裝。二進制安裝相對於源代碼是很簡單的,因爲這些軟件廠商事先已經把源代碼編譯成了模塊的形式,我們可以直接通過工具來進行安裝即可。
二進制安裝
關於二進制方法安裝,在Linux下我們經常用的工具有兩種,一種是rpm工具,一種是yum。這兩種工具各有各的優點和長處。下面我們一一道來。
rpm工具:
rpm是RedHat Package Manager(RedHat軟件包管理工具)的縮寫。
rpm這類的包的格式一般都爲:軟件包名稱—版本號—修訂號.平臺.rpm
例如:httpd-2.2.15-26.el6.centos.x86_64.rpm 這是一個http的安裝包,它的版本號爲2.2.15。第一個2是主版本號,第二個2是次版本號,15代表的是末版本。要注意中間那個數字,中間這個數字如果是偶數的話代表這是一個通過測試後發行的穩定版,爲奇數的話代表是開發版。el6.centos.x86_64代表這個軟件適合在RHEL 6和centos 6的x86_64的機器上安裝運行
下面我們來講講如何使用rpm工具:
安裝:
基本安裝指令爲: rpm -ivh 軟件包名 (這個包名必須爲軟件包的全稱)。我們安裝一個http來演示一下:
在你所掛載的光盤中有個目錄裏邊兒放的是其自帶的所有軟件包
[root@server1 dev]# cd /media/cdrom/Packages/ //光盤掛載在了/media/cdrom下, Packages/ 裏包含了所有的軟件包
[root@server1 Packages]# ll http*
[root@server1 Packages]# ll |grep http
-r--r--r--. 2 root root 840792 Feb 24 2013 httpd-2.2.15-26.el6.centos.x86_64.rpm
-r--r--r--. 2 root root 153372 Feb 24 2013 httpd-devel-2.2.15-26.el6.centos.i686.rpm
-r--r--r--. 2 root root 153328 Feb 24 2013 httpd-devel-2.2.15-26.el6.centos.x86_64.rpm
-r--r--r--. 2 root root 801884 Feb 24 2013 httpd-manual-2.2.15-26.el6.centos.noarch.rpm
-r--r--r--. 2 root root 74100 Feb 24 2013 httpd-tools-2.2.15-26.el6.centos.x86_64.rpm
第一個爲我們我們所需要的包,接下來安裝http
[root@server1 Packages]# rpm -ivh httpd-2.2.15-26.el6.centos.x86_64.rpm
error: Failed dependencies:
httpd-tools = 2.2.15-26.el6.centos is needed by httpd-2.2.15-26.el6.centos.x86_64
我們發現它提示了錯誤。好,問題出來了。
error: Failed dependencies: 這個提示是我們使用rpm安裝軟件包時最常出現的,它提示的是什麼呢?
出現這個錯誤的原因是由於rpm包之間存在依賴性關係,導致rpm包無法一次性安裝。
那怎麼解決這個問題呢?
解決:按照報錯提示依次安裝存在依賴性關係的RPM包。
即安裝它所提示的需要安裝httpd-tools那個安裝包。
Rpm工具的其它命令參數:
rpm -e 卸載(只可以卸載本身不可以卸載存在依賴關係的軟件包)
-vh:顯示安裝進度;
-U:升級軟件包;
-qpl:列出RPM軟件包內的文件信息;
-qpi:列出RPM軟件包的描述信息;
-qf:查找指定文件屬於哪個RPM軟件包;
-Va:校驗所有的RPM軟件包,查找丟失的文件;
-qa: 查找相應文件,如 rpm -qa mysq
yum安裝
yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE、CentOS中的Shell前端軟件包管理器。基於rpm包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
比起rpm安裝yum則是容易方便的多了,yum最大的優點就是可以一次性解決這個軟件包所依賴的所有軟件包。Yum會自動爲你安裝依賴的包。
yum安裝的命令:yum --disablerepo=\* --enablerepo=c6-media install 軟件包名
例如:[root@server1 ~]# yum --disablerepo=\* --enablerepo=c6-media install httpd //yum安裝時不必輸入軟件包的全稱,只需要輸入包名就可以。
在安裝過程中我們可以看到安裝這個軟件包時它所依賴的包都有哪些,以及一些這些軟件包的大小等等。所以用yum安裝軟件包時是很方便的。
yum常用的命令
yum --disablerepo=\* --enablerepo=c6-media remove 軟件包名 (yum卸載可以卸載其所有存在依賴關係的軟件包)
源代碼安裝
比起二進制方法安裝,源代碼安裝就麻煩的多了。大致來說分爲五個步驟:
1.下載源碼
1.關於源碼我們一般都是從該軟件的官網去進行下載
2.拆包解壓縮
一般的源代碼包如 vsftpd-3.0.2.tar.gz 它的後綴名爲 .tar.gz 這是經過了先打包後壓縮形成的因爲tar可以打包多個文件而bzip2或gip等可以進行壓縮但是隻能壓縮一個文件,所以爲了網絡傳輸的方便對源代碼進行了打包再壓縮。
如果由tar+gip拆包的話我們直接使用 tar -zxvf 包名.tar.gz -C 解壓路徑
如果由tar+gip拆包的話我們直接使用 tar -jxvf 包名.tar.bz2 -C 解壓路徑
一般我們把源代碼解壓到/usr/local/src/ 目錄下
我們以vsftpd-3.0.2.tar.gz 這個軟件包爲例進行安裝。
拆包: [root@server1 ~]# tar -zxvf vsftpd-3.0.2.tar.gz -C /usr/local/src/ // /usr/local/src/ 這個目錄一般來存放解壓完後的源代碼
解壓完後我們可以看到許多以 .c .h結尾的文件,這就是一個軟件的源代碼。每一個軟件源代碼包裏都有一個名爲README或INSTALL的文件,這裏邊兒存放的有源代碼安裝這個軟件的步驟。
例如這個INSTALL這個文件裏邊兒的描述
這裏邊兒寫的有step1、step2 分別提示我們先創建一個目錄來解壓縮源代碼包。然後執行“builddefs.h” 再進行make編譯。但是在make之前我們得檢查自己的機子上有沒有預編譯環境。
3.配置
(1)檢測預編譯環境
在編譯源代碼前我們先要在本機上搭建好預編譯環境,安裝及幾個軟件組【】即可。
安裝完畢後,我們編譯源代碼時就能解決大部分錯誤了。
4.Make
5.Makefile