Acabei de adicionar um repositório PPA para a versão em desenvolvimento do GIMP, mas recebo este erro:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
Porquê e como posso resolvê-lo para que possa usar a última versão em vez da que tenho agora?
De acordo com um artigo no debian-administration.org,
Se as dependências foram alteradas em um dos pacotes que você instalou para que um novo pacote tenha que ser instalado para executar a atualização, então isso será listado como "kept-back".
Solução cautelosa 1:
Per Pablo's answer, você pode executar `sudo apt-get --with-new-pkgs upgrade', e instalará os pacotes kept-back.
Isto tem o benefício de não marcar os pacotes kept-back como "instalado manualmente," o que poderia forçar mais intervenção do usuário na linha (veja comentários).
Se a solução Pablo's funciona para si, por favor, subvote-a. Se não, por favor comente o que correu mal.
Solução cautelosa 2:
A solução cautelosa é executar sudo apt-get install <list of packages kept back>
. Na maioria dos casos, isto dará aos pacotes kept-back o que eles precisam para atualizar com sucesso.
Solução agressiva:
Uma solução mais agressiva é executar o `sudo apt-get dist-upgrade', que irá forçar a instalação dessas novas dependências.
Mas o "grau de risco" pode ser bastante perigoso*. Ao contrário da actualização]3 pode remove* pacotes para resolver situações complexas de dependência. Ao contrário de você, o APT é'nem sempre é inteligente o suficiente para saber se essas adições e remoções podem causar estragos.
Então se você se encontrar em um lugar onde o "solução cautelosa" não'não funciona, dist-upgrade
pode funcionar... mas você'provavelmente é melhor aprender um pouco mais sobre APT e resolver os problemas de dependência "à mão" instalando e removendo pacotes caso a caso.
Pense nisso como consertar um carro... se você tiver tempo e estiver à mão com uma chave inglesa, você'terá um pouco de paz de espírito ao ler e fazer a reparação você mesmo. Se você'estiver com sorte, você pode deixar o seu carro com a sua prima dist-upgrade
e esperar que ela saiba as coisas dela.
Normalmente há duas razões para você ver esta mensagem.
Se atualizar o programa (via sudo apt-get upgrade
) causar a adição ou remoção de pacotes, então o programa será retido. Você pode utilizar o `sudo apt-get dist-upgrade' neste caso, que irá então oferecer-se para adicionar ou remover os programas adicionais.
Isto é bastante comum e normalmente não é um problema. Ocasionalmente (particularmente durante um Ubuntu alfa) um dist-upgrade
irá oferecer-se para remover muitos outros programas, caso em que você provavelmente quer cancelá-lo.
Se o programa depende de pacotes ou versões que não estão disponíveis, então o programa será retido. Você realmente pode'não fazer nada além de esperar nesta circunstância, uma vez que o pacote é basicamente desinstalável. Isto pode acontecer quando pacotes são adicionados ao repositório fora de ordem, quando um pacote é renomeado, ou quando um pacote deixa de fornecer um pacote virtual.
O mais provável é que estes pacotes sejam retidos porque a sua instalação criaria inconsistências de dependência. Isto pode acontecer ou porque você está usando arquivos em desenvolvimento ativo, ppas, ou porque o espelho que você usa não está totalmente atualizado.
No último caso, basta esperar, quando as dependências forem resolvidas, ela será instalada na próxima vez.
Editar:
Há outra possibilidade, os pacotes podem ser retidos se forem retidos, ou se forem fixados com alfinetes.