rpm 程序包管理器的基本使用

目錄


  1. 安裝程序包

  2. 卸載

  3. 升級

  4. 查詢

  5. 校驗

  6. 來源合法性和完整性驗證

  7. 數據庫重建

rpm 程序包管理器的基本使用

1     安裝程序包

rpm -ivh /path/to/package_file

-v     顯示執行過程的參數。
-h     使用 # 來表示安裝進度。

>>  –test選項

可以用來僅測試是否可以安裝,而不是真的安裝這個 rpm 包。

>> 依賴關系

如果安裝的程序,有許多有依賴關系的包需要安裝。我們則需要先解決依賴關系,才能安裝這個程序包。

當然我們也可以忽略依賴關系(參數:–nodeps)。但該方法可能會導致安裝程序無法運行。

>> 重新安裝(–replacepkgs)

如果配置文件被修改過,則不會被替換。新生成的配置文件被另存為.new 

2     卸載程序包

rpm -ev  package_name

## 這里就不需要路徑了,直接指定程序包名,即可卸載

>> 依賴關系

如果想要卸載的 rpm 包,被其他包依賴。則,我們可以將依賴與此包的所有包一并卸載。

同樣,我們可以使用 –nodeps 參數忽略依賴關系,強行卸載此包。

注意,如果包的配置文件被修改過,那么卸載時,這個修改過的配置文件不會被卸載,而是重命名后保留。

3     升級程序包

也就是新版本,替代老版本。(不應該對內核執行升級操作。)

rpm -U | -F   /path/to/package_file

-U     升級或安裝
-F     純升級(需要有老版本程序)

>> 依賴關系

對于被依賴的包,升級之后可能導致版本沖突。我們可以使用 –force 強行升級。當然同樣會產生問題。

4     查詢

>> 查詢某包是否安裝

rpm -q package_name
[root@localhost Packages]# rpm -q php
package php is not installed

## 可以一次查詢多個,用空格隔開。

>> 查詢所有已安裝的包

rpm -qa

## 查詢結果,可以通過 grep 進一步篩選

>> 查詢程序包描述信息(已安裝)

[root@localhost Packages]# rpm -qi bash
Name        : bash                         Relocations: (not relocatable)
Version     : 4.1.2                             Vendor: CentOS
Release     : 15.el6_4                      Build Date: Thu 18 Jul 2013 06:21:24 AM PDT
Install Date: Sat 17 Oct 2015 03:10:09 PM PDT      Build Host: c6b10.bsys.dev.centos.org
Group       : System Environment/Shells     Source RPM: bash-4.1.2-15.el6_4.src.rpm
Size        : 3139291                          License: GPLv3+
Signature   : RSA/SHA1, Thu 18 Jul 2013 06:46:10 AM PDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.gnu.org/software/bash
Summary     : The GNU Bourne Again shell
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification.


## relocations          安裝過程是否允許自行指定安裝位置

>> 查詢某包安裝生成了哪些文件

rpm -ql package_name


[root@localhost Packages]# rpm -ql bash
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug-64
...

    (1)我們也可以單獨查看生成的配置文件

[root@localhost Packages]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

    (2)查詢安裝生成的幫助文件

[root@localhost Packages]# rpm -qd bash
/usr/share/doc/bash-4.1.2/COPYING
/usr/share/info/bash.info.gz
/usr/share/man/man1/..1.gz
/usr/share/man/man1/:.1.gz

    (3) 查詢程序包的腳本文件

[root@localhost Packages]# rpm -q --scripts bash


其中包括:
preinstall
postinstall
preuninstall
postunintall

    (4) 查詢某文件是由哪個包生成的

[root@localhost Packages]# rpm -qf /etc/fstab
setup-2.8.14-20.el6_4.1.noarch

    (5) 對尚未安裝的包執行查詢

[root@localhost Packages]# rpm -qpc zsh-4.3.10-7.el6.i686.rpm
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

## 在之前所有查詢基礎上,使用 p 參數。實現查詢未安裝程序包的各種信息。

5     校驗

主要是檢查程序包安裝后,文件屬性是否發生變化。

rpm -V package_name

如果校驗結果正常,則不會輸出任何結果。如果有不一致的,就會顯示。 顯示的輸出格式是 8 位長得字符串,沒有變化的,以"." 點號來表示。

  • S     File Size

  • M    Mode

  • 5     MD5 校驗碼改變

  • D     主設備或次設備號發生改變

  • L     ReadLink 路徑

  • U     屬主

  • G     屬組

  • T     時間

  • P     capabilityes 改變。

6     來源合法性和完整性檢驗

要完成檢驗,我們首先要導入程序包制作者的公鑰。如果是光盤,則在光盤上會提供。

-r--r--r--. 2 root root   1706 Nov 27  2013 RPM-GPG-KEY-CentOS-6   

## 光盤上提供的制作者公鑰信息

>> 導入公鑰

[root@localhost CDROM]# rpm --import /media/CDROM/RPM-GPG-KEY-CentOS-6

>> 顯示已導入的所有公鑰

[root@localhost CDROM]# rpm -qa gpg-pubkey*
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-0608b895-4bd22942

>> 顯示某公鑰詳細信息

