Come faccio a verificare se un pacchetto è installato sul mio server?

123

Recentemente ho installato Ubuntu Server edizione 13.10 (Saucy Salamander). Ma ho avuto un po 'di problemi.

Alla fine dell'installazione, ti chiede molti pacchetti extra, che tu li voglia o meno, come il server OpenSSH e l'host della macchina virtuale. Ecco cosa sto guardando:

Ora, il mio problema è che non riesco a ricordare se ho controllato la casella di controllo "host della macchina virtuale". Come posso verificare se il mio server ha i pacchetti corrispondenti?

Quali pacchetti vengono forniti con l'host della macchina virtuale?

    
posta D.Zou 19.02.2014 - 22:12
fonte

6 risposte

173

Per elencare tutti i pacchetti installati

Qui "less" è un semplice lettore di testo utilizzato per scorrere l'elenco dei pacchetti in un nuovo buffer che si apre nella finestra del terminale esistente. L'elenco non verrà mescolato con altri comandi del terminale e output. Premi "q" per tornare al prompt del terminale. Vedi "man less" per maggiori informazioni.

dpkg -l | less

Per verificare se un pacchetto è installato o meno:

dpkg -l {package_name}
dpkg -l vlc

Per verificare se il pacchetto è installato o meno (ad esempio, vlc ). Se installato, avvia il pacchetto:

dpkg -l | grep vlc

Mostra il percorso in cui è installato il pacchetto. Il "-S" (maiuscola S) sta per "cerca"

sudo dpkg -S {package_name}
sudo dpkg -S skype

Per utilizzare Grep per la ricerca:

dpkg -l | grep {keywords}
dpkg -l | grep pdf
    
risposta data Lonston 20.02.2014 - 10:12
fonte
23

Usa dpkg

Questo comando è il gestore dei pacchetti debian.

Puoi elencare tutti i pacchetti installati con

dpkg -l

Puoi vedere i dettagli per un pacchetto specifico con

dpkg -p packagename

E per sapere se è installato, usa

dpkg -s packagename | grep Status

Puoi scoprire quale pacchetto contiene il software che desideri con

apt-cache search name*  

Nel tuo caso dovresti usare questo comando per cercare il nome del pacchetto che vuoi

apt-cache search virtual machine host 
    
risposta data onurbekiroglu 20.02.2014 - 10:10
fonte
20

apt -qq list PACKAGE può anche essere usato per controllare se il PACKAGE è installato.

Se installato, stamperà qualcosa di simile (con [installed] alla fine della riga):

$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]

Se non installato, l'output sarà:

$ apt -qq list awscli
awscli/stable 1.4.2-1 all
    
risposta data Viktor Benei 11.09.2016 - 15:54
fonte
12

Ho trovato un modo per verificare l'installazione del pacchetto con solo il comando dpkg-query e nessun pipe.

Ho cercato una soluzione simile mentre scrivevo un compito per un playbook ansible.

Quindi, puoi fare qualcosa di simile a questo:

/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'

Questo è solo un altro modo di fare la cosa.

    
risposta data DenKoren 01.09.2015 - 21:47
fonte
4

Sto scrivendo una nuova risposta come Tasksel 'Nome attività' NON compare in dpkg o apt interrogazioni. Significa che le altre risposte sono incomplete (o sbagliate).

"Non ricordo se ho controllato la casella di controllo" host della macchina virtuale "..

Verifica se esiste un asterisco in base al nome dopo aver ripetuto sudo tasksel .
(o un ' i ' se è in esecuzione tasksel --list-tasks ).

Se non vedi questo, allora probabilmente non ha il meta-pacchetto 'installato.

".. Come posso controllare se il mio server ha i pacchetti corrispondenti?"

Se vuoi scoprire cosa è installato nel meta-pacchetto tasksel di Virtual Machine Host:

tasksel --list-tasks

(nel tuo caso tasksel --list-tasks | grep virt è sufficiente)

Questo dà il corretto compito nome e un'indicazione sul fatto che sia installato.

Nel tuo caso questo nome del taskel è virt-host .

"Quali pacchetti vengono forniti con l'host della macchina virtuale?"

Dall'ultimo comando, trova il nome dell'attività tasksel.
Questo è necessario per il prossimo comando:

tasksel --task-packages virt-host

Questo elenca il singolo meta-pacchetto di Tasksel (indicato con l'aggiunta di '^') che costituisce il nome.
Nel tuo caso è virt-host^ .

Una volta trovato il meta-nome corretto, puoi usare apt:

 apt show virt-host^ | grep "Package:"

(o apt-cache show ... se apt show non funziona.)

Questo mostrerà tutti i pacchetti che compongono il meta pacchetto specificato.

Quindi:

 dpkg -l {each individual pkg name listed above}

Questo ti dirà se il singolo pacchetto è installato / disinstallato (annotato dalla seconda lettera: lo stato 'i' indica installato). Fai questo per tutti i pacchetti elencati sotto il pacchetto task / meta.

Questo dovrebbe rispondere alle domande originali.

Nota a margine: /usr/share/tasksel/descs/ubuntu-tasks.desc contiene anche le descrizioni dei meta-pacchetti di Tasksel. Se: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc mostrerà il nome del meta-pacchetto APT corretto. (Nel tuo caso questo è ubuntu-virt-server ). Puoi anche usare apt comandi con questo meta-nome.

Se vuoi rimuovere i pacchetti tasksel, questo entra un po 'nelle erbacce. Consulta il link o un numero qualsiasi di altre risposte là fuori.

Si noti che i pacchetti apt "meta" non corrispondono ai nomi dei pacchetti di Tasksel. Per ulteriori informazioni, consultare la pagina della community di Tasksel .

    
risposta data bshea 19.10.2016 - 17:17
fonte
2

Usa tasksel ( sudo apt-get install tasksel se non lo hai già) ed esegui tasksel --list-tasks .

tasksel stamperà un elenco delle attività e ci sarà un i accanto a ogni attività installata e un u accanto a ogni attività che non è installata.

Se desideri installare l'attività, usa tasksel install <task> . Il nome dell'attività che stai cercando è virt-host .

Gli elementi di selezione del software sono chiamati "tasks".

    
risposta data Blake R 19.02.2014 - 22:31
fonte

Leggi altre domande sui tag