Acabei de adicionar um repositório PPA para a versão de 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
Por que e como posso resolvê-lo para que eu possa usar a versão mais recente em vez da que tenho agora?
apt
package-management
jfoucher
fonte
fonte
Respostas:
De acordo com um artigo no debian-administration.org ,
Solução cautelosa 1:
De acordo com a resposta de Pablo , você pode executar
sudo apt-get --with-new-pkgs upgrade
e ele instalará os pacotes ocultos.Isso tem o benefício de não marcar os pacotes ocultos como "instalados manualmente", o que poderia forçar mais intervenção do usuário na linha (consulte os comentários).
Se a solução de Pablo funcionar para você, faça um voto positivo. Caso contrário, comente o que deu errado.
Solução cautelosa 2:
A solução cautelosa é executar
sudo apt-get install <list of packages kept back>
. Na maioria dos casos, isso dará aos pacotes ocultos o que eles precisam para atualizar com êxito.Solução agressiva:
Uma solução mais agressiva é executar
sudo apt-get dist-upgrade
, o que forçará a instalação dessas novas dependências.Mas
dist-upgrade
pode ser bastante perigoso . Ao contrário da atualização, ele pode remover pacotes para resolver situações complexas de dependência. Diferentemente de você, o APT nem sempre é inteligente o suficiente para saber se essas adições e remoções podem causar estragos.Portanto, se você se encontra em um lugar onde a "solução cautelosa" não funciona,
dist-upgrade
pode funcionar ... mas é melhor você aprender um pouco mais sobre o APT e resolver os problemas de dependência "manualmente" instalando e removendo pacotes caso a caso.Pense nisso como consertar um carro ... se você tiver tempo e for útil com uma chave inglesa, ficará tranqüilo lendo e fazendo o reparo sozinho. Se você estiver com sorte, pode deixar seu carro com sua prima
dist-upgrade
e torcer para que ela saiba tudo.fonte
dist-upgrade
em um sistema estável, como muitas das outras respostas abaixo indicaram. Pessoalmente acho que há uma resposta simples / mais seguro que precisa promovido: apt-get install <lista de pkgs>sudo apt-get dist-upgrade
também pode remover pacotes. Consequentemente, é melhor sempre inspecionar a lista de alterações que serão feitas antes de concordar com elas, durante a execuçãosudo apt-get dist-upgrade
.apt-get upgrade
posso remover pacotes? Ele sempre fará isso quando houver um conflito de versão caso contrário. Pense emllvm3.6
vs.llvm3.6v5
(com o "v5" significa que ele foi compiladogcc 5
). Esses dois não podem coexistir , apenas um dos dois pode ser mantido no sistema. Então simdist-upgrade
pode remover alguns pacotes também, mas não é sódist-upgrade
isso que faria isso; sob certas circunstâncias,upgrade
também.Sempre que você receber do comando
apt-get upgrade
a mensagementão, atualizar um ou todos os pacotes mantidos em sigilo, sem fazer uma atualização de distribuição (é isso que
dist-upgrade
faz, se bem me lembro) é emitir o comando:isso resolverá os problemas ocultos e solicitará a instalação de pacotes adicionais etc., conforme explicado por outras respostas.
fonte
apt-get upgrade <list of packages>
, se refizerapt-get upgrade
, ele listará os pacotes em questão como não mais necessários e que eu posso usarapt autoremove
para removê-los, o que faço, e então um últimoapt-get upgrade
e eles não serão mais listados como retido ... Muito estranho. Alguma ideia?apt-get install
também remover pacotes quando necessário para resolver situações de dependência retorcidas, ou você teria que executar um separadoapt-get remove
de comando para realizar essa parte do processo de upgrade?apt autoremove
remove essas dependências não utilizadas.sudo apt-get --with-new-pkgs upgrade
o que não tem lado afeta de causar pacotes para ser marcado como instalado manualmenteapt-get dist-upgrade
é perigoso para ambiente estável,Caso de uso: atualização do kernel retida, você apenas deseja atualizar o kernel, não deseja atualizar a distribuição inteira.
Melhor maneira de lidar com pacotes retidos:
Se você reteve o pacote, deverá ver Pacotes Atualizáveis no topo da lista.
Seu pacote mantido de volta instalado.
fonte
apt-get dist-upgrade
só é perigoso se você tiver repositórios ruins no/etc/apt/sources.list*
. É bom estar ciente de quedist-upgrade
atualiza todos os pacotes, mas com os repositórios padrão, isso deve ser bom. Não usardist-upgrade
pode ser perigoso, pois você pode perder as atualizações de segurança.apt-get dist-upgrade
pode remover e adicionar pacotes, mas não é realmente perigoso. Qualquer comando de instalação de pacote pode causar sérios danos se você tiver problemas no seusources.list
arquivo ! Umapt-get upgrade
comando regular instalará qualquer pacote de qualquer fonte de software ativada;dist-upgrade
não é único dessa maneira. Além disso, usaraptitude
para executar qualquer operação, pelo menos no amd64, é muito mais perigoso do que executarapt-get dist-upgrade
, em uma versão em que o bug 831768 não foi corrigido.sudo aptitude safe-upgrade
Por que você não tenta esta resposta do Unix SE :
apt
comando ( alternativa amigável aapt-get
) compartilhe esta opção.Usar em
apt install <pkg>
vez disso marcará o pkg como "instalado manualmente" !! Para marcá-lo novamente como uso "instalado automaticamente"apt-mark auto <pkg>
(consulte também o subcomandoshowmanual
). Mais informações sobre esta resposta .fonte
apt-mark auto <pkg>
só deve ser necessário marcar um pacote como sendo instalado automaticamente ( aqui a página de manual ).sudo apt-get --with-new-pkgs upgrade
ainda mostra os pacotes como "retidos". Nenhuma mensagem de erro.Normalmente, existem dois motivos pelos quais você pode ver esta mensagem.
Se a atualização do programa (via
sudo apt-get upgrade
) causar a adição ou remoção de pacotes, o programa será retido. Você pode usarsudo apt-get dist-upgrade
neste caso, que oferecerá adicionar ou remover os programas adicionais.Isso é bastante comum e geralmente não é um problema. Ocasionalmente (particularmente durante um alfa do Ubuntu), uma
dist-upgrade
oferta é para remover muitos outros programas, caso em que você provavelmente deseja cancelá-lo.Se o programa depender de pacotes ou versões que não estão disponíveis, o programa será retido. Você realmente não pode fazer nada além de esperar nessa circunstância, pois o pacote é basicamente desinstalável. Isso pode acontecer quando os pacotes são adicionados ao repositório fora de ordem, quando um pacote é renomeado ou quando um pacote para de fornecer um pacote virtual.
fonte
apt-get dist-upgrade
recusou a instalá-lo. A inspeção do pacote com o aptitude mostrou que depende de um pacote que não está disponível. Acho que vou ter que esperar.Você também pode tentar:
sudo aptitude safe-upgrade
.É mais seguro do que
full-upgrade
(originalmente chamado dist-upgrade) porque "os pacotes não serão removidos a menos que não sejam utilizados".De
man aptitude
:fonte
Muito provavelmente, esses pacotes são retidos porque sua instalação criaria inconsistências de dependência. Isso pode acontecer porque você está usando arquivos em desenvolvimento ativo, ppas ou porque o espelho que você usa não está totalmente atualizado.
No último caso, aguarde, quando as dependências forem resolvidas, elas serão instaladas na próxima vez.
Editar:
Há outra possibilidade: os pacotes podem ser retidos se houver uma retenção neles ou se forem fixados.
fonte
dist-upgrade
. Se você ainda desejardist-upgrade
, observe os NOVOS pacotes a serem instalados e os pacotes a serem removidos antes de prosseguir.apt-get install --reinstall <packages>
.Isso geralmente ocorre porque o pacote adicionou uma dependência e a atualização não deseja adicioná-lo para você sem permissão.
Se você executar:
Em seguida, as novas versões devem ser instaladas juntamente com sua nova dependência.
fonte
Isso funcionou para mim
fonte
aptitude upgrade
trabalhou para mim.Ubuntu 14.04
e não tenhoaptitude
linha de comandoapt-get dist-upgrade
me deu a mesma mensagem, mas isso resolveu para mim. Eu tinha um pacote que estava quebrando a atualização de outro pacote. Eu não precisava do que instalei, entãoaptitude full-upgrade
me deu a opção de removê-lo para que ele pudesse atualizar todo o resto.Eu descobri que o aptitude faz um trabalho melhor na atualização de pacotes se as versões diferirem apenas um pouco. Eu tive uma situação como esta:
Isso fez com que o apt-get retivesse a atualização, mas o aptitude a atualizou muito bem. Não tenho certeza de qual algoritmo é usado para determinar se um pacote deve ser atualizado ou não. Eu acho que esses dois tinham a mesma versão, apenas um 'qualificador' diferente. Mas, em qualquer caso, o apt-get não o atualizaria, mas o aptitude o faria.
fonte
No meu caso, os pacotes retidos eram aqueles relacionados a linux-headers e kernel. Cheguei a isso tentando resolver um problema com um ponto de exclamação vermelho na área de notificação e não conseguindo atualizar pacotes.
Para resolvê-lo, não precisei usar o dist-upgrade nem o manual apt-get install xxx .
O que fiz e ajudou foi simples e limpo :
Eu tive que confirmar manualmente a atualização do Grub e sua configuração.
Depois, trabalhei com o computador por um tempo e, em seguida, o diálogo de atualização padrão apareceu novamente, finalmente, incluindo a seção "Ubuntu base" com o kernel e afins. A atualização foi realizada sem problemas e não vejo mais nenhum pacote retido.
Além disso, é muito importante manter em mente que essas atualizações * buntu incluindo atualizações do kernel são sensíveis à hibernação - Eu tenho esse problema várias vezes e eu sempre obtê-lo resolvido reiniciando a máquina e executar as etapas acima.
Então, talvez isso seja suficiente ?!
(a situação descrita aqui está relacionada ao meu Xubuntu 15.10 no final de dezembro de 2015)
fonte
Encontrei este problema quando um novo kernel foi lançado. (Possivelmente porque tenho atualizações instáveis ativadas.) Encontrei a maneira mais simples de fazer a instalação através do instalador gráfico do Ubuntu (
update-manager
).fonte
Corri para esse problema usando o sináptico porque parecia travar e, para tentar corrigir isso, reinicializei e tentei novamente.
Descobri uma mensagem informativa como parte do pacote com algumas instruções pós-instalação para mim.
Eu tive que clicar em " detalhes " e, em seguida, ' q ' para sair depois de ler a mensagem, e as coisas prosseguiram normalmente.
fonte
Parece a maneira correta de reinstalar o pacote mantido de volta:
apt-get install --reinstall libjpeg-progs
Pelo menos isso funcionou para mim quando fiquei
libjpeg-progs
preso após a atualização do Ubuntu 14.04 para 16.04. Tenho certeza de que você pode fazer o mesmo com qualquer outro aplicativo escondido, por exemplogimp
.Fonte: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
fonte
--reinstall
também.De fato, a opção que você precisa é
dselect-upgrade
que instala / remove dependências para o conjunto de pacotes específico envolvido.fonte
Eu li todos os posts e descobri que existem muitas explicações interessantes. Eu estava tentando todos eles, mas não obtive nenhum resultado completamente. Eu tenho um problema com o mysql-utilities que não consegui atualizar. A atualização foi proposta pelo sistema. Então, eu quero mostrar algumas etapas para fazê-lo. Obviamente, repetirei em alguns momentos todas as postagens mencionadas acima. Aqui está o meu erro, sim, eu o encontrei por postagens já existentes, mas o que devo fazer a seguir?
O próximo passo é:
Os resultados que podemos ver na imagem abaixo. Eu removo o pacote e verifico isso por comando:
Resultados - Tudo bem! Mais tarde, instalei esta nova versão do pacote corretamente.
Dessa forma, acho que pode ajudar mais pessoas novas, porque, com outros pacotes, podemos executar os mesmos passos.
Uma vez, me desculpe, quando repeti em alguns lugares outras postagens.
fonte
{}
botão no editor para formatá-lo corretamente.O Ubuntu 18.04 fornece uma sintaxe mais recente e simplificada, através da
apt
qual pode ser usado em vez deapt-get
.fonte