No Ubuntu / Debian, como faço para marcar um pacote como não removível automaticamente?


9

Suponha que eu tenha um pacote (neste caso, um pacote Python) que eu instale usando o Synaptic. Como a versão deste pacote está um pouco desatualizada, eu a removo no Synaptic e instalo-a usando easy_install. Uma de suas dependências também foi instalada usando o Synaptic, mas eu prefiro manter a versão instalada do Synaptic do easy_installingque também.

O único problema é que a dependência agora está marcada como removível automaticamente. Existe alguma maneira de marcá-lo como sendo instalado manualmente, exceto para removê-lo e reinstalá-lo? Se faz diferença, estou usando o Ubuntu Jaunty.

Respostas:


3

Você pode "reter" um pacote no Ubuntu.

Manter um pacote basicamente significa que você está dizendo ao gerenciador de pacotes para manter a versão atual, não importa o quê. Isso é útil se a versão mais recente de um programa atualmente em funcionamento for interrompida após uma atualização.

Você pode fazer isso via Synaptic ou na linha de comando via apt / dpkg. A versão da linha de comandos para armazenar um pacote é:

echo package_name hold | dpkg --set-selections

A documentação da comunidade Ubuntu tem um guia mais completo, explicando como fixar ou reter pacotes .



2
A retenção é normalmente usada para impedir atualizações para versões mais recentes; não deve ser usado para manter um pacote. O uso da espera impedirá que você receba atualizações de segurança e distribuição e será um encargo adicional durante as atualizações. Marcar o pacote como instalado manualmente deve ser o caminho certo (veja minha resposta ...).
Thomas Guyot-Sionnest

6

Eu sei que você pode fazer isso com aptidão. Você pode fazer isso em sua GUI selecionando pacote e pressionando 'm' ou selecionando "Marcar manual" no menu "Pacote" ou usando a linha de comando:

instalação do aptitude <package_name> & m

5

Você pode usar apt-mark manual <package>para isso, de Synaptic, Package=> [ ] Automatically Installed(desmarque).

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>

Além disso, se você usar apt-get install <package>um pacote que já está instalado, ele será implicitamente marcado como manual.


Isso parece fazer exatamente como desejado. Ele mudou o status do meu pacote de [installed,auto-removable]para apenas [installed].
mwfearnley
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.