中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux命令:RPM

發布時間:2020-05-30 20:45:59 來源:網絡 閱讀:357 作者:風過_無痕 欄目:數據庫


RPM令簡介:

RPM 全名是『 RedHat Package Manager 』簡稱則為 RPM。RPM 是以一種數據庫記錄的方式來將你所需要的套件安裝到你的 Linux 主機的一套管理程序。


1.命令格式:

  rpm [選項][文件]

2.命令功能:

 RPM最大的特點就是將您要安裝的套件先編譯且打包好了,透過包裝好的套件里頭預設的數據庫記錄, 記錄這個套件要安裝的時候必須要的相依屬性模塊(Linux主機需要預先存在的幾個必須的套件),當安裝時RPM會先依照套件里頭的紀錄數據查詢Linux主機的相依屬性套件是否滿足,若滿足則予以安裝,若不滿足則不予安裝。那么安裝的時候就將該套件的信息整個寫入RPM的數據庫中,以便未來的查詢、驗證與反安裝!

這樣的優點是:

  a. 由于已經編譯完成并且打包完畢,所以安裝上很方便( 不需要再重新編譯 );
  b. 由于套件的信息都已經記錄在 Linux 主機的數據庫上,很方便查詢、升級與反安裝;

缺點是:
  a. 安裝的環境必須與打包時的環境需求一致或相當;;
  b. 需要滿足套件的相依屬性需求;
  c. 反安裝時需要特別小心,最底層的套件不可先移除,否則可能造成整個系統的問題!


3.命令參數:

3.1.RPM 安裝包


rpm -i /PATH/TO/PACKAGE_FILE
  -h:  以#顯示進度;每個#表示2%;
  -v:  顯示詳細過程
  -vv:  更詳細的過程

  
rpm -ivh /PATH/TO/PACKAGE_FILE
  --nodeps: 忽略依賴關系;
  --replacepkgs: 重新安裝,替換原有安裝;
  --force: 強行安裝,可以實現重裝或降級,為--replacefiles與--replacepkgs的綜合體

  --test :測試安裝該軟件,可找出是否有屬性相依的問題。

   eg1: rpm -ivh pkgname.i386.rpm --test

  --replacefiles: 安裝的過程當中出現了『某個文件已經被安裝在你的系統上面』的資訊,或出現版本不合的信息(confilcting files) 時,可以使用這個參數來直接覆蓋文件。

    危險性:覆蓋的動作是無法復原的!否則會欲哭無淚!


[root@localhost]~# rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
warning: zsh-4.2.6-3.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...   ########################################### [100%]
  package zsh-4.2.6-3.el5.x86_64 is already installed

[root@localhost]~#  網絡安裝某個文件

[root@localhost]~# rpm -ivh http://website.name/path/pkgname.rpm



3.2.RPM 查詢包

在查詢的部分,所有的參數之前都需要加上 -q 才是所謂的查詢!
查詢主要分為兩部分,一個是查已安裝,另一個則是查某個 rpm 檔案內容。


參數:

-q :僅查詢(query),后面接的套件名稱是否有安裝;
-qa :列出所有的(all),已經安裝在本機 Linux 系統上面的所有套件名稱;


-qi :列出該套件的詳細信息 (information),包含開發商、版本與說明等;
-ql :列出該套件所有的檔案與目錄所在完整文件名 (list);
-qc :列出該套件的配置文件    (找出在 /etc/ 底下的檔名而已)
-qd:列出該套件的所有說明檔   (找出與 man 有關的檔案document)
-qR :列出與該套件有關的相依套件所含的檔案 (Required)
-qf :由后面接的文件名稱(file),找出該檔案屬于哪一個已安裝的套件;

rpm -q --scripts PACKAGE_NAME: 查詢指定包中包含的腳本(scripts);


