如何確定 Debian 上是否安裝了特定軟體包?
我正在使用 Raspberry Pi B+ 和 Raspbian 5/5/2015 以及一些已有幾年曆史的指南。我有一個連接到 Pi 的外部 NTFS 硬碟。由於文章年代久遠,常見做法發生了變化,事實證明,某些包、特性和功能現在是內置的和/或自動的。
例如,我發現如果您只安裝 ntfs-3g,Raspbian 將處理 NTFS 驅動器/卷的自動掛載。我能找到的所有說明和指導(IRC、raspberry pi 論壇和我認識的一個 Linux 伙計)都非常技術性地對我的系統做誰知道什麼來試圖幫助我,而實際上我們都被自動功能絆倒了沒有人知道或想過要檢查。從那以後,我將 Raspbian 安裝到新的 SD 卡上,到目前為止,我只是打開了 SSH,更新了 apt-get,並安裝了 ntfs-3g。
這是我現在正在使用的文章:http: //www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed =無腳本
我的下一步是讓 Samba 啟動並執行。是的,我知道 Linux 人討厭 Windows,但我是 Windows 人,所以在我對 Linux 有足夠的了解以使 Linux 系統成為我的備份方案之前,Windows 機器是我的備份方案。最終,這個 Raspberry Pi 將獲得一個多 TB 的驅動器,儘管目前它只有幾 GB;這就是為什麼它需要是 NTFS 的原因。
我想檢查是否安裝了 Samba,因為我的說明中的下一步會告訴我如何安裝和配置它。我嘗試了一些命令,但不確定如何處理結果或如何使用它們。我在這裡進行了搜尋,技術細節超出了我的能力,我認為它們無法解決我看似簡單的查找是否安裝了軟體包的需求。
我試過:
apt-cache dump
這給了我太多的數據。它向下滾動了幾分鐘。我從樹莓派手冊第 3 版(連結 - 亞馬遜)中得到這個
我試過
apt-cache showpkg samba Package: samba Versions: 2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_ wheezy_main_binary-armhf_Packages) Description Language: File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_d ists_wheezy_main_binary-armhf_Packages MD5: 0122ac62ef5f4ae21eb2e195eb45ad1d Reverse Depends: winbind,samba 2.2.3-2 task-file-server,samba swat,samba 2:3.6.6-6+deb7u5 smbclient,samba 2.999+3.0.alpha21-4 samba4-common-bin,samba 2:3.3.0~rc2-5 samba4,samba 2:3.3.0~rc2-5 samba-dbg,samba 2:3.6.6-6+deb7u5 samba-common-bin,samba 3.0.20b-1 samba-common,samba 3.0.20b-1 qtsmbstatus-server,samba qemu-system,samba nautilus-share,samba 3.0.27a libwbclient0,samba 2:3.4.1 libpam-winbind,samba 2.2.3-2 libpam-smbpass,samba libnss-winbind,samba 2.2.3-2 gadmin-samba,samba education-main-server,samba dpsyco-samba,samba Dependencies: 2:3.6.6-6+deb7u5 - samba-common (5 2:3.6.6-6+deb7u5) libwbclient0 (5 2:3.6.6-6+d eb7u5) libacl1 (2 2.2.51-8) libattr1 (2 1:2.4.46-8) libc6 (2 2.13-28) libcap2 (2 2.10) libcomerr2 (2 1.01) libcups2 (2 1.4.0) libgcc1 (2 1:4.4.0) libgssapi-krb5 -2 (2 1.10+dfsg~) libk5crypto3 (2 1.6.dfsg.2) libkrb5-3 (2 1.10+dfsg~) libldap-2 .4-2 (2 2.4.7) libpam0g (2 0.99.7.1) libpopt0 (2 1.14) libtalloc2 (2 2.0.4~git20 101213) libtdb1 (2 1.2.7+git20101214) zlib1g (2 1:1.1.4) debconf (18 0.5) debcon f-2.0 (0 (null)) libpam-runtime (2 1.0.1-11) libpam-modules (0 (null)) lsb-base (2 3.2-13) procps (0 (null)) update-inetd (0 (null)) adduser (0 (null)) dpkg (2 1.15.7.2) openbsd-inetd (16 (null)) inet-superserver (0 (null)) smbldap-tools (0 (null)) ldb-tools (0 (null)) ctdb (0 (null)) logrotate (0 (null)) tdb-tools (0 (null)) samba4 (3 4.0.0~alpha6-2) samba-common (1 2.0.5a-2) Provides: 2:3.6.6-6+deb7u5 - Reverse Provides: pi@raspberrypi ~ $ apt-cache showpkg ntfs-3g Package: ntfs-3g Versions: 1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages) (/var/lib/dpkg/status) Description Language: File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages MD5: b2df024e8627b5d253b85f35263376ef Reverse Depends: udisks,ntfs-3g ntfsprogs,ntfs-3g ntfs-config,ntfs-3g ntfs-3g-dev,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2 ntfs-3g-dbg,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2 kvpm,ntfs-3g fsarchiver,ntfs-3g Dependencies: 1:2012.1.15AR.5-2.1+deb7u2 - debconf (18 0.5) debconf-2.0 (0 (null)) libc6 (2 2.13-28) libfuse2 (2 2.8.1) libgcc1 (2 1:4.4.0) libgcrypt11 (2 1.4.5) libgnutls26 (2 2.12.17-0) multiarch-support (0 (null)) fuse (0 (null)) libntfs-3g75 (0 (null)) ntfsprogs (3 1:2011.10.9AR.1-3~) libntfs-3g75 (0 (null)) ntfsprogs (0 (null)) Provides: 1:2012.1.15AR.5-2.1+deb7u2 - Reverse Provides: pi@raspberrypi ~ $ apt-cache showpkg ntfsprogs Package: ntfsprogs Versions: 1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages) Description Language: File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages MD5: 95f41af9cf1d0b5b66afb7d2a9e7c75d Reverse Depends: partitionmanager,ntfsprogs ntfs-3g,ntfsprogs ntfs-3g,ntfsprogs 1:2011.10.9AR.1-3~ gparted,ntfsprogs fsarchiver,ntfsprogs fai-setup-storage,ntfsprogs Dependencies: 1:2012.1.15AR.5-2.1+deb7u2 - ntfs-3g (0 (null)) Provides: 1:2012.1.15AR.5-2.1+deb7u2 - Reverse Provides:
但我不確定結果如何。我不知道它是要獲取伺服器並獲取資訊,還是從我的系統中提取資訊。
我試過 :
dpkg --get-selections
我從這裡得到的:http: //www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript 但我想我是遇到同樣的問題。自 2007 年以來,語法似乎發生了變化。手冊頁/幫助文件似乎讓我相信該命令應該可以工作
Usage: dpkg [<option> ...] <command> --get-selections [<pattern> ...] Get list of selections to stdout.
但我收到一個錯誤:
dpkg –get-selections samba dpkg: error: need an action option
我在這裡發現了一些相關的問題,但不要給我我要找的東西。我有興趣知道安裝了什麼,但我想這是另一個問題的主題。
apt-cache showpkg
顯示有關可能安裝的軟體包的詳細資訊。它確實表明是否安裝了包,有點,但不是以一種非常易讀的方式:Versions: 2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)
如果軟體包已安裝,您會
(/var/lib/dpkg/status)
在行尾看到。然而,這並不完全可靠,因為如果您的系統知道該軟體包但未完全安裝,您也會看到此指示,例如,如果它處於“已解除安裝軟體包但仍有配置文件”狀態。一個更有用的
apt-cache
子命令是apt-cache policy
. 它清楚地顯示了已安裝的版本(如果有)和可用的版本。例如,這是一台已samba
安裝但未安裝的機器的輸出samba-dev
:samba: Installed: 2:4.1.17+dfsg-2 Candidate: 2:4.1.17+dfsg-2 Version table: *** 2:4.1.17+dfsg-2 0 500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages 100 /var/lib/dpkg/status samba-dev: Installed: (none) Candidate: 2:4.1.17+dfsg-2 Version table: 2:4.1.17+dfsg-2 0 500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
或者,您可以使用該
dpkg
命令獲取有關目前系統的資訊。APT 是管理軟體包下載、依賴分析等的軟體。dpkg 是執行軟體封包件實際安裝的低級軟體。dpkg -l samba
如果安裝了包,則顯示一行,如果未安裝包,則顯示一行以or或根本沒有
i
開頭的行。u``p
$ dpkg -l samba samba-dev 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 samba 2:4.1.17+dfs amd64 SMB/CIFS file, print, and login s dpkg-query: no packages found matching samba-dev
(
dpkg-query
是dpkg
返回有關包數據庫資訊的子命令。)請注意,如果您只想確保安裝了一個包,您可以簡單地執行
apt-get install samba
如果您的發行版中可用的最新版本的軟體包已經安裝,這不會做任何事情。如果尚未安裝,它將安裝該軟體包,如果您有舊版本,它將對其進行升級。