Por que não consigo instalar um pacote com apt

1

No Debian 9 eu quero instalar o pacote libicu57 ( repositório ), mas por alguma razão eu posso ' t:

$ sudo apt install libicu57
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libicu57 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libicu57' has no installation candidate

No meu /etc/apt/sources.list é isso (além dos outros):

deb http://ftp.cvut.cz/debian/ testing main non-free contrib

Qual é o problema e como resolvê-lo?

    
por Martin Heralecký 27.11.2018 / 23:11

1 resposta

0

Problema na mão

Você deseja instalar o libicu57 do repo de teste . No entanto, se você estiver usando x86 ou amd64 , não será possível instalar este pacote, pois ele só estará disponível nos testes de armel mips e mipsel .

Você tem no seu sources.list uma entrada para o Debian Testing (Buster ou 10). Você relata que está usando o Debian 9 (Esticar ou Estável). Você criou o FrankenDebian . Você precisa configurar seu sources.list corretamente para remover essa entrada e reverter ou remover quaisquer pacotes que você tenha instalado do repositório de teste para corrigir isso.

Depois de ter feito isso, se for a variante ARM de libicu57 que você precisa, você pode olhar para as soluções de compilação cruzada ou, melhor ainda, para a virtualização.

Corrigir o sources.list

O primeiro passo é verificar se os seus repositórios para o seu /etc/apt/sources.list são bons . Eu recomendo que você use /etc/apt/sources.list.d/ , onde cada repositório é seu próprio arquivo, mas você pode fazer isso em apenas um arquivo.

#stable.list
deb http://deb.debian.org stable main contrib non-free 
deb-src http://deb.debian.org stable main contrib non-free

#updates.list
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 

#security.list 
deb http://deb.debian.org/debian-secruity stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-secruity stable/updates main contrib non-free

Sua sources.list deve ser algo como isso. Você pode alterar o endereço http exato para corresponder ao seu espelho desejado. Se você precisa ter absolutamente um repo de teste, adicione a entrada de maneira semelhante à acima e use preferências do apt para manter algum nível de sanidade . Apt-pinning deve ser usado com moderação, pois pode levar à criação do FrankenDebian.

Instalar software

Agora, tudo o que resta é instalar o seu pacote, o que pode ser feito com este comando:

 apt-get install libicu57

ou

apt-get install -t stable libicu57 **or** apt-get install libicu57/stable

Você também pode escolher instalar o pacote que deseja na fonte ou baixá-lo e suas dependências do site Pacotes Debian e instalá-los com dpkg -i [packageName].deb

Isso deve instalar libicu57 . Por favor, comente se há outro erro e nós procuramos soluções. A próxima parte será abordada se você realmente precisar das versões ARM ou MIPS do software que você pode pesquisar na compilação cruzada ou criar um ambiente virtual com o conjunto de instruções apropriado para usar com segurança essa versão da biblioteca.

Aqui está a entrada do Wiki Debian no Multiarch e aqui é o Wiki para compilação cruzada . Você pode seguir estas etapas para fazer as alterações de configuração apropriadas em dpkg e o que não deve ser compilado.

No entanto, você não pode ter várias versões do mesmo software instalado!

Portanto, se a versão do ARM exigir dependências e bibliotecas das quais você já possui uma versão em x86 ou amd64 , não será possível fazer isso. A alternativa é criar uma máquina virtual do Debian para ARM usando a solução de virtualização de sua escolha que usa o conjunto de instruções correto.

KVM é uma boa escolha, mas você pode usar qualquer solução que melhor se adapte ao seu caso de uso.

Conclusão

Por favor, leia sobre isto na íntegra . De fato, por favor, certifique-se de ler todos os links que eu forneci completamente antes de executar qualquer comando. Se você tiver dúvidas ou preocupações sobre este post, não hesite em me perguntar. Se houver alguma correção ou equívoco nesta resposta, por favor, informe-me. Eu posso atualizar a postagem conforme necessário.

Melhor da sorte!

    
por 28.11.2018 / 02:34

Tags