Як дізнатися, чи встановлений певний пакет на Debian?


9

Я працюю з Raspberry Pi B + та Raspbian 5/5/2015 та деякими посібниками, яким кілька років. У мене зовнішній жорсткий диск NTFS підключений до Pi. Через вік (-ів) статей, звичні практики змінилися, і виявляється, що певні пакети та функції та функції тепер вбудовані та / або автоматичні.

Наприклад, я з’ясував, що Raspbian буде працювати з автоматичним налагодженням диска / обсягу NTFS, якщо ви просто встановите ntfs-3g. Всі вказівки та рекомендації, які я міг знайти (IRC, малиновий пі-форум, і хлопець 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 = носкрипт

Наступним моїм кроком є ​​підняття Самби та роботи. Так, я знаю, що люди з Linux ненавидять Windows, але я - хлопець з Windows, тому, поки я не зможу знати достатньо про Linux, щоб система Linux була моїм запасом, машини Windows - це мої запасні місця. Врешті-решт, цей Raspberry Pi отримає накопичувач на кілька ТБ, хоча зараз це лише кілька ГБ; ось чому він повинен бути NTFS.

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

Я намагався:

apt-cache dump

це дало мені занадто багато даних. Він прокручувався вниз протягом декількох хвилин. Я отримав це з 3-го видання "Підручник з Raspberry Pi" (посилання - 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

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


Чи взаємозамінні Raspban і Debian? Я думаю, що не так, оскільки Raspbian властивий Raspberry Pi, а Debian, ймовірно, може працювати на декількох апаратних платформах.
YetAgetherRandomUser

Raspbian і Debian не взаємозамінні, але Raspbian є похідною Debian з однаковими механізмами управління пакетами. Наведені нижче відповіді за допомогою таких команд, як apt-кеш і 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-звичайні тощо.
Бенджамін Статон,

dpkg -l apache2 | grep '`^ ii'
Корі Голдберг,

1

dpkg -l $ PACKAGENAME

достатньо. Перші два символи в рядку покажуть стан пакета


конкретно, статус iiозначає, що він встановлений
Corey Goldberg

1
aptitude show foo

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

root @ srv: # здатність показати python-jmespath
Пакет: python-jmespath
Версія: 0.9.0-2
Стан: не встановлено
Пріоритет: за бажанням
Розділ: пітон
Технічне обслуговування: Команда Debian Python Teams python-modules-team@lists.alioth.debian.org
Архітектура: усі
Нестиснений Розмір: 97,3 к
Залежить: python (> = 2.7)
Опис: відповідні вирази JSON (Python 2)
 JMESPath - це бібліотека python, яка дозволяє декларативно вказати, як витягти елементи з документа JSON.

 Цей пакет містить модуль для Python 2.
Домашня сторінка: https://github.com/boto/jmespath


root @ cx-ops02: #

0

Сподіваюся, ви зможете вирішити цю проблему.

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

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

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

Параметри, позначені [*], дають багато результатів - передайте їх через lessабо more!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.