歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux軟件 >> Linux軟件包管理詳述

Linux軟件包管理詳述

日期:2017/2/28 13:47:02   编辑:Linux軟件

一 在Linux系統中,軟件包分為兩類,源碼包和二進制包(我的環境是CentOS,所以二進制包是RPM包)
源碼包的優點:
1 開源,如果有足夠的能力,可以修改源代碼
2 可以自由選擇所需的功能
3 軟件是編譯安裝,根據經驗,服務效率會比RPM包高一些
4 卸載方便,直接刪除安裝路徑即可。
源碼包的缺點:
1 安裝過程步驟較多,尤其是安裝較大的軟件集合時(LAMP),容易出錯
2 編譯過程較長,源碼包安裝時間比RPM包要長很多
3 因為是編譯安裝,一旦安裝過程中報錯,新手很難解決

二進制包的有點:
1 包管理系統簡單,只需要幾個簡單明了就可以實現RPM包安裝,升級,查詢,卸載
2 安裝速度比源碼包快很多
二進制包的缺點:
1 經過編譯,不能再看到源代碼
2 功能選擇不如源碼包靈活
3 依賴性(這個很頭大,後面會舉例子說明)

二 RPM包管理-rpm命令管理
1 先來看看包命名規則,我們首先看ISO鏡像裡的,先創建一個掛載目錄,然後掛載鏡像

然後進入/temp/cdrom目錄,就可以看到ISO鏡像裡的文件了,其中Packages全都是RPM包

我們拿Apache的rpm做例子來看一下
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd 軟件包名
2.2.15 軟件版本
15 軟件發布的次數
e16.centos 適合的linux平台
i686 適合的硬件平台
rpm rpm包擴展名
如果在安裝的時候遇到了rpm包依賴,就需要先安裝依賴包,如果遇到了模塊依賴,也就是這個依賴是其他rpm包的一部分,那麼就需要到http://www.rpmfind.net/網站進行查詢,根據模塊名查rpm包名

2 RPM包安裝
rpm -ivh 包全名
選項:
-i(install) 代表安裝
-v(verbose)代表顯示詳細信息
-h(hash) 顯示進度
下面我們來安裝Apache的rpm包

我們看到報錯了,表示需要先安裝這些依賴包,那我們先安裝apr-util-ldap

又需要apr-util,這些依賴非常多,我在這裡就不一一演示了,大家肯定覺得很煩了,那麼有沒有更簡單的方法呢,yum在線管理就可以很好的解決這個問題,不需要我們去操心這些依賴包,而是一次性幫我們裝好,後面再說

3 RPM包升級
rpm -Uvh 包全名
-U(upgrade) 升級,由於我們直接拿到的是ISO鏡像裡的包,這裡就不演示升級了,跟安裝是類似的

4 RPM包卸載
rpm -e 包名,注意,這裡不需要加包的全名了,只需要加包名即可,Linux用數據庫來維護這些包名

5 查詢是否安裝
rpm -q 包名

我們發現剛剛的httpd是沒有安裝成功的
rpm -qa
查詢所有已經安裝的RPM包

6 查詢軟件包的詳細信息
rpm -qi 包名
-i查詢軟件信息
-p查詢未安裝包信息
7 查詢包中文件安裝位置
rpm -ql 包名
-l列表
-p 查詢未安裝包信息
8 查詢系統文件屬於哪個rpm包
rpm -qf 包名
-f查詢文件屬於哪個rpm包
9 查詢軟件包的依賴
rpm -qR 包名

三 RPM包管理-yum在線管理
1 網絡yum源

我們進入到/etc/yum.repos.d/中,其實CentOS-Base.repo就是網絡yum源的內容
我們打開看一下

【base】 容器名稱
name 容器說明
mirrorlist 鏡像站點,這個可以注釋掉
baseurl 我們yun源服務器的地址,默認是CentOS官網的yum源地址,是可以使用的,如果覺得慢,可以改成國內yum源地址
enabled 此容器是否生效,如果不寫或者=1生效,=0 不生效

2 yum list 查詢所有軟件包列表

3 yum search 關鍵字
搜索服務器上所有和關鍵字相關的包

4 yum -y install 包名
install 安裝
-y 自動回答yes
5 yum -y update 包名
update 升級
-y 自動回答yes
6 yum -y remove 包名
remove 卸載
-y 自動回答yes
除了CentOS服務器可以做為yum源,我們還可以把我們的鏡像ISO做為yum源,就在剛剛那個路徑下的 CentOS-Media.repo,要想讓這個生效,需要將其他三個重名,

然後修改CentOS-Media.repo

我們輸入yum list ,發現生效了

四 源碼包管理
還是先說下源碼包和RPM包的區別,安裝位置不同

而源碼包安裝位置,一般在 /usr/local/軟件名/
RPM包安裝的服務可以使用系統服務管理命令service來管理,比如
service httpd start
但是源碼包只能用絕對路徑
/usr/local/apache2/bin/apachertl start

好了,下面說源碼包的安裝,我們先在windows下下載http://mirror.bit.edu.cn/apache/httpd/
下載好後,通過winscp這個工具,把這個文件從windows傳到linux中

好了,源碼包已經有了,然後解壓縮

先要執行./configure 軟件配置與檢查
1 定義需要的功能選項
2 檢測系統環境是否符合安裝要求
3 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編輯

make 編譯
make clean
make install 編譯安裝
我這裡環境報錯了,這步沒辦法演示了,總之是相比RPM二進制包慢很多的,如果想卸載,直接刪除安裝目錄即可,不會遺留任何垃圾文件

五 腳本安裝包
1腳本安裝包並不是獨立的軟件包類型,常見安裝的是源碼包
2 是人為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝
3 非常類似於Windows下軟件的安裝方式,這個就不演示了

好了,Linux軟件包管理就總結到這裡,繼續兄弟連Linxu之旅,如有問題,歡迎指正,謝謝。

Copyright © Linux教程網 All Rights Reserved