(六)軟件包管理

第一節 軟件包管理簡介

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安裝過程

下載軟件

解壓縮,并進入解壓縮目錄

執行安裝腳本

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容