-qp[i|c|d|l|R]:未安裝時,查詢RPM檔案內含有的信息(Package

  注意 -qp 后面接的所有參數與上面的說明一致。

  但用途僅在于找出RPM檔案內的信息,而非已安裝的套件信息!


[root@localhost]/media/Server# rpm -qi bash
Name  : bash  Relocations: (not relocatable)
Version  : 3.2   Vendor: Red Hat, Inc.
Release  : 24.el5  Build Date: Tue 21 Oct 2008 08:15:56 PM CST
Install Date: Thu 17 Apr 2014 11:41:58 AM CST      Build Host: hs20-bc1-5.build.redhat.com
Group : System Environment/Shells Source RPM: bash-3.2-24.el5.src.rpm
Size  : 5388767   License: GPLv2+
Signature : DSA/SHA1, Mon 08 Dec 2008 08:25:44 PM CST, Key ID 5326810137017186
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL   : http://www.gnu.org/software/bash
Summary : The GNU Bourne Again shell (bash) version 3.1.
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. This
package (bash) contains bash version 3.1, which improves POSIX
compliance over previous versions.

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

...

[root@localhost]/media/Server# rpm -qf /bin/ls
coreutils-5.97-23.el5

[root@localhost]/media/Server# rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh): 安裝后要執行的程式
if [ ! -f /etc/shells ] ; then
  echo "/bin/zsh" > /etc/shells
else
  grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
fi
/sbin/install-info /usr/share/info/zsh.info.gz /usr/share/info/dir \
 --entry="* zsh: (zsh).  An enhanced bourne shell."
preuninstall scriptlet (using /bin/sh):卸載要執行的程式

if [ "$1" = 0 ] ; then
  /sbin/install-info --delete /usr/share/info/zsh.info.gz /usr/share/info/dir \
  --entry="* zsh: (zsh).   An enhanced bourne shell."
fi

postuninstall scriptlet (using /bin/sh):卸載要執行的程式

if [ "$1" = 0 ] ; then
  if [ -f /etc/shells ] ; then
   TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`
   grep -v '^/bin/zsh$' /etc/shells > $TmpFile
   cp -f $TmpFile /etc/shells
   rm -f $TmpFile
   chmod 644 /etc/shells
  fi
fi


3.3.RPM 升級包
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級;否則,則安裝;

   -Uvh --oldpackage: 降級

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級;否則,退出;



3.4.RPM 校驗
參數:
-V :后面加的是套件名稱,若該套件所含的檔案被更動過,才會列出來;
-Va :列出目前系統上面所有可能被更動過的檔案;
-Vp :后面加的是文件名稱,列出該套件內可能被更動過的檔案;
-Vf :列出某個檔案(file)是否被更動過~


[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安裝的套件名稱
[root@linux ~]# rpm -Vp 某個 RPM 檔案的檔名
[root@linux ~]# rpm -Vf 在系統上面的某個檔案



3.5.RPM 卸載包

[root@linux ~]# rpm -e logrotate  <==卸載套件,無信息反饋即OK
[root@linux ~]# rpm --rebuilddb  <==重建數據庫



3.6.RPMBUILD 安裝包

--rebuild
這個參數會將后面的 SRPM 進行『編譯』與『打包』的動作,最后會產生 RPM 的檔案,但是產生的 RPM 檔案并沒有安裝到系統上。
--recompile
這個動作會直接的『編譯』『打包』并且『安裝』啰!請注意, rebuild 僅『編譯并打包』而已,而 recompile 不但進行編譯跟打包,還同時進行『安裝』了!



3.7.重建數據庫
    rpm
        --rebuilddb: 重建數據庫,一定會重新建立;
        --initdb:初始化數據庫,沒有才建立,有就不用建立;


[root@localhost ~]# ls /var/lib/rpm         鎖文件
Basenames     __db.001  Dirnames  Installtid  Providename     Requirename     Sigmd5
Conflictname  __db.002  Filemd5s  Name        Provideversion  Requireversion  Triggername
__db.000      __db.003  Group     Packages    Pubkeys         Sha1header



3.8.檢驗來源合法性,及軟件包完整性 ( rpm -K     英文:check

加密類型:
    對稱:加密解密使用同一個密鑰
    公鑰:一對兒密鑰,公鑰,私鑰;公鑰隱含于私鑰中,可以提取出來,并公開出去;
    單向:

# ls /etc/pki/rpm-gpg/
    RPM-GPG-KEY-redhat-release   
rpm -K /PAPT/TO/PACKAGE_FILE
    dsa, gpg: 驗正來源合法性,也即驗正簽名;可以使用--nosignature,略過此項
    sha1, md5: 驗正軟件包完整性;可以使用--nodigest,略過此項   
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 導入密鑰文件

[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#37017186)
[
root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
[root@localhost ~]# rpm -K --nodigest zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa gpg OK


---end---

向AI問一下細節
推薦閱讀:
  1. Linux命令
  2. 如何構建RPM

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁阳县| 安福县| 嘉黎县| 长治县| 全南县| 宿迁市| 皋兰县| 龙门县| 舟曲县| 泰来县| 普宁市| 阿坝县| 沧源| 鄂托克旗| 唐河县| 正阳县| 阜阳市| 封丘县| 绍兴县| 柘荣县| 北票市| 家居| 阿拉善盟| 辉南县| 竹北市| 阜康市| 汨罗市| 太湖县| 墨竹工卡县| 静海县| 剑川县| 信丰县| 邻水| 泰兴市| 永登县| 鲁甸县| 铁岭市| 吐鲁番市| 新昌县| 武胜县| 仁怀市|