next up previous contents
Next: About this document ... Up: *套件修補、檢驗與管理 Previous: 檢驗軟體正確性   Contents

RPM 套件管理程式

  • rpm 指令
    1. 基本功能:套件安裝、升級、更新、移除、查詢及數位簽章驗證及檢查。
      INSTALLING, UPGRADING, AND REMOVING PACKAGES:
         rpm {-i|--install} [install-options] PACKAGE_FILE ...
         rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
         rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
         rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
             [--notriggers] [--repackage] [--test] PACKAGE_NAME ...
      QUERYING AND VERIFYING PACKAGES:
         rpm {-q|--query} [select-options] [query-options]
         rpm {-V|--verify} [select-options] [verify-options]
         rpm --import PUBKEY ...
         rpm {-K|--checksig} [--nosignature] [--nodigest]
             PACKAGE_FILE ...
      
    2. 一般選項:適用於所有模式
      -?, --help :列出輔助訊息
      --version  :列出 rpm 版本
      --quiet    :僅列出錯誤訊息
      -v         :察看更細部的安裝資訊
      -vv        :列出大量除錯訊息
      --pipe CMD :將 rpm 的輸出以管線處理送到命令 CMD
      
  • RPM 套件安裝
    1. 安裝選項以 -i 開頭
      rpm {-i|--install} [install-options] PACKAGE_FILE ...
      install-options:
      -h :以安裝資訊列顯示安裝進度
      --nodeps:不要去檢查 rpm 套件的相依性。
      --nomd5:不要檢查 rpm 套件的 MD5 資訊。
      --noscripts:不想讓該套件自行啟用或者自行執行某些系統指令。
      --replacefiles:直接覆蓋已存在的檔案。
      --replacepkgs:重新安裝某個已經安裝過的套件。
      --force:--replacefiles 與 --replacepkgs 。
      --test:測試套件是否可以被安裝到使用者的 Linux 環境當中。
      --prefix NEWPATH:安裝到新目錄 NEWPATH
      
    2. 安裝 rp-pppoe-3.1-5.i386.rpm
      [root@linux ~]# rpm -ivh rp-pppoe-3.1-5.i386.rpm
      Preparing...     ####################################### [100%]
         1:rp-pppoe    ####################################### [100%] 
      
    3. 一次安裝兩個以上的套件:
      [root@linux ~]# rpm -ivh a.i386.rpm b.i386.rpm *.rpm
      # 後面直接接上許多的套件檔案。
      
    4. 直接由網路 http://ftp.isu.edu.tw 安裝套件 logrotate:
      [root@dywHome2 ~]# rpm -ivh http://ftp.isu.edu.tw/pub/Linux/Mandriva\
      >/official/2007.0/i586/media/main/release/logrotate-3.7.3-4mdk.i586.rpm
      
    5. 測試 FlashPlayer 是否可以被安裝在目前作業環境:
      [root@dywHome2 ~]# rpm -ivh FlashPlayer-9.0.21.78-1.mdv2007.0.mde.i586.rpm --test
      Preparing...                ########################################### [100%]
      

  • RPM 套件升級與更新
    1. 升級選項以 -U 開頭,更新選項以 -F 開頭:
      rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
      rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
      install-options:
      與安裝相同
      
    2. 升級更新與安裝之差異:
      1. 升級後所有舊版套件皆被移除;
      2. 若舊版未安裝,則無法更新,即套件不會被安裝。
    3. 目前系統未安裝套件 baghira 情況下,以選項 -U 安裝:
      [root@dywOffice rpm]# rpm -Uvh baghira-0.7-2.2006mcnl.i586.rpm
      Preparing...                ########################################### [100%]
         1:baghira                ########################################### [100%]
      
    4. 目前系統未安裝套件 baghira 情況下,以選項 -F 安裝舊版:
      [root@dywOffice rpm]# rpm -Fvh baghira-0.7-2.2006mcnl.i586.rpm
      [root@dywOffice rpm]# rpm -Fvh baghira-0.7-0arn.20060mdk.i586.rpm
      
    5. 目前系統已安裝套件 baghira 情況下,以選項 -F 升級:
      [root@dywOffice rpm]# rpm -Fvh baghira-0.7-7arn.cvs20051211.20060mdk.i586.rpm
      Preparing...                ########################################### [100%]
         1:baghira                ########################################### [100%]
      

  • RPM 套件移除
    1. 移除選項:
      rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...
      
      --nodeps:不要去檢查 rpm 套件的相依性。
      --test:只是測試,不是真的移除套件。常與一般選項 -vv 一起使用來除錯
      
    2. 測試是否可移除 mplayer:
      [root@dywHome2 rpm]# rpm -e mplayer --test
      error: Failed dependencies:
              mplayer is needed by (installed) kplayer-0.5.3-5mdv2007.0.i586
      
    3. 測試不要檢查 rpm 套件的相依性下,是否可移除 mplayer:
      [root@dywHome2 rpm]# rpm -e mplayer --test --nodeps
      
    4. 移除套件 baghira:
      [root@dywHome2 rpm]# rpm -e baghira
      

  • RPM 查詢:選項以 -q 開頭。
    1. 查詢已安裝套件資訊的選項:
      [root@linux ~]# rpm -qa
      [root@linux ~]# rpm -q[licdR] 已安裝的套件名稱
      [root@linux ~]# rpm -qf 存在於系統上面的某個檔案
      
      -q  :僅查詢,後面接的套件名稱是否有安裝;
      -qa :列出所有已經安裝在本機 Linux 系統上面的套件名稱;
      -qi :列出該套件的詳細資訊 (information),包含開發商、版本與說明等;
      -ql :列出該套件所有的檔案與目錄所在完整檔名 (list);
      -qc :列出該套件的所有設定檔 (僅找出在 /etc/ 底下的檔名)
      -qd :列出該套件的所有說明檔 (僅找出與 man 有關的檔案)
      -qR :列出與該套件有關的相依套件所含的檔案 (Required )
      -qf :由後面接的檔案名稱,找出該檔案屬於哪一個已安裝的套件;
      
    2. 查詢未安裝套件資訊的選項:
      [root@linux ~]# rpm -qp[licdR] 未安裝的某個檔案名稱
      -qp[icdlR]:後面接的所有參數以上面的說明一致。
      
    3. 找出是否有安裝套件 logrotate?
      [root@linux ~]# rpm -q logrotate  # 不必加上版本。
      logrotate-3.7.1-10
      [root@linux ~]# rpm -q logrotating
      package logrotating is not installed
      
    4. 列出套件 logrotate 的所有目錄與檔案:
      [root@linux ~]# rpm -ql logrotate
      /etc/cron.daily/logrotate
      /etc/logrotate.conf
      ......以下省略......
      
    5. 列出套件 logrotate 的相關說明資料:
      [root@linux ~]# rpm -qi logrotate
      Name        : logrotate     Relocations: (not relocatable)
      Version     : 3.7.1         Vendor: Red Hat, Inc.
      Release     : 10            Build Date: Fri Apr  1 03:54:42 2005
      Install Date: Sat Jun 25 08:28:26 2005  Build Host: tweety.build.redhat.com
      Group       : 系統環境/基礎   Source RPM: logrotate-3.7.1-10.src.rpm
      Size        : 47825         License: GPL
      Signature   : DSA/SHA1, Sat May 21 01:34:11 2005, Key ID b44269d04f2a6fd2
      Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
      Summary     : 循環、壓縮、移除以及郵寄系統紀錄檔案。
      Description :
      The logrotate utility is designed to simplify the administration of
      log files on a system which generates a lot of log files. Logrotate
      allows for the automatic rotation, compression, removal, and mailing of
      log files. Logrotate can be set to handle a log file daily, weekly,
      monthly, or when the log file gets to a certain size. Normally,
      logrotate runs as a daily cron job.
      
    6. 查詢 mplayer 的設定檔
      [root@dywHome2 ~]# rpm -qc mplayer
      /etc/mplayer/codecs.conf
      /etc/mplayer/input.conf
      /etc/mplayer/menu.conf
      /etc/mplayer/mplayer.conf
      
    7. 查詢 mplayer 的說明檔
      [root@dywHome2 ~]# rpm -qd mplayer
      /usr/share/doc/mplayer-1.0/AUTHORS
      /usr/share/doc/mplayer-1.0/ChangeLog
      /usr/share/doc/mplayer-1.0/Copyright
      /usr/share/doc/mplayer-1.0/HTML/cs/advaudio.html
      /usr/share/doc/mplayer-1.0/HTML/cs/aspect.html
      /usr/share/doc/mplayer-1.0/HTML/cs/audio-codecs.html
      /usr/share/doc/mplayer-1.0/HTML/cs/audio-formats.html
      ----以下省略----
      
    8. 查詢 logrotate 相依套件
      [root@linux ~]# rpm -qR logrotate
      /bin/sh
      config(logrotate) = 3.7.1-10
      libc.so.6
      ----以下省略----
      
    9. 查詢 /bin/sh 是由那個套件提供?
      [root@linux ~]# rpm -qf /bin/sh
      bash-3.0-31
      # 參數後面接的是『檔案』,不是接套件。
      
    10. 查詢套件 kplayer ( 未安裝 )之相依套件?
      [root@dywHome2 rpm]# rpm -qpR kplayer-0.5.3-5mdv2007.0.i586.rpm
      mplayer
      kdelibs-common
      /bin/sh
      /bin/sh
      rpmlib(PayloadFilesHavePrefix) %*<== 4.0-1*)
      rpmlib(CompressedFileNames) %*<== 3.0.4-1*)
      libDCOP.so.4
      libICE.so.6
      ----以下省略----
      
    11. 查詢套件 logrotate 設定檔
      [root@dywHome2 ~]# rpm -qc logrotate
      /etc/logrotate.conf
      /etc/logrotate.d/syslog
      
    12. 若查出 logrotate 的設定檔案已被改過,而要從網路直接重新安裝,該如何作?
      [root@dywHome2 ~]# rpm -ivh http://ftp.isu.edu.tw/pub/Linux/Mandriva\
      >/official/2007.0/i586/media/main/release/logrotate-3.7.3-4mdk.i586.rpm\
      > --replacepkgs
      
    13. 如果誤刪 /etc/crontab,如何查詢它屬於那個套件,以重新安裝?
      # 雖然檔案 /etc/crontab 已不存在,但 /var/lib/rpm 資料庫中有記錄:
      [root@dywHome2 ~]# rpm -qf /etc/crontab
      crontabs-1.10-6mdk
      
    14. 查詢系統中含 player 字串的套件?
      [root@dywHome2 rpm]# rpm -qa | grep player
      mplayer-1.0-1.pre8.13.2mdv2007.0
      kplayer-0.5.3-5mdv2007.0
      
    15. 如何知道系統中以 c 開頭的套件有幾個?
      [root@dywHome2 rpm]# rpm -qa | grep ^c | wc -l
      15
      

  • RPM 驗證
    1. 驗證使用時機:
      1. 當資料不小心遺失;
      2. 誤殺了某個套件的檔案;
      3. 不知道修改到某一個套件的檔案內容。
    2. 驗證方法:
      1. rpm 套件安裝相關訊息存在 /var/lib/rpm 資料庫;
      2. 比對目前 Linux 系統環境與 /var/lib/rpm 資料庫。
    3. rpm 驗證:選項以 -V 開頭。
      [root@linux ~]# rpm -Va
      [root@linux ~]# rpm -V  已安裝的套件名稱
      [root@linux ~]# rpm -Vp 某 rpm 套件名稱
      [root@linux ~]# rpm -Vf 在系統上面的某個檔案
      選項:
      -V  :後接套件名稱,若該套件所含的檔案被更動過,才會列出來;
      -Va :列出目前系統上面所有可能被更動過的檔案;
      -Vp :後接套件名稱,列出該套件內可能被更動過的檔案;
      -Vf :列出某個檔案是否被更動過。
      
    4. 列出 Linux 內的套件 logrotate 是否被更動過?
      [root@dywHome2 rpm]# rpm -V logrotate
      .M......  d /usr/share/man/man8/logrotate.8.bz2
      
    5. 查詢 /etc/crontab 是否被更動過?
      [root@dywHome2 rpm]# rpm -Vf /etc/crontab
      .......T  c /etc/crontab
      
    6. 查詢 kplayer-0.5.3-5mdv2007.0.i586.rpm 內被更動過的檔案?
      [root@dywHome2 rpm]# rpm -Vp kplayer-0.5.3-5mdv2007.0.i586.rpm
      S.5....T    /usr/bin/kplayer
      
    7. 查詢結果第一項資訊說明:
      S :file Size differs
          檔案的容量大小被改變
      M :Mode differs (includes permissions and file type)
          檔案的類型或檔案的屬性(讀/寫/執行)已被改變
      5 :MD5 sum differs
          MD5 加密防駭的屬性已被改變
      D :Device major/minor number mis-match
          裝置名稱已被改變
      L :readLink(2) path mis-match
          Link 屬性已被改變
      U :User ownership differs
          檔案的所屬人已被改變
      G :Group ownership differs
          檔案的所屬群組已被改變
      T :mTime differs
          檔案的建立時間已被改變
      
      #當檔案所有的資訊都被更動過會顯: 
      SM5DLUGT c filename
      
    8. 查詢結果第二項資訊說明:
      c :設定檔(config file) 
      d :文件資料檔(documentation) 
      g :鬼檔案~通常是該檔案不被某個套件所包含,較少發生。(ghost file) 
      l :授權檔案(license file) 
      r :讀我檔案(read me)
      

  • RPM 數位簽章
    1. RPM 也可利用數位簽證來判斷待安裝的套件檔案是否有問題。
    2. 一般使用的是 GPG 的金鑰( public key )。
    3. 應用方法:
      1. 欲使用某 distribution 釋出的套件時,需將其釋出的 GPG 金鑰安裝在自己的 Linux 系統上。
      2. 當安裝該 distribution 釋出的套件時,就會檢查兩者的 key 是否相同:如果相同就直接安裝; 否則顯示未安裝 GPG 金鑰訊息。
    4. 使用網路安裝金鑰套件 gnupg-1.4.5-1mdv2007.0:
      [root@dywHome2 ~]# rpm -ivh http://ftp.isu.edu.tw/pub/Linux/Mandriva\
      >/official/2007.0/i586/media/main/release/gnupg-1.4.5-1mdv2007.0
      
    5. 查詢金鑰檔案及其設定檔:
      [root@dywHome2 ~]# find /etc /usr -name RPM-GPG-KEY*
      /etc/RPM-GPG-KEYS
      /usr/share/doc/rpm-4.4.6/RPM-GPG-KEY
      
    6. 匯入金鑰:
      [root@dywHome2 ~]# rpm --import /usr/share/doc/rpm-4.4.6/RPM-GPG-KEY
      
    7. 查詢所有金鑰:
      [root@dywHome2 ~]# rpm -qa gpg-pubkey*
      gpg-pubkey-78d019f5-3fd7504d
      gpg-pubkey-db42a60e-37ea5438
      gpg-pubkey-22458a98-3969e7de
      gpg-pubkey-70771ff3-3c8f768f
      
    8. 查詢金鑰內容:
      [root@dywHome2 ~]# rpm -qi gpg-pubkey-78d019f5-3fd7504d
      Name        : gpg-pubkey                   Relocations: (not relocatable)
      Version     : 78d019f5                          Vendor: (none)
      Release     : 3fd7504d                      Build Date: Fri 28 Dec 2007 08:15:11 AM EST
      Install Date: Fri 28 Dec 2007 08:15:11 AM EST      Build Host: localhost
      Group       : Public Keys                   Source RPM: (none)
      Size        : 0                                License: pubkey
      Signature   : (none)
      Summary     : gpg(MandrakeContrib <cooker@linux-mandrake.com>)
      Description :
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      Version: rpm-4.4.6 (beecrypt-4.1.2)
      
      mQGiBD/XUE0RBAC/sGlzkZ7WofaPgL2A7Vmi4aMLF9xNkIUzeekk2kxnZ+3P277i2wckvIox
      gGl13OvqWUf6+20jBPWrOGz6hs+MUve7k+A7sgmg3n2P6fa999nxWTK+7m7705x+2qXb+dxF
      ----中間省略----
      41trJiEWiEkEGBECAAkFAj/XUE4CGwwACgkQRFk1+HjQGfWi6wCeJPiCFBej0nfnBfaOWh98
      aNq3XfUAoKIfvhoiijsRwjSNmygJtZbiKOWC
      =yJ39
      -----END PGP PUBLIC KEY BLOCK-----
      
    9. 安裝 Fedora 7 rpm 套件 baghira:
      [root@dywHome2 rpm]# rpm -ivh baghira-0.8-1.fc6.i386.rpm
      warning: baghira-0.8-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY,
      key ID ff6382fa error: Failed dependencies:
              rtld(GNU_HASH) is needed by baghira-0.8-1.fc6.i386
      
    10. 移除金鑰:
      [root@dywHome2 ~]# rpm -e gpg-pubkey-78d019f5-3fd7504d
      
    11. 再查詢所有金鑰:
      [root@dywHome2 ~]# rpm -qa gpg-pubkey*
      gpg-pubkey-db42a60e-37ea5438
      gpg-pubkey-22458a98-3969e7de
      gpg-pubkey-70771ff3-3c8f768f
      

  • RPM 資料庫初始與重建:
    1. 選項
      rpm {--initdb|--rebuilddb} [-v]
      --initdb    :產生一個新的資料庫
      --rebuilddb :重已安裝套件標頭 (headers)重建資料庫
      
    2. 產生一個新的資料庫
      [root@dywHome2 ~]# rpm --initdb -v
      
    3. 重建資料庫
      [root@dywHome2 ~]# rpm --rebuilddb -v
      

