Jak usunąć flagę „zainstalowany ręcznie” i powrócić do „automatycznie zainstalowany” za pomocą apt-get?

103

Aby coś skompilować, musiałem zlib1g-devzainstalować pakiet, więc uruchomiłem apt-get install zlib1g-dev.

apt-get poinformował mnie ładnie, że pakiet został już automatycznie zainstalowany z powodu innego pakietu i że rozumie, że chcę go teraz zainstalować wyraźnie:

# apt-get install zlib1g-dev
zlib1g-dev is already the newest version.
zlib1g-dev set to manually installed.

Moja kompilacja skończona, już jej nie potrzebuję, więc chcę przywrócić jej poprzedni status: automatycznie zainstalowany. W ten sposób zostanie przycinany automatycznie, gdy nie będzie już potrzebny w prosty sposób apt-get autoremove.

Nie mogę tego zrobić, apt-get remove zlib1g-devponieważ niektóre pakiety nadal od tego zależą.

Jak mogę przywrócić zlib1g-devstan instalacji pakietu do instalacji automatycznej ?

Wiem, że mogę edytować /var/lib/apt/extended_statesręcznie z

Package: zlib1g-dev
Auto-Installed: 0

do

Package: zlib1g-dev
Auto-Installed: 1

... ale to nie wydaje się właściwe.

Steve Schnepp
źródło

Odpowiedzi:

81

Aptitude może ci pomóc podczas początkowej instalacji pakietu:

aptitude install "zlib1g-dev&M"

Lub po zainstalowaniu pakietu:

aptitude markauto "zlib1g"

Edycja: Jeśli nie masz umiejętności, możesz użyć

apt-mark auto zlib1g-dev
Mikael S.
źródło
4
Dobra odpowiedź, ale I + 1's @ ArvindSing używa odpowiedzi, apt-markponieważ nie wymaga instalacji aptitude. apt-markpochodzi z aptpakietu, który każdy powinien już mieć.
Christopher Schultz
106

apt-mark może pomóc:

apt-mark auto zlib1g-dev

W przypadku wersji 11.04 lub starszych użyj „markauto” zamiast „auto”

Arvind Singh
źródło
8

Właśnie tego szukasz.

sudo apt-get markauto first-package second-package etc-package

Źródło:

apt-get --help
Mosty Mostacho
źródło
12
Uwaga: obecnie jest to przestarzałe na korzyść apt-mark
Joril