Wie markiere ich in Ubuntu / Debian ein Paket als nicht automatisch entfernbar?

9

Angenommen, ich habe ein Paket (in diesem Fall ein Python-Paket), das ich mit Synaptic installiere. Da die Version dieses Pakets etwas veraltet ist, entferne ich es in Synaptic und installiere es dann mit easy_install. Eine der Abhängigkeiten wurde ebenfalls mit Synaptic installiert, aber ich möchte lieber die von Synaptic installierte Version als easy_installingdiese beibehalten.

Das einzige Problem ist, dass die Abhängigkeit jetzt als automatisch entfernbar markiert ist. Gibt es eine andere Möglichkeit, es als manuell installiert zu markieren, als es zu entfernen und neu zu installieren? Wenn es einen Unterschied macht, benutze ich Ubuntu Jaunty.

Jason Baker
quelle

Antworten:

3

Sie können ein Paket in Ubuntu "halten".

Das Halten eines Pakets bedeutet im Grunde, dass Sie dem Paketmanager sagen, dass er die aktuelle Version behalten soll, egal was passiert. Dies ist nützlich, wenn eine neuere Version eines aktuell funktionierenden Programms nach einem Update nicht mehr funktioniert.

Sie können dies über Synaptic oder über apt / dpkg in der Befehlszeile tun. Die Befehlszeilenversion zum Speichern eines Pakets lautet:

echo package_name hold | dpkg --set-selections

In der Ubuntu Community-Dokumentation finden Sie eine ausführlichere Anleitung zum Anheften oder Halten von Paketen .


quelle
Vielen Dank! askubuntu.com/questions/140136/…
Andrejs Cainikovs
2
Hold wird normalerweise verwendet, um Upgrades auf neuere Versionen zu verhindern. Es sollte nicht verwendet werden, um ein Paket aufzubewahren. Die Verwendung von Hold verhindert, dass Sie Sicherheits- und Distributionsupdates erhalten, und ist eine zusätzliche Belastung bei Upgrades. Das Markieren des Pakets als manuell installiert sollte der richtige Weg sein (siehe meine Antwort ...).
Thomas Guyot-Sionnest
6

Ich weiß, dass Sie es in der Fähigkeit tun können. Sie können dies entweder in der GUI tun, indem Sie das Paket auswählen und 'm' drücken oder "Manuell markieren" im Menü "Paket" auswählen oder die Befehlszeile verwenden:

aptitude install <Paketname> & m
Danadam
quelle
5

Sie können dafür apt-mark manual <package>von Synaptic Package=> verwenden [ ] Automatically Installed(deaktivieren Sie es).

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>

Wenn Sie apt-get install <package>ein Paket verwenden, das bereits installiert ist, wird es implizit als manuell markiert.

Thomas Guyot-Sionnest
quelle
Dies scheint genau wie gewünscht zu funktionieren. Es hat den Status meines Pakets von [installed,auto-removable]einfach geändert [installed].
mwfearnley