Oznacz pakiet deb jako używany, więc nie jest sugerowany autoroval

8

Mam kilka wspólnych bibliotek zainstalowanych w moim systemie, które nie są zależnościami od konkretnego pakietu, ale są potrzebne do bibliotek niezarządzanych, które zbudowałem ze źródła (jak najnowszy SDL, Allegro, SFML, ...) i inne oprogramowanie zbudowane ze źródła. Problem polega na tym, że biblioteki te są postrzegane przez APT jako nieużywane, a zatem są kandydatami do automatycznego usuwania, a te mieszają się z uzasadnionymi nieużywanymi pakietami, które można swobodnie usunąć.

Czy istnieje sposób na oznaczenie opakowań jako używane, aby nie były sugerowane do automatycznego usuwania? Moją pierwszą myślą było zbudowanie własnego metapakietu tylko w celu utrzymania zależności (jak na przykład ubuntu-desktop), ale nie wiem, jak to zrobić.

Boris B.
źródło

Odpowiedzi:

9

Chociaż apt-get installoznacza również pakiety jako zainstalowane, robi inne rzeczy, takie jak uaktualnianie pakietów (jeśli dostępna jest aktualizacja). Prawidłowy program do zmiany automatycznie instalowanych stanów to apt-mark.

Stosowanie

Oznaczanie pakietu jako zainstalowanego ręcznie (tak, aby nie został usunięty przez apt-get autoremove):

sudo apt-mark manual package1 package2 ... packageN

Aby oznaczyć pakiet jako automatycznie zainstalowany (tak, że zostanie on usunięty, apt-get autoremovejeśli żaden pakiet nie będzie od niego zależny):

sudo apt-mark auto package1 package2 ... packageN

Więcej szczegółów znajduje się na stronie podręcznika apt-mark (8) .

Lekensteyn
źródło
4

Wystarczy użyć instalacji apt-get:

sudo apt-get install [your-packages]

W rzeczywistości ich nie zainstaluje. Po prostu ustawi flagę na instalację ręczną.

jaśmin
źródło
2

Nie musisz robić nic tak skomplikowanego jak tworzenie własnych metapakietów.

Załóżmy, że chcesz się upewnić, że pakiet o nazwie foonigdy nie kwalifikuje się do autoraoval.

Otwórz okno terminala ( Ctrl+ Alt+ T) i uruchom:

sudo apt-get install foo

Oznacza to, że to samo polecenie, które instaluje pakiety ręcznie, oznaczy je jako zainstalowane ręcznie, więc nie zostaną one zapisane, nawet jeśli pakiety, dla których zostały pierwotnie zainstalowane, ponieważ same zależności zostały usunięte.

Eliah Kagan
źródło
@BorisB. Jeśli pakiet został zainstalowany ręcznie , bez względu na to, jak to zrobiłeś, dopóki nie zostanie on później usunięty lub oznaczony jako zainstalowany automatycznie, nie zostanie utworzony.
Eliah Kagan
2
Musisz zainstalować je jako zależność od czegoś innego. Prawdopodobnie zrobiłeś apt-get install yyyi xxxzainstalowałeś jako zależność. Następnie zostałeś usunięty yyyi xxxoznaczony jako autoroval. Teraz ty apt-get install xxx.
Vitalie Ciubotaru
Jestem w 99% pewien, że zainstalowałem te biblioteki przy użyciu apt-get install(ponieważ nie znam innego sposobu ich zainstalowania), ale nadal są oferowane do automatycznego usuwania.
Boris B.,
@VitalieCiubotaru Tak, to musi być to. Dziękuję Ci.
Boris B.,