第一節 軟件包管理簡介
1.軟件包分類
1)源碼包
腳本安裝包
2)二進制包
系統默認包,對于redhat系列是rpm包,對于debian系列是deb包
2.源碼包的優點
開源,如果有足夠的能力,可以修改源代碼
可以自由選擇所需的功能
軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高
卸載方便
3.源碼包的缺點
安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境的搭建),容易出現拼寫錯誤
編譯過程時間較長,安裝比二進制安裝時間長
因為是編譯安裝,安裝過程中一旦報錯新手很難解決
4.二進制包的優點
包管理系統簡單,只通過幾個命令就可以實現包的安裝,升級,查詢和卸載
安裝速度比源碼包安裝快的多
5.二進制包的缺點
經過編譯,不再可以看到源代碼
功能選擇不如源代碼靈活
依賴性
第二節 RPM包管理-rpm命令管理
1.RPM包命名規則
httpd-2.2.15-15.e16.centos.1.i686.rpm
httpd? ? ? ? ??? ?? 軟件包名
2.2.15? ? ? ? ? ?? 軟件版本
15? ? ? ? ? ? ? ? ??? 軟件發布次數
el6.centos? ??? 適合的Linux平臺
i686? ? ? ? ? ?????? 適合的硬件平臺
rpm? ? ? ? ? ?????? ? rpm包擴展名
2.RPM包依賴性
樹形依賴:a->b->c
環形依賴:a->b->c->a
模塊依賴:模塊依賴查詢網站:www.rpmfind.net
3.包全名與包名
包全名:操作的包是沒有安裝的軟件包時,使用包全名,而且要注意路徑
包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm/中的數據庫
4.RPM包安裝
rpm -ivh 包全名
選項:
-i(install)????????? 安裝
-v(verbose)???? 顯示詳細信息
-h(hash)? ? ????? 顯示進度
--nodeps? ? ???? 不檢測依賴性
5.RPM包升級
rpm -Uvh 包全名
選項:
-U (upgrade)? ? ? ? ? ? 更新
6.RPM包卸載
rpm -e 包名
選項:
-e(erase)? ? ? ???????????? 卸載
--nodeps? ? ? ???????????? 不檢測依賴性
7.RPM包查詢
1)查詢是否安裝
rpm -qa? 包名
選項:
-q(query)? ? ? ? ? ? ? ? ? ? ? 查詢
-a(all)? ? ? ? ? ????????????????? 所有
2)查詢軟件包詳細信息
rpm -qi? 包名
選項 :
-i(information)? ???????????? 查詢軟件信息
-p(package)? ? ? ??????????? 查詢未安裝包信息(后面加包全名)
3)查詢包中文件安裝位置
rpm -ql 包名
選項:
-l(list)? ? ? ? ? ???????? ? ? ? ? ??? 列表
-p(package)? ? ? ????????????? 查詢未安裝包信息(后面加包全名)
注意:安裝位置和文件信息是組建包的時候就確定好的,所以可以查詢未安裝的包。
4)查詢系統文件屬于哪個RPM包
rpm -qf 系統文件名
選項 :
-f(file)? ? ? ? ? ??????? ? ????????? 查詢系統文件屬于哪個軟件包
5)查詢軟件包的依賴性
rpm -qR 包名
選項 :
-R????????????????????????? ? ? ? ? ?? 查詢軟件包的依賴性(requires)
-p????????????????????????? ? ????????? 查詢未安裝包信息(package)
8.RPM包校驗
rpm -V 已安裝的包名
選項:
-V(verify)? ? ? ? ? ? ? ? ? ? ????? 校驗指定RPM包中的文件
驗證內容中的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)
9.RPM包中文件提取(主要用于修補誤刪除的文件)
rpm2cpio 包全名 | cpio -idv . 文件絕對路徑? 從相應的軟件包中提取文件保存至當前目錄下
rpm2cpio 將rpm包轉換為cpio格式的命令
cpio 是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件
cpio 選項 <[文件|設備]>
選項 :
-i?????????????????????????????????? copy-in模式,還原
-d????????????????? ? ????????????? 還原時自動新建目錄
-v????????????????????????????????? 顯示還原過程
命令實例
rpm -qf /bin/ls? ????????? ? 查詢ls命令屬于哪個軟件包
mv /bin/ls /tmp/?????????? 造成ls命令誤刪除的假象
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls? ? ? ? 提取RPM包中ls命令到當前目錄的/bin/下
cp /root/bin/ls /bin/? ???????? ? 把ls命令復制到/bin/目錄下,修復丟失文件
第三節 RPM包管理-yum在線命令管理
1.IP地址配置
setup? 使用setup工具
vi /etc/sysconfig/network-scripts/ifcfg-eth0
將ONBOOT="no"改為ONBOOT="yes"
service network restart
2.網絡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????????????????????? 數字證書的公鑰文件保存位置。不用修改
3.常用yum命令(yum命令中無包名和全名相關的命令)
1)查詢
yum list????????????????????? 查詢所有可用的軟件包列表
yum search?????????????? 關鍵字? 搜索服務器上所有和關鍵字相關的包
2)安裝
yum -y install 包名
選項:
install ? ? ? ? ? ? ? ? ? ? ? ?? 安裝
-y? ? ???????????????????????????? 自動回答yes
3)升級(輕易不要使用,容易宕機)
yum -y update 包名
選項:
update????????????????????????? 升級
-y? ???????????????????????????????? 自動回答yes
4)卸載(輕易不要使用,容易宕機)
yum -y remove 包名
選項:?
remove????????????????????????? 卸載
-y? ? ??????????????????????????????? 自動回答yes
注意:盡量最小化安裝,不要使用yum更新和卸載,容易出問題
5)yum軟件組管理命令
yum grouplist?????????????? 列出所有可用的軟件組列表
yum groupinstall ? ? ? ? 安裝指定的軟件組,組名可以由grouplist查詢出來
yum groupremove ? ? ? 卸載指定軟件組
4.光盤yum源搭建
光盤yum源搭步驟
1)掛載光盤
mount /dev/cdrom /mnt/cdrom/
2)讓網絡yum源失效
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Valut.repo.bak
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
第四節 源碼包安裝管理
1.區別
安裝之前的區別:概念上的區別
安裝之后的區別:安裝位置不同
2.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/httpd start?????????? 手動啟動
service httpd start????????????????????? 智能啟動
service到默認的安裝路徑中尋找并執行相關文件,是服務管理命令
注意:源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到默認的路徑中,所以只能用絕對路徑進行服務管理
/usr/local/apache2/bin/apachectl start
5.安裝準備
安裝C語言編譯器
下載源碼包
6.安裝注意事項
源代碼保存位置 /usr/local/src/
軟件安裝位置 /usr/local
如何確定安裝過程報錯 安裝過程停止,并出現error,warning或no的提示
7.源碼包安裝過程
解壓縮下載的源碼包
進入解壓縮目錄
兩個關鍵文件:INSTALL 安裝說明文件 README 使用說明文件
./configure 軟件配置與檢查
定義需要的功能選項
檢測系統環境是否符合安裝要求
把定義好的功能選項和檢測系統環境變量的信息都寫入Makefile文件,用與后續的編輯
make???????????????????????????? 編譯
make clean????????????????? 清空產生的臨時文件
make install???????????? ? ? 編譯安裝
源碼包的卸載 不需要卸載命令,直接刪除安裝目錄即可,不會遺留任何垃圾文件
8.腳本安裝包
腳本安裝包并不是獨立的軟件包類型,常見安裝的是源碼包
是認為把安裝過程寫成了自動安裝的腳本,只要執行腳本,定義簡單的參數,就可以完成安裝
非常類似與Windows下軟件安裝方式
9.Webmin的作用
Webmin是一個基于Web的linux系統管理界面,您可以通過圖形化的方式設置用戶帳號,Apache,DNS,文件共享等服務
10.Webmin安裝過程
下載軟件
解壓縮,并進入解壓縮目錄
執行安裝腳本