rmp 程 序 包 管 理 介 紹-20160819

rmp 程 序 包 管 理 介 紹

§·學習大綱

※包管理器

rmp常用命令介紹

*安裝

*升級:

*卸載:

*查詢:

*校驗:

*數據庫:

rmp使用實例介紹

※包管理器

◎二進制應用程序的組成部分:

二進制文件、庫文件、配置文件、幫助文件

◎程序包管理器:

debian:deb文件, dpkg包管理器

redhat: rpm文件, rpm包管理器

rpm: Redhat Package  Manager

RPM P ackage  Manager

rmp常用命令介紹

*安裝

◎安裝符合FHS標準,程序員把文件放在什么地方都有文件路徑存放路徑

CentOS系統上使用rpm命令管理程序包:安裝、卸載、升級、查詢、校驗、數據庫維護

安裝:

rpm  {-i|–install}  [install-options]  PACKAGE_FILE

-v  :  verbose

-vv :

-h  : #顯示程序包管理執行進度

  rpm  -ivh  PACKAGE_FILE …[常用的安裝命令

rpm   -iinstallv(詳細信息)h(顯示進度條)  ]安裝:

 

*升級:

◎升級:

rpm  {-U|–upgrade}  [install-options]  PACKAGE_FILE…

rpm  {-F|–freshen}  [install-options]  PACKAGE_FILE…

upgrade[有舊版本就升級,沒有就安裝軟件]:安裝有舊版程序包,則“升級”

如果不存在舊版程序包,則“安裝”

freshen[有舊版本就升級,沒有就不安裝軟件]:安裝有舊版程序包,則“升級”

如果不存在舊版程序包,則不執行升級操作

rpm  -Uvh  PACKAGE_FILE …

rpm   -Fvh  PACKAGE_FILE …

–oldpackage:降級[降級

rpm -ivh  –oldpackage  舊版本包名]

–force: 強行升級

*卸載:

rpm  {-e|–erase}  [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test]  PACKAGE_NAME …

*查詢:

rpm  {-q|–query}  [select-options]  [query-options]

[select-options]

-a: 所有包

-f: 查看指定的文件由哪個程序包安裝生成

-p  rpmfile:針對尚未安裝的程序包文件做查詢操作;

–whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個包所提供

–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴

