1. 程式人生 > >Linux軟件安裝管理

Linux軟件安裝管理

ack rpm命令管理 make 安裝位置 校驗 主從 包管理系統 har 文件類型

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軟件安裝管理