W jaki sposób mogę oznaczyć pakiet w systemie Ubuntu / Debian jako nieusuwalny?

9

Załóżmy, że mam pakiet (w tym przypadku pakiet Python), który instaluję za pomocą Synaptic. Ponieważ wersja tego pakietu jest nieco nieaktualna, usuwam go w Synaptic, a następnie instaluję za pomocą easy_install. Jedną z jej zależności zainstalowano również przy użyciu Synaptic, ale wolałbym raczej zachować wersję zainstalowaną na Synaptic niż easy_installingteż.

Jedynym problemem jest to, że zależność jest teraz oznaczona jako automatycznie usuwalna. Czy jest jakiś sposób, aby oznaczyć go jako zainstalowany ręcznie, inny niż usunięcie go i ponowne zainstalowanie? Jeśli robi to różnicę, używam Ubuntu Jaunty.

Jason Baker
źródło

Odpowiedzi:

3

Możesz „zatrzymać” pakiet w Ubuntu.

Trzymanie pakietu oznacza w zasadzie, że każesz menedżerowi pakietu zachować aktualną wersję bez względu na wszystko. Jest to przydatne, jeśli nowsza wersja aktualnie działającego programu ulegnie awarii po aktualizacji.

Możesz to zrobić przez Synaptic lub w wierszu poleceń za pomocą apt / dpkg. Wersja wiersza polecenia do przechowywania pakietu to:

echo package_name hold | dpkg --set-selections

Dokumentacja społeczności Ubuntu zawiera bardziej kompletny przewodnik wyjaśniający, jak przypinać lub trzymać pakiety .


źródło
Dzięki! askubuntu.com/questions/140136/…
Andrejs Cainikovs
2
Zazwyczaj stosuje się wstrzymanie, aby zapobiec aktualizacjom do nowszych wersji; nie należy go używać do przechowywania paczki. Użycie blokady zablokuje ci otrzymywanie aktualizacji bezpieczeństwa i dystrybucji oraz będzie dodatkowym obciążeniem podczas aktualizacji. Oznaczenie pakietu jako zainstalowanego ręcznie powinno być właściwą drogą (patrz moja odpowiedź ...).
Thomas Guyot-Sionnest
6

Wiem, że potrafisz to zrobić umiejętnie. Możesz to zrobić w interfejsie GUI, wybierając pakiet i naciskając „m” lub wybierając „Oznacz ręcznie” z menu „Pakiet” lub używając wiersza poleceń:

aptitude install <nazwa_pakietu> i m
Danadam
źródło
5

Możesz apt-mark manual <package>do tego użyć , z Synaptic, Package=> [ ] Automatically Installed(odznacz).

dawny:

# 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>

Ponadto, jeśli używasz apt-get install <package>pakietu, który jest już zainstalowany, zostanie on domyślnie oznaczony jako ręczny.

Thomas Guyot-Sionnest
źródło
Wydaje się, że robi to dokładnie tak, jak chcesz. To zmieniło status mojej paczki z [installed,auto-removable]tylko na [installed].
mwfearnley,