跳轉到內容

LPI Linux 認證/使用 RPM 和 YUM 包管理

來自華夏公益教科書

Red Hat 包管理器是一個強大的包管理器,可用於構建、安裝、查詢、驗證、更新和刪除單個軟體包。包由一個包含檔案和元資料的檔案組成,用於安裝和刪除檔案檔案。元資料包括輔助指令碼、檔案屬性和關於包的描述資訊。包有兩種型別:二進位制包,用於封裝要安裝的軟體,以及原始碼包,包含生成二進位制包所需的原始碼和配方。

詳細目標

[編輯 | 編輯原始碼]

(LPIC-1 版本 5.0)

權重:3

描述
考生應該能夠使用 RPM、YUM 和 Zypper 執行包管理。

關鍵知識領域

  • 使用 RPM、YUM 和 Zypper 安裝、重新安裝、升級和刪除軟體包。
  • 獲取有關 RPM 包的資訊,例如版本、狀態、依賴關係、完整性和簽名。
  • 確定軟體包提供的檔案,以及查詢特定檔案來自哪個軟體包。
  • 瞭解 `dnf`。

以下是被使用檔案的列表,這些檔案、術語和工具只是部分列出

  • rpm
  • rpm2cpio
  • /etc/yum.conf
  • /etc/yum.repos.d/
  • yum
  • zypper

Red Hat 包管理器

[編輯 | 編輯原始碼]

一些 Linux 發行版使用 rpm “Red Hat 包管理器” 來管理其所有發行版軟體。RPM 維持一個詳細的資料庫,其中包含系統中安裝的所有軟體的資訊。

要安裝 RPM 包,請執行

rpm -i [package].rpm

只有在滿足依賴關係並且與其他軟體包沒有衝突的情況下,才會安裝軟體包。要升級軟體包,請執行

rpm -U [package].rpm

舊軟體包版本的將被刪除,並由新檔案替換。要刪除 RPM 包,請執行

rpm -e [package].rpm

只有在沒有其他軟體包依賴它時,才能刪除軟體包。

RPM 查詢

[編輯 | 編輯原始碼]

使用 -q 選項,您可以查詢 RPM 資料庫或顯示有關包檔案的資訊。

您可以使用多個開關

  • -i: 獲取軟體包資訊
rpm -q -i apache
  • -l: 獲取軟體包的檔案列表。
$ rpm -q -l pciutils
/sbin/lspci
/sbin/setpci
/usr/share/doc/package/pciutils
...
/usr/share/pci.ids
  • -f file: 查詢檔案所屬的軟體包。
$ rpm -q -f /sbin/lspci
pciutils-2.1.9-58
  • -s: 帶有狀態資訊的 檔案列表。
  • -d: 僅列出文件檔案。
  • -a: 列出所有已安裝的軟體包。

如果您要顯示有關包檔案的資訊,可以使用 -p 開關指定檔名

rpm -q -i -p [package].rpm

RPM 命令

[編輯 | 編輯原始碼]

要獲取有關軟體包或程式的一般資訊,請使用 rpmlocate。

rpmlocate ipcs -q -i apache

在 rpm 資料庫中搜索 ipcs

util-linux-2.11n-75:
/usr/bin/ipcs
/usr/share/man/man8/ipcs.8.gz

要列出所有已安裝的軟體包,請使用 rpmqpack

rpmqpack

或者使用

rpm -qa


原始碼安裝

[編輯 | 編輯原始碼]

RPM 原始碼檔案通常具有 package.src.rpm 格式,並且可以像二進位制檔案一樣安裝。它們將從 /usr/src/packages 目錄安裝的目錄是

  • SOURCES: 用於原始原始碼。
  • SPECS: 用於控制構建過程的 .spec 檔案。
  • BUILD: 所有原始碼都在此目錄中構建。
  • RPMS: 完整的二進位制軟體包儲存在此處。
  • SRPMS: 原始碼。

要安裝軟體包的原始碼,請執行

$ rpm -i mypack.src.rpm

原始碼檔案將儲存在 /usr/src/packages 中,位於 SPEC 和 SOURCES 目錄中。要編譯原始碼,請執行

$ rpm -ba /usr/src/packages/SPECS/mypack.spec

編譯結果將儲存在 BUILD 目錄中

  1. apache 包是否已安裝?
  2. /bin/ls、/usr/sbin/tcpdump 和 /sbin/ifconfig 檔案位於哪個包中?
  3. 從軟盤安裝 pci 工具和 grub 軟體包。構建二進位制檔案並嘗試執行它們。原始碼應該位於 /usr/src/packages/BINARY 目錄中。
華夏公益教科書