Como remover o sinalizador "instalado manualmente" e reverter para "instalado automaticamente" com o apt-get?

103

Para compilar algo, eu precisava que o zlib1g-devpacote fosse instalado, então lancei um apt-get install zlib1g-dev.

apt-get me informou muito bem que o pacote já estava instalado automaticamente por causa de outro pacote e que ele entende que eu quero que ele seja instalado explicitamente agora:

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

Minha compilação foi concluída, não preciso mais dela explicitamente, então quero reverter seu status para o anterior: auto-instalado. Desta forma, será podado automaticamente quando não for mais necessário com um simples apt-get autoremove.

Não consigo fazer um, apt-get remove zlib1g-devpois alguns pacotes ainda dependem disso.

Então, como posso reverter o zlib1g-devestado de instalação do pacote para instalação automática ?

Eu sei que posso editar /var/lib/apt/extended_statesmanualmente

Package: zlib1g-dev
Auto-Installed: 0

para

Package: zlib1g-dev
Auto-Installed: 1

... mas simplesmente não parece certo.

Steve Schnepp
fonte

Respostas:

81

O Aptitude pode ajudá-lo quando você instala o pacote inicialmente:

aptitude install "zlib1g-dev&M"

Ou, depois de instalar o pacote:

aptitude markauto "zlib1g"

Edit: Se você não tem aptidão, você pode usar

apt-mark auto zlib1g-dev
Mikael S
fonte
4
Boa resposta, mas eu marquei a resposta do @ ArvindSing usando apt-markporque ele não requer a instalação aptitude. apt-markvem com aptpacote que todo mundo já deveria ter.
21413 Christopher Schultz
106

O apt-mark pode ajudá-lo:

apt-mark auto zlib1g-dev

Para 11.04 ou anterior, use "markauto" em vez de "auto"

Arvind Singh
fonte
8

É isso que você está procurando.

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

Fonte:

apt-get --help
Mosty Mostacho
fonte
12
Por favor note que este é obsoleto agora em favor do apt-mark
Joril