練習題

  1. rpm 指令執行時,若要察看細部的安裝資訊,要使用什麼選項?
    Sol. -v
  2. rpm 指令執行時,若僅列出錯誤訊息,要使用什麼選項?
    Sol. -quiet
  3. rpm 指令執行時,若要列出大量除錯訊息,要使用什麼選項?
    Sol. -vv
  4. rpm 指令執行安裝時,要以什麼選項做為開頭?
    Sol. -i
  5. 如何以 rpm 指令安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm
  6. 如何以 rpm 指令同時安裝套件 a.i586.rpm 與 b.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm b.i586.rpm
  7. 如何以 rpm 指令安裝網路套件 http://ftp.isu.edu.tw/a.i586.rpm 與 b.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh http://ftp.isu.edu.tw/a.i586.rpm
  8. 如何以 rpm 指令測試套件 a.i586.rpm 是否可以被安裝到目前的環境,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -test
  9. 如何以 rpm 指令,不檢查 rpm 套件的相依性下,安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -nodeps
  10. 如何以 rpm 指令,不檢查 rpm 套件的 MD5 資訊下,安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -nomd5
  11. 如何以 rpm 指令,直接覆蓋已存在的檔案方式,安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -replacefiles
  12. 如何以 rpm 指令,重新安裝已安裝套件方式,安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -replacepkgs
  13. 如何以 rpm 指令,重新安裝已安裝套件且直接覆蓋已存在檔案的方式,安裝套件 a.i586.rpm,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -force
  14. 如何以 rpm 指令,安裝套件 a.i586.rpm 至目錄 /usr/local,並以安裝資訊列顯示安裝進度?
    Sol. rpm -ivh a.i586.rpm -prefix /usr/nomd5
  15. rpm 指令執行套件升級時,要以什麼選項做為開頭?
    Sol. -U
  16. rpm 指令執行套件更新時,要以什麼選項做為開頭?
    Sol. -F
  17. rpm 指令升級與安裝之差異為何?
    Sol. 升級後所有舊版套件皆被移除。
  18. rpm 指令更新與安裝之差異為何?
    Sol. 若舊版未安裝,則無法更新,即套件不會被安裝。
  19. 若系統未安裝套件 a.i586.rpm,則可以那兩種方式(再)安裝?
    Sol. rpm -ivh a.i586.rpm 或 rpm -Uvh a.i586.rpm
  20. 若系統已安裝套件 a.i586.rpm,則可以那三種方式(再)安裝?
    Sol. rpm -ivh a.i586.rpm 或 rpm -Uvh a.i586.rpm 或 rpm -Fvh a.i586.rpm
  21. 若系統未安裝套件 a.i586.rpm,則執行 rpm -Fvh a.i586.rpm,出現什麼狀況?
    Sol. 無法安裝,沒有任何訊息顯示。
  22. rpm 指令執行套件移除時,要以什麼選項做為開頭?
    Sol. -e
  23. 如何以 rpm 指令移除套件 baghira?
    Sol. rpm -e baghira
  24. 如何以 rpm 指令同時移除套件 mplayer 與 baghira?
    Sol. rpm -e mplayer baghira
  25. 如何以 rpm 指令測試是否可以移除套件 mplayer?
    Sol. rpm -e mplayer -test
  26. 如何以 rpm 指令測試不要檢查 rpm 套件的相依性下,是否可移除套件 mplayer?
    Sol. rpm -e mplayer -test -nodeps
  27. rpm 指令執行套件查詢時,要以什麼選項做為開頭?
    Sol. -q
  28. 如何以 rpm 指令查詢套件 mplayer 是否安裝?
    Sol. rpm -q mplayer
  29. 如何以 rpm 指令查詢套件 mplayer 的所有目錄與檔案?
    Sol. rpm -ql mplayer
  30. 如何以 rpm 指令查詢套件 mplayer 的相關說明資料?
    Sol. rpm -qi mplayer
  31. 如何以 rpm 指令查詢套件 mplayer 的設定檔?
    Sol. rpm -qc mplayer
  32. 如何以 rpm 指令查詢套件 mplayer 的說明檔?
    Sol. rpm -qd mplayer
  33. 如何以 rpm 指令查詢套件 mplayer 的相依套件?
    Sol. rpm -qR mplayer
  34. 如何以 rpm 指令查詢檔案 /bin/sh 是由那個套件提供?
    Sol. rpm -qf /bin/sh
  35. 如何以 rpm 指令查詢未安裝套件 kplayer-0.5.3-5mdv2007.0.rpm 的相依套件?
    Sol. rpm -pqR kplayer-0.5.3-5mdv2007.0.rpm
  36. 如果誤刪 /etc/crontab,如何以 rpm 指令查詢它屬於那個套件,以重新安裝?
    Sol. rpm -qf /etc/crontab
  37. 如何以 rpm 指令查詢系統中含 player 字串的套件?
    Sol. rpm -qa | grep "player"
  38. 如何以 rpm 指令知道系統中以 c 開頭的套件有幾個?
    Sol. rpm -qa | grep ^c | wc -l
  39. 請說明 RPM 驗證使用時機。
    Sol. 1.當資料不小心遺失;2.誤殺了某個套件的檔案;3.不知道修改到某一個套件的檔案內容。
  40. RPM 套件安裝相關訊息資料庫在那個目錄?
    Sol. /var/lib/rpm
  41. RPM 驗證,主要是將目前 Linux 系統環境與什麼資料庫比對?
    Sol. /var/lib/rpm 資料庫
  42. rpm 指令執行套件驗證時,要以什麼選項做為開頭?
    Sol. -V
  43. 如何以 rpm 指令驗證套件 logrotate 是否被更動過?
    Sol. rpm -V logrotate
  44. 如何以 rpm 指令驗證檔案 /etc/crontab 是否被更動過?
    Sol. rpm -Vf /etc/crontab
  45. 如何以 rpm 指令查詢 kplayer-0.5.3-5mdv2007.0.i586.rpm 內被更動過的檔案?
    Sol. rpm -Vp kplayer-0.5.3-5mdv2007.0.i586.rpm
  46. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 S 代表意義為何?
    Sol. 檔案的容量大小被改變
  47. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 M 代表意義為何?
    Sol. 檔案的類型或檔案的屬性(讀/寫/執行)已被改變
  48. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 5 代表意義為何?
    Sol. MD5 加密防駭的屬性已被改變
  49. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 D 代表意義為何?
    Sol. 裝置名稱已被改變
  50. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 L 代表意義為何?
    Sol. Link 屬性已被改變
  51. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 U 代表意義為何?
    Sol. 檔案的所屬人已被改變
  52. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 G 代表意義為何?
    Sol. 檔案的所屬群組已被改變
  53. 若以 rpm 指令驗證某套件,驗證資訊第一項 SM5DLUGT 中 T 代表意義為何?
    Sol. 檔案的建立時間已被改變
  54. 若以 rpm 指令驗證某套件,驗證資訊第二項出現 c 代表檔案類型為何?
    Sol. 設定檔(config file)
  55. 若以 rpm 指令驗證某套件,驗證資訊第二項出現 d 代表檔案類型為何?
    Sol. 文件資料檔(documentation)
  56. 若以 rpm 指令驗證某套件,驗證資訊第二項出現 g 代表檔案類型為何?
    Sol. 鬼檔案(ghost file)
  57. 若以 rpm 指令驗證某套件,驗證資訊第二項出現 l 代表檔案類型為何?
    Sol. 授權檔案(license file)
  58. 若以 rpm 指令驗證某套件,驗證資訊第二項出現 r 代表檔案類型為何?
    Sol. 讀我檔案(read me)
  59. RPM 數位簽章用途為何?
    Sol. RPM 利用數位簽證來判斷待安裝的套件檔案是否有問題。
  60. 若要使 RPM 數位簽章,必須安裝那個套件?
    Sol. gnupg
  61. RPM 數位簽章金鑰檔案為何?
    Sol. RPM-GPG-KEY
  62. 若 RPM 數位簽章金鑰檔案為 RPM-GPG-KEY,如何將其匯入?
    Sol. rpm -import RPM-GPG-KEY
  63. 若已安裝 RPM 數位簽章在目前的 mandriva 系統,現安裝 Fedora 7 之 rpm 套件,會出現什麼問題?
    Sol. 沒有簽章金鑰,故無法安裝。
  64. 如何移除 RPM 數位簽章金鑰 gpg-pubkey?
    Sol. rpm -e gpg-pubkey
  65. 如何產生一個新的 RPM 資料庫?
    Sol. rpm -initdb
  66. 如何重建 RPM 資料庫?
    Sol. rpm -rebuilddb


next up previous contents
Next: About this document ... Up: *套件修補、檢驗與管理 Previous: 檢驗軟體正確性   Contents
2017-06-14