Jak sprawdzić, czy konkretny pakiet jest zainstalowany na Debianie?


9

Pracuję z Raspberry Pi B + i Raspbian 5/5/2015 oraz kilkoma przewodnikami, które mają kilka lat. Mam zewnętrzny dysk twardy NTFS podłączony do Pi. Ze względu na wiek artykułów zmieniły się powszechne praktyki i okazuje się, że niektóre pakiety oraz funkcje i funkcje są teraz wbudowane i / lub automatyczne.

Na przykład dowiedziałem się, że Raspbian poradzi sobie z automatycznym montowaniem dysku / woluminu NTFS, jeśli tylko zainstalujesz ntfs-3g. Wszystkie instrukcje i wskazówki, które mogłem znaleźć (IRC, forum Raspberry pi i koleś z Linuksa, których znam) wszystko poszło wyjątkowo technicznie, robiąc, kto wie, co w moim systemie, aby spróbować mi pomóc, podczas gdy w rzeczywistości wszyscy potknęliśmy się o automatyczne funkcje których nikt nie wiedział ani nie chciał sprawdzić. Od tamtej pory zainstalowałem Raspbian na nowej karcie SD i do tej pory właśnie włączyłem SSH, zaktualizowałem apt-get i zainstalowałem NTFS-3G.

To jest artykuł, którego używam teraz: http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed = noscript

Moim następnym krokiem jest uruchomienie Samby. Tak, wiem, że ludzie Linuksa nienawidzą Windowsa, ale jestem facetem z Windowsa, więc dopóki nie dowiem się wystarczająco dużo o Linuksie, aby system Linux był moją awarią, maszyny Windows są moimi wadami. Ostatecznie Raspberry Pi otrzyma napęd o pojemności wielu TB, choć na razie jest to zaledwie kilka GB; dlatego musi to być NTFS.

Chciałbym sprawdzić, czy Samba jest zainstalowana, ponieważ następny krok w moich instrukcjach mówi mi, jak ją zainstalować i skonfigurować. Wypróbowałem kilka poleceń i nie jestem pewien, co zrobić z wynikami lub jak ich używać. Szukałem tutaj, a szczegóły techniczne przekraczają moje możliwości i nie sądzę, że odpowiadają mojej pozornie prostej potrzebie sprawdzenia, czy pakiet jest zainstalowany, czy nie.

Próbowałem:

apt-cache dump

to dało mi zdecydowanie za dużo danych. Przewijał w dół przez kilka minut. Dostałem to z The Raspberry Pi Handbook 3rd Edition (Link - Amazon)

próbowałem

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:

ale nie jestem pewien, co sądzić o wynikach. Nie mogę powiedzieć, czy będzie to apt-get serwerów i uzyskiwanie informacji, czy wyciąganie ich z mojego systemu.

Próbowałem :

dpkg --get-selections

który dostałem stąd: http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript, ale myślę, że jestem napotyka ten sam problem. Wygląda na to, że składnia zmieniła się od 2007 roku. Strona man / plik pomocy wydaje mi się, że wierzę, że polecenie powinno działać

Usage: dpkg [<option> ...] <command>

--get-selections [<pattern> ...] Get list of selections to stdout.

ale pojawia się błąd:

dpkg –get-selections samba
dpkg: error: need an action option

Znalazłem tu kilka pytań, które są ze sobą powiązane, ale nie dawaj mi tego, czego szukam. Chcę tylko wiedzieć, co jest zainstalowane, ale myślę, że to temat na kolejne pytanie.


Czy Raspban i Debian są wymienne? Nie sądzę, ponieważ Raspbian jest specyficzny dla Raspberry Pi, a Debian prawdopodobnie może działać na wielu platformach sprzętowych.
YetAnotherRandomUser

Raspbian i Debian nie są wymienne, ale Raspbian jest pochodną Debiana z tymi samymi mechanizmami zarządzania pakietami. Poniższe odpowiedzi przy użyciu poleceń takich jak apt-cache i dpkg dotyczą w równym stopniu obu (i Ubuntu, Linux Mint itp.)
Benjamin Staton

Odpowiedzi:


10

apt-cache showpkgpokazuje szczegółowe informacje o potencjalnie instalowalnych pakietach. Wskazuje, czy pakiet jest zainstalowany, ale nie w bardzo czytelny sposób:

Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)

