天天看點

rpm的相關功能

Linux軟體包安裝:

  系統調用:庫

   API: Posix可移植作業系統規範

   ABI: Application Binary Interface應用二進制接口

   Debian: dpt

   RedHat: rpm, Redhat Package Manager

   Dpt、rpm軟體包程式管理工具

  glibc: 系統核心庫

軟體包的組成部分:

  1:二進制程式:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

  2:庫檔案:/lib, /usr/lib, /usr/local/lib

  3:配置檔案:/etc

  4:幫助檔案:手冊, README, INSTALL (/usr/share/doc/)

軟體包管理工具:

  1:檔案清單

  2:檔案放置路徑

  3:提供的功能說明

  4:依賴關系

  RPM: RPM is Package Manager

  rpm --> yum是rpm的前端工具

編譯安裝:源代碼

編譯器:gcc, g++

提供編譯環境:開發環境

二進制:

  庫:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

  幫助手冊:/etc/man.config, man -M

  頭檔案:/usr/include

安裝程式的方式:

  通用二進制格式

  軟體包管理器

  軟體包管理器的前端工具

  源代碼編譯

rpm: 打包、安裝、查詢、升級、卸載、校驗、資料庫管理(重建)

源程式:name-version.tar.{gz|bz2|xz}

version版本号:major.minor.release

   例如:bash-4.3.1.tar.xz  :主版本号4;次版本号3;發行号1

   rpm包:name-version-release.arch.rpm

   發行号:用于辨別rpm包本身的發行号,可還包含所适用的作業系統

   el6: rhel6  、centos6:

   arch: 主機平台

   i686、x86_64、amd64、ppc、noarch(不依賴平台)

rpm分包:

  主包:核心包

  分包:支包

OS: 安裝程式

   fedora-epel紅帽額外的rpm包

   http://mirrors.sohu.com

   http://rpmfind.net搜尋rpm包的站點

   http://rpm.pbone.net/

rpm包有驗正機制:來源的合法性、軟體包的完整性

   gpg --> pgp

   非對稱加密:pu(公鑰), pr(私鑰)

   數字簽名、密鑰交換:

RedHat系列官方公鑰:

   /etc/pki/rpm-gpg/

   RPM-GPG-KEY-CentOS-6

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6就将密鑰導入rpm中,就能驗證合法性了

   用單項加密算法計算出rpm包的特征碼,再用rpm包制作者的私鑰加密特征碼并附加在特征碼的後面(裡面),我們驗證時,由于作者是用私鑰加密的,就隻有公鑰可以解密,隻要能解密出來,就驗證了其來源是合法的。解密出來的是生成的特征碼(散列值),使用相同的算法再算一次散列值,如果散列值相同,就驗證了軟體包的完整性

rpm

  -K

  --checksig

安裝:rpm -i /PATH/TO/RPM_FILE

  -i|--install

  -v, -vv, -vvv詳細資訊

  -h: 以#顯示安裝進度

  -ivh

忽略依賴關系:

  --nodeps(不建議使用)

測試安裝:

  --test

重新安裝:

  --replacepkgs

warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew

解除安裝:rpm -e 包名

  --nodeps不會将有依賴關系的包都解除安裝掉

warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave

查詢不加版本号:rpm -q|--query 包名

查詢所有已經安裝包:

  rpm -qa不用加包名

  rpm -qa | grep 'pattern'

查詢包的摘要資訊:

  rpm -qi 包名

查詢包安裝生成的檔案清單:

  rpm -ql 包名    rpm -qf由那個包生成的

查詢包安裝生成的配置檔案:

  rpm -qc 包名

查詢包安裝生成的幫助文檔:

   rpm -qd 包名

查詢包相關的腳本:

  rpm -q --scripts 包名

  preinstall: 安裝前腳本

  postinstall: 安裝後腳本

  preuninstall: 解除安裝前腳本

  postuninstall: 解除安裝後腳本

查詢尚未安裝的包的相關資訊:

  rpm -qpi /path/to/rpm_file可以組合其他選項

   -i

   -l

   -d

   -c

  --scripts

更新:

  -U: 更新+安裝

  -F:更新

   -Uvh

   -Fvh

  --force強行更新

  --nodeps忽略依賴關系

注意:核心不應該更新,應該盡可能安裝,它允許多版本并存;

校驗:rpm -V 包名

rpm包的資料庫:

  /var/lib/rpm

資料庫重建:

  --initdb: 建立資料庫

  --rebuilddb: 重建資料庫 不需要加任何參數

例子:先确定要下載下傳的包的路徑

顯示所下載下傳的包是合法的,是完整的,就可以安裝了

顯示安裝完成了

通過對軟體包的檢視可以發現軟體包已經解除安裝掉了

本文轉自 宋鵬超 51CTO部落格,原文連結:http://blog.51cto.com/qidian510/1258719,如需轉載請自行聯系原作者