2,135 瀏覽數

dpkg 指令

使用 Ubuntu 會常用 #apt-get 的指令來安裝套件,其實這個 #apt-get 就是一個比較聰明處理的 deb 套件的使用工具 (deb 檔案是基於 Debian 的Linux 發行版的套件檔案),雖然現在我們都透過比較聰明的方式來管理系統套件,但還是可以來瞭解一下 #dpkg 是怎麼使用的(使用方式類似於 Redhat 的 rpm 檔案). < >

下面列的幾個是常用的 dpkg 參數,更多的參數使用可以直接使用 #dpkg –help 來查詢.

  • 安裝套件(等同 #rpm -i)
    # dpkg -i | –install < .deb file name>
  • 刪除套件,但保留設定檔(等同 #rpm -e)
    # dpkg -r|–remove < package >
  • 刪除套件,不保留設定檔 (rpm 好像沒有類似的選項)
    # dpkg -P|–purge < package >
  • 列出系統中所有已經安裝的套件(等同 #rpm -qa)
    # dpkg -l|–list [< pattern > …]
    後面可以加 pattern 來查詢單一套件,如果不確定套件名稱可以配合 grep 來查套件關鍵字查.

    root@ubuntu:~# dpkg -l ssh
    Desired=Unknown/Install/Remove/Purge/Hold
    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
    ||/ Name           Version      Architecture Description
    +++-==============-============-============-=================================
    ii  ssh            1:6.6p1-2ubu all           secure shell client and server (metapackage)
    
    root@ubuntu:~# dpkg -l |grep -i ssh
    ii  libssh-4:i386    0.6.1-0ubuntu3.1     i386   tiny C SSH library
    ii  openssh-client   1:6.6p1-2ubuntu2.3   i386   secure shell (SSH) client, for secure access to remote machines
    ii  openssh-server   1:6.6p1-2ubuntu2.3   i386   secure shell (SSH) server, for secure access from remote machines
    .............
    
  • 顯示檔案屬於哪個套件(等同 #rpm -qf)
    需要為完整路徑檔案名稱,沒有指定會把所有關於 的檔案找出來.
    # dpkg -S|–search < pattern >…

    root@ubuntu:~# dpkg -S sshd
    openssh-server: /usr/sbin/sshd
    openssh-server: /usr/share/man/man8/sshd.8.gz
    openssh-server: /usr/share/doc/openssh-client/examples/sshd_config
    openssh-server: /usr/lib/tmpfiles.d/sshd.conf
    openssh-server: /etc/pam.d/sshd
    openssh-server: /usr/share/man/man5/sshd_config.5.gz
    
    root@ubuntu:~# dpkg -S /usr/sbin/sshd
    openssh-server: /usr/sbin/sshd
    
  • 列出套件有安裝了哪一些檔案在系統中(等同 #rpm -ql)
    # dpkg -L|–listfiles < package >…

    root@ubuntu:~# dpkg -L openssh-server
    /.
    /usr
    /usr/share
    /usr/share/apport
    /usr/share/apport/package-hooks
    ..........
    
  • 列出套件說明(等同 #rpm -qi)
    # dpkg -s|–status < package >

    root@ubuntu:~# dpkg -s openssh-server
    Package: openssh-server
    Status: install ok installed
    Priority: optional
    Section: net
    Installed-Size: 991
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Architecture: i386
    Multi-Arch: foreign
    Source: openssh
    Version: 1:6.6p1-2ubuntu2.3
    Replaces: ssh, ssh-krb5
    Provides: ssh-server
    .................
    

網友的想法

  1. 自動參照通知: Linux – Package Manager 套件管理 – Benjr.tw

發表迴響