Jeśli pakiet został zainstalowany, zobaczysz (/var/lib/dpkg/status)na końcu wiersza. Nie jest to jednak w pełni niezawodne, ponieważ zobaczyłbyś to również, gdyby pakiet był znany w systemie, ale nie w pełni zainstalowany, np. Jeśli był w stanie „pakiet został odinstalowany, ale pozostały pliki konfiguracyjne”.

Bardziej użyteczną apt-cachekomendą jest apt-cache policy. Wyraźnie pokazuje zainstalowaną wersję (jeśli istnieje) i dostępne wersje. Na przykład, oto dane wyjściowe z komputera, który sambazainstalował, ale nie 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

Alternatywnie możesz użyć dpkgpolecenia, aby uzyskać informacje o bieżącym systemie. APT to oprogramowanie, które zarządza pobieraniem pakietów, analizą zależności itp. Dpkg to oprogramowanie niskiego poziomu, które przeprowadza faktyczną instalację pliku pakietu.

dpkg -l samba

Pokazuje linię zaczynającą się od, ijeśli pakiet jest zainstalowany, oraz linię rozpoczynającą się od ulub pw ogóle, jeśli pakiet nie jest zainstalowany.

$ 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-queryto dpkgpodkomenda, która zwraca informacje o bazie danych pakietu.)

Pamiętaj, że jeśli chcesz tylko upewnić się, że pakiet jest zainstalowany, możesz po prostu uruchomić

apt-get install samba

To nic nie da, jeśli najnowsza wersja pakietu dostępna w twojej dystrybucji jest już zainstalowana. Zainstaluje pakiet, jeśli nie jest jeszcze zainstalowany, i zaktualizuje go, jeśli masz starszą wersję.


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

Wyświetli listę pakietów, które Cię interesują, wraz z ich aktualnymi ustawieniami instalacji. Wynik będzie mniej więcej taki

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

Pierwsze 2 znaki informują o statusie - ii oznacza tutaj Pierwszy i - oznaczony do instalacji Drugi i - Pomyślnie zainstalowany

Istnieją inne kody stanu, takie jak r oznaczające do usunięcia, p oznaczające do usuwania itp.


+1 za moc plus prostotę i umożliwianie częściowych dopasowań, jeśli nie znasz dokładnej nazwy pakietu. Częściowo w tym, że dpkg -l | grep php może zwrócić php5, php5-cli, php5-common itp.
Benjamin Staton

dpkg -l apache2 | grep '' ^ ii '
Corey Goldberg

1

dpkg -l $ PACKAGENAME

wystarczy. Pierwsze dwa znaki w linii pokażą status paczki


w szczególności status iioznacza, że ​​jest zainstalowany
Corey Goldberg

1
aptitude show foo

pokaże status paczki

root @ srv: # aptitude show python-jmespath
Pakiet: python-jmespath
Wersja: 0.9.0-2
Stan: nie zainstalowany
Priorytet: opcjonalny
Sekcja: python
Maintainer: Zespół Debian Python Modules python-modules-team@lists.alioth.debian.org
Architektura: wszystkie
Rozmiar nieskompresowany: 97,3 k
Zależy: python (> = 2.7)
Opis: Dopasowane wyrażenia JSON (Python 2)
 JMESPath to biblioteka Pythona, która pozwala deklaratywnie określić, jak wyodrębnić elementy z dokumentu JSON.

 Ten pakiet zawiera moduł dla Python 2.
Strona domowa: https://github.com/boto/jmespath


root @ cx-ops02: #

0

Mam nadzieję, że możesz rozwiązać ten problem.

  • dpkg --help w celu uzyskania pomocy na temat instalowania i odinstalowywania pakietów [*];

  • używać aptlub aptitudedo łatwego zarządzania pakietami;

  • wpisz dpkg -Dhelplistę dpkgwartości flag debugowania;
  • wpisz dpkg --force-helplistę opcji wymuszania;
  • wpisz, dpkg-deb --helpaby uzyskać pomoc dotyczącą manipulowania *.debplikami;

Opcje oznaczone [*] generują dużą wydajność - przepuszczaj przez lesslub more!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.