Come scoprire se un pacchetto specifico è installato su Debian?


9

Sto lavorando con un Raspberry Pi B + e Raspbian 5/5/2015 e alcune guide che hanno pochi anni. Ho un HDD NTFS esterno collegato al Pi. A causa dell'età degli articoli, le pratiche comuni sono cambiate e si scopre che alcuni pacchetti, caratteristiche e funzioni sono ora integrati e / o automatici.

Ad esempio, ho scoperto che Raspbian gestirà il montaggio automatico di un'unità / volume NTFS se si installa semplicemente ntfs-3g. Tutte le istruzioni e le indicazioni che ho potuto trovare (IRC, raspberry pi forum e un tipo Linux lo so) sono diventate estremamente tecniche facendo chissà cosa al mio sistema per cercare di aiutarmi, quando in realtà stavamo inciampando su funzionalità automatiche che nessuno sapeva o pensava di controllare. Da allora ho installato Raspbian fresco su una nuova scheda SD e finora ho appena attivato SSH, aggiornato apt-get e installato ntfs-3g.

Questo è l'articolo che sto usando in questo momento: http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed = noscript

Il mio prossimo passo è far funzionare Samba. Sì, so che le persone Linux odiano Windows, ma sono un tipo Windows, quindi fino a quando non saprò abbastanza di Linux perché un sistema Linux sia il mio fallback, le macchine Windows sono i miei fallback. Alla fine questo Raspberry Pi otterrà un'unità multi-TB, anche se per ora sono solo pochi GB; ecco perché deve essere NTFS.

Vorrei verificare se Samba è installato, poiché il passaggio successivo nelle mie istruzioni mi dice come installarlo e configurarlo. Ho provato alcuni comandi e non sono sicuro di cosa fare con i risultati o come usarli. Ho cercato qui e i dettagli tecnici sono al di sopra delle mie capacità e non credo che rispondano alla mia apparentemente semplice necessità di scoprire se un pacchetto è installato o meno.

Provai:

apt-cache dump

questo mi ha dato troppi dati. Scorse verso il basso per alcuni minuti. L'ho preso da The Raspberry Pi Handbook 3rd Edition (Link - Amazon)

Provai

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:

ma non sono sicuro di cosa fare dei risultati. Non so dire se attiverà i server e otterrà informazioni o se le estrarrà dal mio sistema.

Provai :

dpkg --get-selections

che ho ricevuto da qui: http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript ma penso di essere incontrando lo stesso problema. Sembra che la sintassi sia cambiata dal 2007. La pagina man / file della guida sembra indurmi a credere che il comando dovrebbe funzionare

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

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

ma ricevo un errore:

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

Ho trovato alcune domande qui correlate, ma non darmi ciò che sto cercando. Sono interessato solo a sapere cosa è installato, ma suppongo che sia un argomento per un'altra domanda.


Raspban e Debian sono intercambiabili? Non penserei dal momento che Raspbian è specifico di Raspberry Pi e Debian probabilmente può funzionare su più piattaforme hardware.
YetAnotherRandomUser

Raspbian e Debian non sono intercambiabili, ma Raspbian è un derivato Debian con gli stessi meccanismi di gestione dei pacchetti. Le risposte che seguono che usano comandi come apt-cache e dpkg si applicano sia a entrambi (sia a Ubuntu, Linux Mint, ecc.)
Benjamin Staton,

Risposte:


10

apt-cache showpkgmostra informazioni dettagliate sui pacchetti potenzialmente installabili. Indica se il pacchetto è installato, in un certo senso, ma non in modo molto leggibile:

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

Se il pacchetto fosse installato, vedresti (/var/lib/dpkg/status)alla fine della riga. Tuttavia, questo non è del tutto affidabile, perché vedresti anche questa indicazione se il pacchetto era noto al tuo sistema ma non completamente installato, ad esempio se si trovava nello stato "pacchetto disinstallato ma file di configurazione rimasti".

Un apt-cachesottocomando più utile è apt-cache policy. Mostra chiaramente la versione installata (se presente) e le versioni disponibili. Ad esempio, ecco l'output di una macchina sambainstallata ma non 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

In alternativa, è possibile utilizzare il dpkgcomando per ottenere informazioni sul sistema corrente. APT è il software che gestisce il download di pacchetti, l'analisi delle dipendenze, ecc. Dpkg è il software di basso livello che esegue l'installazione effettiva di un file di pacchetto.

dpkg -l samba

Questo mostra una linea che inizia con ise il pacchetto è installato e una linea che inizia con uo po niente se il pacchetto non è installato.

$ 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è il dpkgsottocomando che restituisce informazioni sul database del pacchetto.)

Nota che se vuoi solo assicurarti che un pacchetto sia installato, puoi semplicemente eseguirlo

apt-get install samba

Questo non farà nulla se è già installata l'ultima versione del pacchetto disponibile nella tua distribuzione. Installerà il pacchetto se non è stato ancora installato e lo aggiornerà se si dispone di una versione precedente.


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

Elencherà i pacchetti che ti interessano con i loro stili di installazione correnti. L'output sarà qualcosa del genere

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

I primi 2 caratteri indicano lo stato - ii qui significa Primo i - contrassegnato per l'installazione Secondo i - Installazione corretta

Esistono altri codici di stato come significato r contrassegnato per la rimozione, significato p contrassegnato per l'eliminazione, ecc.


+1 per potenza più semplicità e possibilità di corrispondenze parziali se non si conosce il nome esatto del pacchetto. Parziale in ciò che dpkg -l | grep php potrebbe restituire php5, php5-cli, php5-common, ecc.
Benjamin Staton,

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

1

dpkg -l $ PACKAGENAME

è abbastanza. I primi due caratteri nella riga mostreranno lo stato del pacchetto


in particolare, lo stato iiindica che è installato
Corey Goldberg,

1
aptitude show foo

mostrerà lo stato del pacchetto

root @ srv: # aptitude show python-jmespath
Pacchetto: python-jmespath
Versione: 0.9.0-2
Stato: non installato
Priorità: facoltativa
Sezione: pitone
Maintainer: Debian Python Modules Team python-modules-team@lists.alioth.debian.org
Architettura: tutto
Dimensioni non compresse: 97,3 k
Dipende da: python (> = 2.7)
Descrizione: JSON Matching Expressions (Python 2)
 JMESPath è una libreria python che consente di specificare in modo dichiarativo come estrarre elementi da un documento JSON.

 Questo pacchetto contiene il modulo per Python 2.
Pagina iniziale: https://github.com/boto/jmespath


root @ cx-ops02: #

0

Spero che tu possa risolvere questo problema.

  • dpkg --help per assistenza sull'installazione e la disinstallazione di pacchetti [*];

  • utilizzare apto aptitudeper la gestione dei pacchetti intuitiva;

  • digitare dpkg -Dhelpun elenco di dpkgvalori flag di debug;
  • digitare dpkg --force-helpun elenco di opzioni di forzatura;
  • digita dpkg-deb --helpaiuto per manipolare i *.debfile;

Le opzioni contrassegnate con [*] producono un sacco di output: passalo attraverso lesso more!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.