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
下一篇 2016-08-21

相關推薦

  • 馬哥教育網絡班22期+第1周課程練習

    week1作業: 1.描述計算機的組成及其功能。    計算機的組成:    CPU:控制器、運算器、寄存器、CPU緩存(RAM,一級、二級、三級緩存)    控制器(Control):是整個計算機的中樞神經,其功能是對程序規 定的控制信息進行解釋,根據其要求進行控制,…

    Linux干貨 2016-08-15
  • 正則表達式及grep使用

    正則表達式分為:“基本正則表達式 BRE”跟“擴展正則表達式 ERE” 基本正則表達式:     (1)字符匹配               "."任意單個字符 &nbs…

    Linux干貨 2016-07-10
  • inode 是什么及絕對路徑和相對路徑和一些目錄相關命令總結

    inode是什么          每個分區又分兩個區,元數據區和數據區。     元數據區主要存儲文件的權限,屬主屬組,時間戳,文件的存儲位置指針….就如一本書有目錄頁和內容頁一樣,目錄頁上的記錄的是內容的頁數,可以通過目錄頁的頁數直接…

    Linux干貨 2016-08-02
  • 20本最好的Linux免費書籍

    前些天Neo推薦了一個網站有《超過100本的linux免費書籍》,這里,我也向大家推薦20本最好的Linux免費書籍,當然,也是英文版的。 1. Ubuntu Pocket Guide and Reference 一本介紹關于Ubuntu 8.04和8.10的使用書。 Website www.ubuntupocketguide.com Author Keir…

    Linux干貨 2015-04-01
  • 證書及加解密原理圖解

    證書管理 現在上網大多數網站都是使用https的協議,https是一個安全的訪問方式,數據在傳輸過程中是加密的,這時候在服務器端就需要使用證書。 科普加解密流程 服務器端客戶端 服務器在和客戶端通信前必須先建立SSL會話,下圖解析SSL會話過程

    Linux干貨 2016-09-25
  • Linux前端包管理器—yum

    Yum(Yellow dog Updater, Modified)由Duke University團隊,修改Yellow Dog Linux的Yellow Dog Updater開發而成,是一個基于RPM包管理的字符前端軟件包管理器。能夠從指定的服務器自動下載RPM包并且安裝,可以處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。 介…

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