In Ubuntu / Debian, come posso contrassegnare un pacchetto come non rimovibile automaticamente?


9

Supponiamo di avere un pacchetto (un pacchetto Python in questo caso) che installo usando Synaptic. Poiché la versione di questo pacchetto è in qualche modo obsoleta, la rimuovo in Synaptic e la installo usando easy_install. Una delle sue dipendenze è stata anche installata usando Synaptic, ma preferirei mantenere la versione installata di Synaptic piuttosto che easy_installinganche quella.

L'unico problema è che la dipendenza è ora contrassegnata come rimovibile automaticamente. Esiste un modo per contrassegnarlo come installato manualmente oltre a rimuoverlo e reinstallarlo? Se fa la differenza sto usando Ubuntu Jaunty.

Risposte:


3

Puoi "conservare" un pacchetto in Ubuntu.

Sostenere un pacchetto in pratica significa che stai dicendo al gestore di pacchetti di mantenere la versione corrente in ogni caso. Ciò è utile se una versione più recente di un programma attualmente funzionante si interrompe dopo un aggiornamento.

Puoi farlo tramite Synaptic o dalla riga di comando tramite apt / dpkg. La versione della riga di comando per contenere un pacchetto è:

echo package_name hold | dpkg --set-selections

La documentazione della comunità di Ubuntu ha una guida più completa che spiega come bloccare o conservare i pacchetti .



2
Hold è normalmente utilizzato per impedire gli aggiornamenti alle versioni più recenti; non dovrebbe essere usato per conservare un pacchetto. L'uso di hold ti impedirà di ricevere aggiornamenti sulla sicurezza e sulla distribuzione e costituirà un onere aggiuntivo durante gli aggiornamenti. Contrassegnare il pacchetto come installato manualmente dovrebbe essere la strada giusta (vedi la mia risposta ...).
Thomas Guyot-Sionnest il

6

So che puoi farlo in attitudine. Puoi farlo nella sua GUI selezionando il pacchetto e premendo 'm' o selezionando "Segna manuale" dal menu "Pacchetto", oppure usando la riga di comando:

aptitude install <nome_pacchetto> & m

5

Puoi usarlo apt-mark manual <package>, da Synaptic, Package=> [ ] Automatically Installed(deselezionalo).

ex:

# Mark <some_package> as manually-installed:
apt-mark manual <some_package>

# Mark <other_package> as automatically-installed (ex if you know it's a
# dependency to something else and you want to make sure it'll be
# auto-removable if it's no longer used):
apt-mark auto <other_package>

Inoltre, se lo si utilizza apt-get install <package>su un pacchetto già installato, verrà implicitamente contrassegnato come manuale.


Questo sembra fare esattamente come desiderato. Ha cambiato lo stato del mio pacchetto da [installed,auto-removable]a giusto [installed].
mwfearnley,
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.