Linux軟件安裝管理
1、軟件包管理簡介
1.軟件包分類
源碼包
- 腳本安裝包
二進制包(RPM包、系統默認包)
2.源碼包
源碼包的優點是:
- 開源,如果有足夠的能力,可以修改源代碼
- 可以自由選擇所需要的功能
- 軟件設計編譯安裝,所以更加適合自己的系統,更加穩定有效
- 卸載方便
源碼包的缺點:
- 安裝過程步驟較多,尤其是安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤
- 編譯過程時間較長,安裝比二進制安裝時間長
- 因為是編譯安裝,安裝過程中一旦報錯新手很難解決
3.RPM包
二進制包的優點:
- 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
- 安裝速度比源碼包安裝快的多
二進制包缺點:
- 經過編譯,不再可以看到源代碼
- 功能選擇不如源碼包靈活
- 依賴性
4.腳本安裝包
所謂的腳本安裝包,就是把復雜的軟件包安裝過程寫成了程序腳本,初學者可以執行程序腳本實現一鍵安裝。但實際安裝的還是源碼包和二進制包。
優點:安裝簡單、快捷
缺點:完全喪失了自定義性
2、rpm命令管理
Red Hat Package Manager/RPM 紅帽軟件包管理器
RPM包命名規則
1.RPM包的來源
RPM包在系統光盤中
2.RPM包命名原則
httpd-2.2.15-15.el6.centos.1.i686.rpm
- httpd 軟件包名
- 2.2.15 軟件版本
- 15 軟件發布的次數
- el6.centos 適合的Linux平臺
- i686 適合的硬件平臺
- rpm rpm擴展名
3.RPM包依賴性
樹形依賴:a -> b -> c
環形依賴:a -> b -> c -> a
模塊依賴:模塊依賴,查詢網站:www.rpmfind.net
安裝命令
1.包全名與包名
包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要註意路徑。
包名:操作已經安裝的軟件包時,使用包名,是搜索/var/lib/rpm/中的數據庫。
2.RPM安裝
rpm -ivh 包全名
選項:
- -i(install) 安裝
- -v(verbose) 顯示詳細信息
- -h(hash) 顯示進度
- --nodeps 不檢測依賴性
升級與卸載
1、RPM包升級
rpm -Uvh 包全名
選項:
- -U(upgrade) 升級
2.卸載
rpm -e 包名
選項:
- -e(erase) 卸載
- --nodeps 不檢查依賴性
RPM包查詢
1.查詢是否安裝
rpm -q 包名
# 查詢包是否安裝
- -q 查詢(query)
rpm -qa
# 查詢所有已經安裝的RPM包
- -a 所有(all)
rpm -qa | grep httpd
2.查詢軟件包詳細信息
rpm -qi 包名
選項:
- -i 查詢軟件信息(information)
- -p 查詢未安裝包信息(package)
3.查詢包中文件安裝位置
rpm -ql 包名
選項:
- -l 列表(list)
- -p 查詢未安裝包信息(package)
RPM包默認安裝位置
RPM包默認安裝路徑 | |
---|---|
/etc/ | 配置文件安裝目錄 |
/usr/bin | 可執行的命令安裝目錄 |
/usr/lib/ | 程序所使用的函數庫保存位置 |
/usr/share/doc | 基本軟件使用手冊保存位置 |
/usr/share/man/ | 幫助文件保存位置 |
4、查詢系統文件屬於哪個RPM包
rpm -qf 系統文件名
選項:
- -f 查詢系統文件屬於哪個軟件包(file)
5、查詢軟件包的依賴性
rpm -qR 包名
選項:
- -R 查詢軟件包的依賴性(requires)
- -p 查詢未安裝包信息(package)
RPM包校驗
1、RPM包校驗
rpm -V 包名
驗證內容中的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)
2、RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件絕對路徑
- rpm2cpio
# 將rpm包轉換為cpio格式的命令 - cpio
# 是一個標準工具,它用於創建軟件檔案文件和從檔案文件中提取文件
[[email protected] ~]# cpio 選項 < [文件|設備]
選項:
- -i :copy-in模式,還原
- -d :還原時自動新建目錄
- -v :顯示還原過程
rpm -qf /bin/ls # 查詢ls命令屬於哪個軟件包 mv /bin/ls /tmp/ # 造成ls命令誤刪除現象 rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls # 提取RPM包中ls命令到當前目錄的/bin/ls下 cp /root/bin/ls /bin/ # 把ls命令復制回/bin/目錄,修復文件丟失
3、yum在線管理
RPM包缺點:安裝過程中,rpm包的依賴性太強。如果所有rpm包都是手工安裝,則rpm包使用難度較大。
yum優點:將所有包放到官方服務器上,當進行yum在線安裝時,可以自動解決依賴性問題。
yum缺點:Red Hat的yum在線安裝需要付費
1.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 數字證書的共鑰文件保存位置。不用修改
2.光盤搭建yum源
1.掛載光盤
mkdir /mnt/cdrom # 建立掛載點 mount /dev/cdrom /mnt/cdrom # 掛載光盤
2.使網絡yum源失效
cd /etc/yum.repos.d/ # 進入yum源目錄 mv CentOS-Base.repo CentOS-Base.repo.bak # 修改yum源文件後綴名,使其失效
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 # 把enabled=0改為enabled=1,讓這個yum源配置文件生效 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
3.yum命令
1.常用yum命令
(1)查詢
yum list # 查詢所有可用軟件包列表 yum search 關鍵字 # 搜索服務器上所有和關鍵字相關的包
(2)安裝
yum -y install 包名 選項: - install 安裝 - -y 自動回答yes 例如:yum -y install gcc
(3)升級
yum -y update 包名 選項: - update 升級 - -y 自動回答yes
(4)卸載
yum -y remove 包名 選項: - remove 卸載 - -y 自動回答yes
服務器使用最小化安裝,用什麽軟件安裝什麽,盡量不卸載
2.yum軟件組管理命令
yum grouplist # 列出所有可用的軟件組列表 yum groupinstall 軟件組名 # 安裝指定軟件組,組名可以由grouplist查詢出來 yum groupremove 軟件組名 # 卸載指定軟件組
4、源碼包管理
1.源碼包和RPM包的區別
區別
安裝之前的區別:概念上的區別
安裝之後的區別:安裝位置不同
RPM包安裝位置
是安裝在默認位置中
rpm安裝可以指定安裝位置,但是不建議指定安裝位置
[[email protected] ~]# rpm --help | grep prefix --prefix=<dir> relocate the package to <dir>, if
源碼包安裝位置
安裝在指定位置當中,一般是: /usr/local/軟件名/
源碼包沒有卸載命令
安裝位置不同帶來的影響
RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝的apache的啟動方法是:
- /etc/rc.d/init.d/httpd start
- service httpd start(RedHat 專有方法)
源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到默認路徑中。所以只能用絕對路徑進行服務的管理,如:
- /usr/local/apache2/bin/apachectl start
2.源碼包安裝過程
1.安裝準備
安裝C語言編譯器
下載源碼包:使用httpd-2.2.34沒有報錯
http://mirror.bit.edu.cn/apache/httpd
2.安裝註意事項
源代碼保存位置:/usr/local/src/
軟件安裝位置:/usr/local/
如何確定安裝過程報錯:
安裝過程停止 並出現error、warning或no的提示
3.源碼包安裝過程
下載源碼包
解壓縮下載的源碼包
進入解壓縮目錄
- /configure 軟件配置與檢查
- 定義需要的功能選項。
- 檢測系統環境是否符合安裝要求。
- 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編輯。
- [[email protected] httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
make 編譯 make clean make install 編譯安裝 /usr/local/apache2/bin/apachectl start
RPM包網頁位置 /var/www/html/
源碼包網頁位置 /usr/local/apache2/htdocs/
4.源碼包的卸載
不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件。
5、腳本安裝
腳本安裝的筆記將在之後進行更新!
Linux軟件安裝管理