Installa solo le dipendenze di un determinato pacchetto in Debian o Ubuntu (apt)


18

Esiste un modo migliore per installare solo le dipendenze richieste di un pacchetto, invece di installarlo direttamente con apt-get (o qualsiasi altro frontend di dpkg) e quindi rimuoverlo immediatamente, tralasciando le sue dipendenze?

Risposte:


22

apt-cache depends pkgname mostrerà le dipendenze di un pacchetto.

Se vuoi tutto in un solo comando, potresti fare di peggio di:

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`

16

apt-get fornisce un comando esattamente per quello ...

apt-get build-dep <package name>

Dalle pagine man che ottieni

build-dep fa in modo che apt-get installi / rimuova i pacchetti nel tentativo di soddisfare le dipendenze della build per un pacchetto sorgente. Per impostazione predefinita, le dipendenze sono soddisfatte per creare il pacchetto in modo nativo. Se lo si desidera, è possibile specificare un'architettura host con l'opzione --host-architecture.


9
Non potrebbe esserci una differenza tra build dependenciese dependencies? Come in, se normalmente si installa un programma si ottengono dipendenze che deve effettivamente funzionare, e con dipendenze di build penso di più a librerie, compilatori, cose del genere. Quindi, dato che non sono sicuro (questa risposta ha voti positivi) ma a me sembra non banale che ottenere dipendenze di build sia lo stesso di ottenere le dipendenze (di esecuzione) dei pacchetti?
Nanne,

1
Hai ragione. Al momento di rispondere a questa domanda, molto tempo fa, non avevo una completa comprensione della differenza tra dipendenze di build (tempo di build) e dipendenze (tempo di esecuzione). Grazie per aver chiarito Nanne!
Nathan Crock,

4

aptitude ti consentirà di specificare una query anziché un nome di pacchetto durante l'installazione. Se si desidera installare le dipendenze del pacchetto denominato foo, è possibile installare i pacchetti che hanno una dipendenza inversa su foo:

aptitude install '?reverse-depends(foo)'

o

aptitude install '~Rfoo'

Il problema con l'installazione di un pacchetto e poi la sua rimozione è che tutti i pacchetti che vengono installati come dipendenze saranno contrassegnati come "installati automaticamente" e verrebbero rimossi da qualsiasi azione di installazione / rimozione / aggiornamento da aptitude o quando si esegue a apt-get autocleanmeno che contrassegnarli come installati manualmente utilizzando aptitude marko il apt-markcomando.

Tuttavia, questo fa sorgere la domanda sul perché vorresti farlo. La mia ipotesi migliore è che stai cercando di installare dipendenze per alcuni software che stai per compilare a mano. In tal caso, installeresti prima le dipendenze di compilazione apt-get build-dep packagename, ma poi dovresti creare un pacchetto fittizio con dipendenze di runtime (che generalmente differiscono dalle dipendenze di compilazione) utilizzando il equivpacchetto per creare un pacchetto fittizio con le dipendenze corrette per il tuo programma compilato manualmente. Vedere le informazioni equivsin The APT HOWTO


3

In caso di creazione di pkgname da fonti

apt-get build-dep pkgname

1
costruire dipendenze non sono dipendenze di runtime
vedi

>> In caso di costruzione di pkgname da fonti
eri il

Non so dove sia garantito / documentato. Inoltre, non lo rende ancora uguale per qualsiasi scopo. Uso build-dep continuamente, ma vorrei davvero una risposta migliore alla domanda attuale. Ne ho bisogno anch'io.
visto il
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.