如何确定Debian上是否安装了特定的软件包?


9

我正在使用Raspberry Pi B +和Raspbian 5/5/2015以及一些使用了几年的指南。我已经将一个外部NTFS HDD连接到Pi。由于文章的年代,通用惯例已发生变化,事实证明某些包,功能部件现在是内置的和/或自动的。

例如,我发现如果您仅安装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 = noscript

我的下一步是启动并运行Samba。是的,我知道Linux人士讨厌Windows,但是我是Windows专家,所以直到我对Linux有了足够的了解,Linux系统才是我的后备。最终,这款Raspberry Pi将获得一个多TB的驱动器,尽管目前只有几GB。这就是为什么它需要是NTFS的原因。

我想检查是否安装了Samba,因为说明中的下一步告诉我如何安装和配置它。我已经尝试了一些命令,但不确定如何处理结果或如何使用它们。我在这里搜索,并且技术细节超出了我的能力范围,并且我认为它们不能满足我看似很简单的需求,以了解是否已安装软件包。

我试过了:

apt-cache dump

这给了我太多数据。它向下滚动了几分钟。我是从The Raspberry Pi Handbook 3rd Edition (链接-亚马逊)获得的

我试过了

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

我在这里找到了一些相关的主题,但是没有给我我想要的东西。我只想知道安装了什么,但我想这是另一个问题的话题。


Raspban和Debian可以互换吗?我认为不会,因为Raspbian特定于Raspberry Pi,而Debian可能可以在多个硬件平台上运行。
YetAnotherRandomUser15年

Raspbian和Debian不可互换,但是Raspbian是具有相同软件包管理机制的Debian衍生产品。以下使用apt-cache和dpkg之类的命令的答案同样适用于这两种方式(以及适用于Ubuntu,Linux Mint等)
Benjamin Staton

Answers:


10

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

i如果安装了软件包,则显示以开头的行;如果未安装软件包,则显示以up不行的开头。

$ 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-querydpkg返回有关程序包数据库信息的子命令。)

请注意,如果只想确保已安装软件包,则只​​需运行

apt-get install samba

如果已经安装了发行版中可用的软件包的最新版本,则不会执行任何操作。如果尚未安装该软件包,它将安装该软件包;如果您使用的是旧版本,它将对其进行升级。


5
dpkg -l | grep -e package1 -e package2 ....

将列出您对当前安装状态感兴趣的软件包。输出将是这样的

bala@bala-laptop:~$ dpkg -l | grep apache2
ii  apache2                                2.4.10-10                            amd64        Apache HTTP Server

前2个字符告诉状态-ii在这里表示第一个i-标记为安装第二个i-成功安装

还有其他状态代码,例如r表示已删除,p表示已清除等。


+1表示强大功能和简便性,如果您不知道确切的软件包名称,则允许部分匹配。偏在的dpkg -l | grep的PHP可能会返回PHP5,PHP5-CLI,PHP5常见,等等
本杰明·斯塔顿

dpkg -l apache2 | grep的'`^ II'
科里德堡


1
aptitude show foo

将显示包装状态

root @ srv:#aptitude显示python-jmespath
软件包:python-jmespath
版本:0.9.0-2
状态:未安装
优先级:可选
部分:python
维护者:Debian Python模块团队python-modules-team@lists.alioth.debian.org
建筑:全部
未压缩大小:97.3 k
取决于:python(> = 2.7)
说明:JSON匹配表达式(Python 2)
 JMESPath是python库,可让您声明性地指定如何从JSON文档中提取元素。

 该软件包包含适用于Python 2的模块。
主页:https://github.com/boto/jmespath


root @ cx-ops02:#

0

希望您能解决这个问题。

  • dpkg --help 有关安装和卸载软件包的帮助[*];

  • 使用aptaptitude用于用户友好的包裹管理;

  • 输入调试标志值dpkg -Dhelp列表dpkg
  • 输入dpkg --force-help强制选项列表;
  • 输入dpkg-deb --help有关操作*.deb文件的帮助;

标有[*]的选项会产生大量输出-通过lessmore

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.