Come vietare l'installazione di un pacchetto specifico?


27

Posso configurare Ubuntu per non installare mai un pacchetto specifico anche se è richiesto da un altro pacchetto che installo?


Non è possibile installare un pacchetto senza le sue dipendenze, a meno che non si desideri interrompere il sistema.
enzotib,

2
@enzotib, prima di tutto ti sbagli: le dipendenze dei pacchetti possono essere ridondanti. ci sono numerosi esempi, oppure puoi aver installato un equivalente di un pacchetto richiesto in un altro modo (ad esempio ho openjdk-6 installato in quanto è richiesto da tutte le applicazioni java nei repository, ma non uso mai openjdk-6, I imposta tutto per usare invece openjdk-7 o Oracle JDK 7). E la seconda cosa - non ho detto che voglio installare il pacchetto dipendente - può solo generare un errore in questo caso, voglio solo assicurarmi che un determinato pacchetto non sia mai installato comunque.
Ivan,

Risposte:


28

Come in Debian possiamo usare apt-pinning anche per il controllo di versione e installazione in Ubuntu .

Per bloccare l'installazione di un determinato pacchetto possiamo inserire le seguenti righe /etc/apt/preferences

Package: <nameofpackage>
Pin: origin ""
Pin-Priority: -1

Dando una priorità negativa per questo pin, bloccheremo l'installazione <nameofpackage>da origini non ulteriormente specificate, ovvero il nostro repository locale. Ovviamente possiamo usare apt-pinning per bloccare una determinata versione del pacchetto o origine specifica.

Prima di procedere, si consiglia vivamente di leggere la documentazione fornita sopra e la manpage da apt_preferences perché gli errori in questi file non sono controllati da apt e se si verificano potrebbero compromettere la gestione del pacchetto.

Per un'alternativa e per impedire l'aggiornamento di un determinato pacchetto, consultare:


Sai se questo potrebbe funzionare in Ubuntu 12.04? Un'altra domanda è riferire che forse non funziona.
Lucio,

1
@Lucio: certo - funziona ancora; appena testato per funzionare anche in 12.10.
Takkat,

3
Nella Package:riga, puoi elencare più pacchetti separati da spazi, in questo modo: Pacchetto: metacity metacity-common libmetacity-private0a. (Sembra che modelli come Package: metacity * siano anche possibili)
Volker Siegel

5
In Ubuntu 16.04 Pin: origin ""non ha funzionato per me, ma Pin: release *ha funzionato.
barbaz,

3

In debian puoi bloccare un pacchetto e quel pacchetto non verrà più aggiornato

# echo name_of_package hold | dpkg --set-selections

ma non sono sicuro che tu possa proibire


L'ho appena provato su Ubuntu 15.10 (astutamente) e non ha bloccato il pacchetto; mi ha appena dato un avvertimentopackage not in database
Brent Baccala il

2

Ho un pacchetto che continua a sgattaiolare dentro e rompendo git

sudo apt-mark hold libgnutls-deb0-28

dovrebbe impedire l'installazione di quel pacchetto

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.