Linux軟件安裝——軟件包管理簡介
一、軟件包分類
- 源碼包:
->腳本安裝包(比較少) - 二進制包(RPM包、系統默認包)
二、源碼包:
源碼包的優點是:
- 開源,如果又足夠的能力,可以修改源代碼
- 可以自由選擇所需的功能
- 軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率高
- 卸載方便
源碼包的缺點是:
- 安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤
- 編譯過程時間長,安裝比二進制安裝時間長
- 因爲是編譯安裝,安裝過程一旦報錯新手很難解決
三、RPM包
二進制包的優點:
- 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
- 安裝速度比源碼包安裝快得多
二進制包的缺點:
- 經過編譯,不可以再看到源代碼
- 功能選擇不如源代碼靈活
- 依賴性
四、RPM管理——rpm命令管理
(一)RPM包命名規則
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd 軟件包名
2.2.15 軟件版本
15 軟件發佈的次數
e16.centos 適合的Linux平臺
i686 適合的硬件平臺
rpm rpm包擴展名
(二)RPM包依賴
- 樹形依賴
- 環形依賴
- 模塊依賴:模塊依賴查詢網站: www.rpmfind.net
(三)包全名與包名
- 包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑。
- 包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm/中的數據庫
(四)RPM安裝
rpm -ivh 包全名
選項:
-i(install) 安裝
-v(verbose) 顯示詳細信息
-h(hash) 顯示進度
--nodeps 不檢測依賴性
(五)RPM包升級
rpm -Uvh 包全名
選項:
-U(upgrade) 升級
(六)RPM包卸載
rpm -e 包名
選項:
-e(erase) 卸載
--nodeps 不檢測依賴性
(七)RPM查詢
- 查詢是否安裝
rpm -q 包名
-q(query) 查詢
rpm -aq 包名
-a(all); 查詢所有已經安裝的包 - 查詢軟件包詳細信息
rpm -qi 包名
-i(information); 查詢軟件信息
-p(package); 查詢未安裝包信息 - 查詢包中文軟件安裝位置
rpm -ql 包名
-l(list); 列表
-p(package); 查詢未安裝包信息 - 查詢系統文件屬於哪個RPM包
rpm -qf 系統文件名
-f(file); 查詢系統文件屬於哪個軟件包 - 查詢軟件包的依賴性
rpm -qR 包名
-R(require); 查詢軟件包的依賴性
-p(package); 查詢未安裝包信息
(八)RPM包校驗
rpm -V 已安裝包名
-V(verify); 校驗指定RPM包中的文件(verify)
驗證內容的8個信息的具體內容如下:
- S 文件大小是否改變
- M 文件的類型或文件的權限(rwx)是否改變
- 5 文件MD5校驗和是否改變(可以看成文件內容是否改變)
- D 設備的中,從代碼是否改變
- L 文件路徑是否改變
- U 文件的屬主(所有者)是否改變
- G 文件的屬組是否改變
- T 文件的修改時間是否改變
- 沒有修改用… 表示
文件類型:
- c 配置文件(config file)
- d 普通文檔(documentation)
- g "鬼“文件(ghost file),很少見,就是該文件不應該被這個RPM包包含
- l 授權文件(license file)
- r 描述文件(read me)
(九)RPM包中文件提取
- rpm2cpio 包全名(將rpm包轉換爲cpio格式的命令)
- cpio -idv .文件絕對路徑(是一個標準工具,它用於創建軟件檔案文件和從檔案文件中提取文件)
四、RPM管理——yum命令管理
(一)網絡yum源
$ vi /etc/yum.repos.d/CentOS-Base.repo
- [base] 容器名稱,一定要放在[]中
- name 容器說明,可以自己隨便寫
- mirrorlist 鏡像站點,這個可以註釋掉
- baseurl 我們的yum源服務器的地址。默認是CentOS官方的yum源服務器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地址
- enabled 此容器是否生效,如果不寫或寫成enable=1都是生效,寫成enable=0就是不生效
- gpgcheck 如果是1是指RPM的數字證書生效,如果是0則不生效
- gpgkey 數字證書的公鑰文件保存位置。不用修改
(二)yum查詢命令
- $ yum list #查詢所有可用軟件包列表
- $ yum search 關鍵字 #搜索服務器上所有和關鍵字相關的包
(三)yum安裝命令
- $ yum -y install 包名
- 選項:
install 安裝
-y 自動回答yes
(四)yum升級命令
- $ yum -y update 包名
- 選項:
update 升級
-y 自動回答yes
注:不要直接打 yum -y update
(五)yum卸載命令
- $ yum -y remove 包名
- 選項:
remove 卸載
-y 自動回答yes
注:沒事不要用yum卸載
(五)yum軟件組管理命令
- $ yum grouplist #列出所有可用的軟件組列表
- $ yum grouplist 軟件組名 #安裝指定軟件組,組名可以由grouplist查詢出來
- $ yum groupremove 軟件組名 #卸載指定軟件組
(五)光盤yum源搭建步驟
1)掛載光盤
- $ mount /dev/cdrom /mnt/cdrom/
2)讓網絡yum源文件失效
- $ cd /etc/yum.repos.d/
- $ mv CentOS-Base.repo \
- $ mv CentOS-Debuginfo.repo \
- $ mv CentOS-Vault.repo \
3)修改光盤yum源文件
- $ vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址爲你自己的光盤掛載地址
#file:///media/cdrom
#file:///media/cdrecorder/
#註釋這兩個不存在的地址
gpgcheck=1
enabled=1
#把enable=0改成enable=1,讓這個yum源配置文件生效
gpgkey=file:///etc//pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
(六)源碼包安裝管理
1) 區別
- 安裝之前的區別:概念上的區別
- 安裝之後的區別:安裝位置不同
2)RPM包安裝位置
- | RPM包默認安裝路徑 |
---|---|
/etc/ | 配置文件安裝目錄 |
/usr/bin | 可執行的命令安裝目錄 |
/usr/lib/ | 程序所使用的函數庫保存位置 |
/usr/share/doc/ | 基本的軟件使用手冊保存位置 |
/usr/share/man/ | 幫助文件保存位置 |
3)源碼包安裝位置
- 安裝在指定位置當中,一般是 usr/local/軟件名/
4)安裝位置不同帶來的影響
- RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的apache的啓動方法是:
/etc/rc.d/init.d/http start
service httpd start - 而源碼包安裝的服務則不能被服務管理命令管理,因爲沒有安裝到默認路徑中,所以只能用絕對路徑進行服務管理,如:
/usr/local/apche2/bin/apachectl start
(七)源碼包安裝過程
1)安裝準備
- 安裝C語言編譯器
- 下載源碼包(http://mirror.bit.edu.cn/apche/htpd/)
2)安裝注意事項
- 源碼包保存位置: /usr/local/src/
- 軟件安裝位置: /usr/local/
- 如何確定安裝過程報錯:
安裝過程停止
並出現error、warning或no的提示
3)源碼包安裝過程
- 下載源碼包
- 解壓縮下載的源碼包
- 進入解壓縮目錄
- ./configure 軟件配置與檢查
- 定義需要的功能選項
- 檢測系統環境是否符合要求
- 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編輯 - make 編譯
make clean 清空文件 - make install 編譯安裝
4)源碼包的卸載
源碼包的卸載只要卸載目錄下的文件,不會遺留其他問題。
(八)腳本安裝包
1)腳本安裝包
- 腳本安裝包並不是獨立的軟件包類型,常見安裝的是源碼包
- 是人爲把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝
- 非常類似Window下軟件的安裝方式
2)Webmin的作用
- Webmin是一個基於Web的Linux系統管理界面。你就可以通過圖形化的方式設置用戶賬號、Apache、DNS、文件共享等服務。
3)Webmin安裝過程
- 下載軟件
http://sourceforge.net/projects/webadmin/files/webmin/ - 解壓縮,並進入加壓縮目錄
$tar -zxvf webmin-1.610.tar.gz
$cd webmin-1.610 - 執行安裝腳本
$./setup.sh