Как узнать, установлен ли определенный пакет в Debian?

9

Я работаю с Raspberry Pi B + и Raspbian 5/5/2015 и некоторыми гидами, которым несколько лет. У меня есть внешний NTFS HDD, подключенный к Pi. Из-за возраста статей общие практики изменились, и оказалось, что некоторые пакеты, функции и функции теперь встроены и / или автоматически.

Например, я обнаружил, что Raspbian будет обрабатывать автомонтирование диска / тома NTFS, если вы просто установите ntfs-3g. Все инструкции и указания, которые я смог найти (IRC, форум Raspberry Pi и чувак Linux, которого я знаю), были исключительно техническими, когда я пытался помочь моей системе «кто знает, что делать», когда в действительности мы все отключались от автоматических функций. что никто не знал и не думал проверять. С тех пор я установил Raspbian fresh на новую 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 была моим запасным вариантом, машины Windows - мои запасные варианты. Со временем этот Raspberry Pi получит мульти-ТБ накопитель, хотя на данный момент это всего лишь несколько ГБ; вот почему это должно быть NTFS.

Я хотел бы проверить, установлена ​​ли Samba, так как на следующем шаге в моей инструкции рассказывается, как установить и настроить его. Я пробовал несколько команд, и я не уверен, что делать с результатами или как их использовать. Я искал здесь, и технические детали выше моих возможностей, и я не думаю, что они отвечают моей, казалось бы, простой необходимости выяснить, установлен ли пакет или нет.

Я старался:

apt-cache dump

это дало мне слишком много данных. Он прокрутился вниз на несколько минут. Я получил это из The Raspberry Pi Handbook 3-е издание (ссылка - Amazon)

Я старался

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

Я нашел несколько вариантов, которые связаны между собой, но не дают мне то, что я ищу. Мне интересно просто знать, что установлено, но я думаю, что это тема для другого вопроса.

YetAnotherRandomUser
источник
Являются ли Raspban и Debian взаимозаменяемыми? Я думаю, что нет, поскольку Raspbian специфичен для Raspberry Pi, а Debian, вероятно, может работать на нескольких аппаратных платформах.
Ещё один случайный пользователь
Raspbian и Debian не являются взаимозаменяемыми, но Raspbian является производной от Debian с теми же механизмами управления пакетами. Приведенные ниже ответы с использованием таких команд, как apt-cache и dpkg, одинаково применимы к обоим (и к Ubuntu, Linux Mint и т. Д.)
Бенджамин

Ответы:

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если установлен пакет, и строку , начинающуюся с 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

Это ничего не даст, если уже установлена ​​последняя версия пакета, доступного в вашем дистрибутиве. Он установит пакет, если он еще не установлен, и обновит его, если у вас более старая версия.

Жиль "ТАК - прекрати быть злым"
источник
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-common и т. Д.
Бенджамин
dpkg -l apache2 | grep '`^ ii'
Кори Голдберг
1

dpkg -l $ PACKAGENAME

достаточно. Первые два символа в строке покажут статус пакета

Марко д'Итри
источник
в частности, статус iiозначает, что он установлен
Кори Голдберг
1
aptitude show foo

покажет статус пакета

root @ srv: # aptitude show python-jmespath
Пакет: python-jmespath
Версия: 0.9.0-2
Состояние: не установлено
Приоритет: необязательно
Раздел: питон
Сопровождающий: команда модулей 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


корень @ сх-ops02: #
valch85
источник
0

Я надеюсь, что вы можете решить эту проблему.

  • dpkg --help за помощь по установке и деинсталляции пакетов [*];

  • использовать aptили aptitudeдля удобного управления пакетами;

  • введите dpkg -Dhelpсписок dpkgзначений флага отладки;
  • введите dpkg --force-helpсписок параметров форсирования;
  • введите dpkg-deb --helpсправку о работе с *.debфайлами;

Параметры, помеченные [*], производят много выходных данных - передавайте через lessили more!

مالك القلب
источник