[root@localhost CDROM]# rpm -qi gpg-pubkey-0608b895-4bd22942
Name        : gpg-pubkey                   Relocations: (not relocatable)
Version     : 0608b895                          Vendor: (none)
Release     : 4bd22942                      Build Date: Tue 29 Mar 2016 02:16:32 AM PDT
Install Date: Tue 29 Mar 2016 02:16:32 AM PDT      Build Host: localhost
Group       : Public Keys                   Source RPM: (none)
Size        : 0                                License: pubkey
Signature   : (none)
Summary     : gpg(EPEL (6) <epel@fedoraproject.org>)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.8.0 (NSS-3)
mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1
JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B
M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn
XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6
pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV
QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp
Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq
3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu
vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar
1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g
YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB
tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS
KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9
qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT
9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP
Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS
WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft
HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF
p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP
x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8
wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J
l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG
iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR
XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ==
=V/6I
-----END PGP PUBLIC KEY BLOCK-----

>> 利用密鑰檢查程序包

[root@localhost CDROM]# rpm -K ./Packages/zsh-4.3.10-7.el6.i686.rpm
./Packages/zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK  



## 上面同時會檢查完整性和來源合法性,我們也可以單獨檢查
--nodigest     不檢查完整性
--nosignature  不檢查來源合法性

7     rpm 數據庫重建

rpm 數據庫用來追蹤每個程序包的依賴關系。數據庫存放在 /var/lib/rpm 目錄下,其中包括

[root@localhost CDROM]# ll /var/lib/rpm/
total 66820
-rw-r--r--. 1 root root  5513216 Jun  9 04:37 Basenames
-rw-r--r--. 1 root root    12288 Apr  2 18:42 Conflictname
-rw-r--r--. 1 root root  1474560 Jun  9 04:37 Dirnames
-rw-r--r--. 1 root root 10182656 Jun  9 04:37 Filedigests
-rw-r--r--. 1 root root    24576 Jun  9 04:37 Group
-rw-r--r--. 1 root root    16384 Jun  9 04:37 Installtid
-rw-r--r--. 1 root root    40960 Jun  9 04:37 Name
-rw-r--r--. 1 root root    24576 Jun  9 04:37 Obsoletename
-rw-r--r--. 1 root root 50925568 Jun  9 04:37 Packages
-rw-r--r--. 1 root root  1310720 Jun  9 04:37 Providename
-rw-r--r--. 1 root root   614400 Jun  9 04:37 Provideversion
-rw-r--r--. 1 root root    12288 Mar 29 02:16 Pubkeys
-rw-r--r--. 1 root root   446464 Jun  9 04:37 Requirename
-rw-r--r--. 1 root root   241664 Jun  9 04:37 Requireversion
-rw-r--r--. 1 root root    86016 Jun  9 04:37 Sha1header
-rw-r--r--. 1 root root    81920 Jun  9 04:37 Sigmd5
-rw-r--r--. 1 root root    12288 Jun  9 04:37 Triggername

## 如果這些文件損壞,將會對 rpm 的安裝,卸載,查詢等功能產生影響。


>> 初始化

rpm --initdb

## 如果事先沒有庫,則新建。如果有,則不執行

>> 重建

rpm --rebuilddb

## 直接重建,覆蓋原有數據

原創文章,作者:FoxPro,如若轉載,請注明出處:http://www.www58058.com/18444

(0)
FoxProFoxPro
上一篇 2016-06-22
下一篇 2016-06-22

相關推薦

  • N25-第一周

    一:計算機主要組成及其功能 計算機的主要組成部分可以歸納為以下五個部分:控制器、運算器、存儲器、輸入設備、和輸出設備。  功能介紹:         1.控制器          …

    Linux干貨 2016-12-04
  • linux掛載的基本使用

    掛載   掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件,必須將文件所在的分區(已有文件系統)掛載到一個已存在的目錄上, 然后通過訪問這個目錄來訪問存儲設備。 掛載條件 1、掛載點必須是一個目錄。 2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內容將隱藏不可用。對于其他…

    Linux干貨 2016-09-07
  • 第五周學習總結-rpm&yum

    我們都知道,計算機只能識別二進制程序,而程序員編寫的源代碼都是以純文本形式存在,因此,要想讓計算機識別并運行這些源代碼程序,就必須通過中間的轉換機制讓源代碼變為二進制程序文件,而這種轉換過程就稱為編譯過程。Linux的各發行版本中由于各廠商的編譯過程不盡相同,因此就誕生了各種不同的軟件管理包組件。其中我們最熟知的就要數Redhat系列的rpm包了。 rpm包…

    2018-01-03
  • 一位老it工程師的忠告,新手進來學習,老手進來體會,收獲很大。

    諸位,咱當電子工程師也是十余年了,不算有出息,環顧四面,也沒有看見幾個有出息的!回顧工程師生涯,感慨萬千,愿意講幾句掏心窩子的話,也算給咱們師弟師妹們提個醒,希望他們比咱們強! [1]好好規劃自己的路,不要跟著感覺走!根據個人的理想決策安排,絕大部分人并不指望成為什么院士或教授,而是希望活得滋潤一些,爽一些。那么,就需要慎重安排自己的軌跡。從哪個行業入手,逐…

    Linux干貨 2015-02-26
  • nfs和samba服務

    nfs:      nfs: Network File System                      #網絡文件系統      nis:Network Information Se…

    Linux干貨 2017-04-27
  • 虛擬機的三種網絡模式

    前言     虛擬機的網絡模式,是環境部署時的重要環節。不同的運行環境對網絡的要求也是不用的,本章節重點介紹虛擬機的三種網絡模式、以及他們之間的區別 虛擬機網絡模式      無論是vmware,virtual box,virtual pc等虛擬機軟件,一般來說,虛擬機有三種網絡模式: 1.橋接 2…

    2017-07-11

評論列表(1條)

  • stanley
    stanley 2016-06-22 15:41

    贊,樣式上調整的很專業,

欧美性久久久久