rpm2cpio 包文件|cpioitv預覽包內文件[

查看rpm的包內的文件。

rpm2cpio 包文件|cpio id *.conf”釋放包內文件[rpm單個的文件解壓出來]

[query-options]

–changelog:查詢rpm包的changelog[更新日志]

-c: 查詢程序的配置文件

-d: 查詢程序的文檔

-i: information

-l: 查看指定的程序包安裝后生成的所有文件;

–scripts:程序包自帶的腳本片斷

-R: 查詢指定的程序包所依賴的CAPABILITY;

–provides: 列出指定程序包所提供的CAPABILITY;

◎查詢用法:

-qi  PACKAGE, -qfFILE, -qc PACKAGE, -qlPACKAGE, -qdPACKAGE

-qpi  PACKAGE_FILE, -qplPACKAGE_FILE, …

-qa :查詢所有的安裝包

*校驗:

rpm {-V|–verify} [select-options] [verify-options][rpm -V tree 查看文件包哪些屬性被修改過。

可以修改幫助文件內容,測試用一用。

查詢所有包的校驗

rpm -Va

S  file Size differs

M  Mode differs (includes permissions and file type)

5  digest (formerly MD5 sum) differs

D  Device major/minor number mismatch

L  readLink(2) path mismatch

U  User ownership differs

G  Group ownership differs

T  mTimediffers

P  capabilities differ

◎包來源合法性驗正及完整性驗正:

完整性驗正:SHA256

來源合法性驗正:RSA

◎公鑰加密:

對稱加密:加密、解密使用同一密鑰;

非對稱加密:密鑰是成對兒的

public key: 公鑰,公開所有人

secret key: 私鑰, 不能公開

◎導入所需要公鑰:

rpm  -K | checksigrpmfile檢查包的完整性和簽名

rpm  –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7[R

oot@Centos7 /]# rpm -qa | grep  gpg

gpg-pubkey-f4a80eb5-53a7ff4b

刪除  gpg-pubkey-f4a80eb5-53a7ff4b即可刪除公鑰

CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7

rpm  -qa  gpg-pubkey*

*數據庫:

◎數據庫重建:

/var/lib/rpm

rpm  {–initdb | –rebuilddb}

initdb: 初始化

如果事先不存在數據庫,則新建之

否則,不執行任何操作

rebuilddb:重建

無論當前存在與否,直接重新創建數據庫

rmp使用實例介紹

安裝tree命令最新版,下載后校驗數據包的完整性,安裝前測試安裝,看看需要安裝后有哪些文件,該程序包依賴哪些軟件包?(主要在于熟悉軟件包的命令)

解:

1.我們在系統軟件光盤中查找 tree。

[root@Centos7 Packages]# ls | grep "^tree"
tree-1.6.0-10.el7.x86_64.rpm
[root@Centos7 Packages]# pwd
/run/media/root/CentOS 7 x86_64/Packages
[root@Centos7 Packages]#

 

2.需要校驗文件包,我們需要導入公鑰。

[root@Centos7 Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm #檢測包的完整性
tree-1.6.0-10.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5) 
[root@Centos7 Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #導入公鑰
[root@Centos7 Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm 
tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@Centos7 Packages]#

 

[root@Centos7 Packages]# rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b  #查看公鑰信息
Name        : gpg-pubkey
Version     : f4a80eb5
Release     : 53a7ff4b
Architecture: (none)
Install Date: Fri 19 Aug 2016 05:05:56 PM CST
Group       : Public Keys
Size        : 0
License     : pubkey
Signature   : (none)
Source RPM  : (none)
Build Date  : Mon 23 Jun 2014 06:19:55 PM CST
Build Host  : localhost
Relocations : (not relocatable)
Packager    : CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
Summary     : gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.11.3 (NSS-3)
 
mQINBFOn/0sBEADLDyZ+DQHkcTHDQSE0a0B2iYAEXwpPvs67cJ4tmhe/iMOyVMh9
Yw/vBIF8scm6T/vPN5fopsKiW9UsAhGKg0epC6y5ed+NAUHTEa6pSOdo7CyFDwtn
4HF61Esyb4gzPT6QiSr0zvdTtgYBRZjAEPFVu3Dio0oZ5UQZ7fzdZfeixMQ8VMTQ
4y4x5vik9B+cqmGiq9AW71ixlDYVWasgR093fXiD9NLT4DTtK+KLGYNjJ8eMRqfZ
Ws7g7C+9aEGHfsGZ/SxLOumx/GfiTloal0dnq8TC7XQ/JuNdB9qjoXzRF+faDUsj
WuvNSQEqUXW1dzJjBvroEvgTdfCJfRpIgOrc256qvDMp1SxchMFltPlo5mbSMKu1
x1p4UkAzx543meMlRXOgx2/hnBm6H6L0FsSyDS6P224yF+30eeODD4Ju4BCyQ0jO
IpUxmUnApo/m0eRelI6TRl7jK6aGqSYUNhFBuFxSPKgKYBpFhVzRM63Jsvib82rY
438q3sIOUdxZY6pvMOWRkdUVoz7WBExTdx5NtGX4kdW5QtcQHM+2kht6sBnJsvcB
JYcYIwAUeA5vdRfwLKuZn6SgAUKdgeOtuf+cPR3/E68LZr784SlokiHLtQkfk98j
NXm6fJjXwJvwiM2IiFyg8aUwEEDX5U+QOCA0wYrgUQ/h8iathvBJKSc9jQARAQAB
tEJDZW50T1MtNyBLZXkgKENlbnRPUyA3IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
c2VjdXJpdHlAY2VudG9zLm9yZz6JAjUEEwECAB8FAlOn/0sCGwMGCwkIBwMCBBUC
CAMDFgIBAh4BAheAAAoJECTGqKf0qA61TN0P/2730Th8cM+d1pEON7n0F1YiyxqG
QzwpC2Fhr2UIsXpi/lWTXIG6AlRvrajjFhw9HktYjlF4oMG032SnI0XPdmrN29lL
F+ee1ANdyvtkw4mMu2yQweVxU7Ku4oATPBvWRv+6pCQPTOMe5xPG0ZPjPGNiJ0xw
4Ns+f5Q6Gqm927oHXpylUQEmuHKsCp3dK/kZaxJOXsmq6syY1gbrLj2Anq0iWWP4
Tq8WMktUrTcc+zQ2pFR7ovEihK0Rvhmk6/N4+4JwAGijfhejxwNX8T6PCuYs5Jiv
hQvsI9FdIIlTP4XhFZ4N9ndnEwA4AH7tNBsmB3HEbLqUSmu2Rr8hGiT2Plc4Y9AO
aliW1kOMsZFYrX39krfRk2n2NXvieQJ/lw318gSGR67uckkz2ZekbCEpj/0mnHWD
3R6V7m95R6UYqjcw++Q5CtZ2tzmxomZTf42IGIKBbSVmIS75WY+cBULUx3PcZYHD
ZqAbB0Dl4MbdEH61kOI8EbN/TLl1i077r+9LXR1mOnlC3GLD03+XfY8eEBQf7137
YSMiW5r/5xwQk7xEcKlbZdmUJp3ZDTQBXT06vavvp3jlkqqH9QOE8ViZZ6aKQLqv
pL+4bs52jzuGwTMT7gOR5MzD+vT0fVS7Xm8MjOxvZgbHsAgzyFGlI1ggUQmU7lu3
uPNL0eRx4S1G4Jn5
=OGYX
-----END PGP PUBLIC KEY BLOCK-----

 

3.測試模式安裝tree,查詢

 

[root@Centos7 Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm  --test #測試安裝
Preparing...                          ################################# [100%]
package tree-1.6.0-10.el7.x86_64 is already installed
[root@Centos7 Packages]# rpm -qa | grep tree-1.6.0-10.el7.x86_64.rpm 
[root@Centos7 Packages]#

 

[root@Centos7 Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm  #查詢未安裝的包文件信息
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, Fri 04 Jul 2014 01:36:46 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : Tue 10 Jun 2014 03:28:53 AM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.

[root@Centos7 Packages]# rpm -qpl tree-1.6.0-10.el7.x86_64.rpm  #查詢安裝后生成的文件
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

[root@Centos7 Packages]# rpm -qpR tree-1.6.0-10.el7.x86_64.rpm  #查詢包安裝需要的庫文件
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

 

 

4.rpm程序包安裝。

3步沒有實際的安裝程序包,只是對文件包做檢測,查詢程序包的信息,查詢生成的文件,查詢需要的依賴庫文件等等。

#安裝rpm程序包[root@Centos7 Packages]# rpm -qa | grep tree [root@Centos7 Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm  #安裝程序包Preparing...                          ################################# [100%]Updating / installing...   1:tree-1.6.0-10.el7                ################################# [100%][root@Centos7 Packages]# rpm -qa | grep treetree-1.6.0-10.el7.x86_64

 

小結:

以上是rpm包常用的安裝命令,由于rpm命令無法解決包與包之間的依賴關系,需要手工解決。手工卸載軟件時,當你卸載的軟件有其它軟件依賴時,無法正常的卸載,但是可以忽略依賴關系,但是不建議。例如你卸載bash時是無法正常卸載的,卸載的時候帶 –-nodeps 參數可以卸載,但是系統重啟后無法啟動,切記不要-nodeps卸載軟件。 

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

(0)
linux_rootlinux_root
上一篇 2016-08-21 20:47
下一篇 2016-08-21 20:47

相關推薦

  • Linux基礎知識之軟件包管理(二)

    (1)CentOS7 yum dnf  yum repository: yum repo 存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄下,repodata) 文件服務器: ftp:// http:// nfs:// file:/// (2)yum客戶端: 配置文件: /etc/yum…

    Linux干貨 2016-08-24
  • 第一周學習作業

    課后作業 1.描述計算機的組成及其功能。 計算機主要由硬件和軟件兩大部分組成。 硬件 CPU:又叫中央處理器,其主要功能是進行運算和邏輯運算。 主板:是電腦各個配件的連接平臺,電腦的CPU、內存和控制核心電路均安裝在主板上。 內存:又稱為動態存儲器,主要用于存儲電腦運行中的數據。 顯卡:用于向顯示器輸出信號的設備。 硬盤:是一種最為常見的外存儲器,具有超大容…

    Linux干貨 2016-11-30
  • 深入理解php底層:php生命周期

    1、PHP的運行模式:     PHP兩種運行模式是WEB模式、CLI模式。無論哪種模式,PHP工作原理都是一樣的,作為一種SAPI運行。 1、當我們在終端敲入php這個命令的時候,它使用的是CLI。 它就像一個web服務器一樣來支持php完成這個請求,請求完成后再重新把控制權交給終端。 2、當使用Apache或者別web服務器…

    系統運維 2015-05-28
  • 開篇

    test 新人報道

    Linux干貨 2016-10-28
  • VimTutor(上)

    柚子翻譯,如有理解錯誤或翻譯錯誤,請指正! VimTutor Vim是一款強大的文本編輯器,擁有多命令的特性,tutor解釋了其中大多數命令。 tutor是為了描述足夠多的Vim命令幫助你輕松使用Vim而被制作的,使Vim能成為一個可完成你所有工作意圖的編輯器。 完成tutor的內容大概需要25-30分鐘,所完成時間取決于你通過時間積累的經驗。 注意: 1.…

    Linux干貨 2015-10-18
  • Shell腳本編程3

    Shell腳本編程3  一、雜項知識整理 1、select與case select是個無限循環,因此要記住用break命令退出循環,或用exit命令終止腳本。也可以按ctrl+c退出循環,自動生成數字的選擇項,適合創建菜單。 select經常和case聯合使用。與for循環類似,可以省略in LIST,此時使用位置參量$1、$2等傳遞參數。 cas…

    Linux干貨 2016-08-19
欧美性久久久久