Instalei o bind-tools, a alternativa do Arch linux ao dnsutils, mas nenhuma das ferramentas funciona, todas falhando com o erro:
host: error while loading shared libraries: libidn2.so.4: cannot open shared object files: No such file or directory
Esse problema com libidn2.so.4 parece ser um problema recente (janeiro de 2019) com compilações de pacotes do Arch e aparentemente produziu alguns resultados bastante assustadores, como tornar todo o sistema não inicializável .
Minhas perguntas são: (1) a abordagem correta é apenas esperar até que o mantenedor do bind-tools corrija esse problema ou tentar corrigi-lo eu mesmo? e (2) o que exatamente está acontecendo? O bind-tools requer libidn2.so.4 mas não o instala? Como os mantenedores poderiam cometer tal erro?
Eu não executo o Arch Linux, então estou me arriscando um pouco nisso.
O artigo ao qual você vinculou indica que é um link simbólico ausente, em vez de um pacote ausente. Isso faz sentido, porque normalmente no Linux, as bibliotecas compartilhadas terão pelo menos dois octetos de número de versão após o '.so', e o erro menciona apenas um.
Minha sugestão é que você corra
e veja o que retorna. Se ele apenas retornar
e não menciona nada mais específico, então eu recomendaria executar
Estou sugerindo a execução de ambos, porque parece que seu programa está procurando a versão principal quatro da biblioteca, mas o artigo que você mencionou está procurando a versão principal zero. Essa correção basicamente cria dois apelidos para o arquivo /usr/lib/libidn2.so, um com .0 e outro com .4.
Se você vir que existe um /usr/lib/libidn2.so.something.something, e o /usr/lib/libidn2.so é um link simbólico para ele, pode fazer mais sentido criar um link simbólico para o arquivo mais específico. Eu realmente não sei qual caminho seria necessariamente melhor.
Outra opção para você seria fazer o downgrade do seu libidn2 para o anterior a esse problema.
No que diz respeito a como isso poderia acontecer - parece que o mantenedor do libidn2 para Arch Linux cometeu um erro. O que me deixa perplexo não é que isso tenha acontecido, mas... esse bug foi adicionado 12 dias atrás. Um bug que pode ser corrigido apenas com alguns links simbólicos manuais deve levar horas para ser corrigido, não semanas. Não quero menosprezar os mantenedores do Arch Linux; Eu não tenho idéia do que está acontecendo do lado deles das coisas. É apenas... frustrante. Meu palpite é que esta é apenas a ponta do iceberg desta história. De qualquer forma, pessoas são pessoas, e todos cometemos erros. Alguém provavelmente já está se culpando por isso e não precisa da nossa ajuda para fazer isso.
Como esse é o tipo de erro que aparece muito no Arch Linux, escrevi um script especializado para analisar pacotes e determinar se eles foram compilados corretamente. (Em 95% dos casos, o pacote Arch Linux é construído corretamente): https://github.com/eli-schwartz/dotfiles/blob/master/bin/pkg-list-linked-libraries
Executando isso no pacote bind-tools e procurando por libidn2 mostra que a versão mais recente do bind-tools está vinculada a libidn.so.4:
De onde vem essa biblioteca?
O pacote bind-tools no Arch requer o pacote libidn2 como uma dependência, de acordo com a saída de
pacman -Si bind-tools
, o que é muito bom, pois depende dele.As versões dos dois pacotes nos repositórios oficiais do Arch Linux no momento da redação deste artigo correspondem à versão de bind-tools e libidn2 que verifiquei acima:
Então, você claramente tem a versão mais recente do bind-tools instalada. Mas você afirma que não tem as bibliotecas libidn2 que os binários exigem. Por que não? Qual é a sua versão do libidn2 que está instalada atualmente? Verifique a saída de
pacman -Q libidn2
.Como o pacote funciona para milhares de outras pessoas, minha conclusão é que seu sistema está quebrado e você precisa atualizar seu sistema adequadamente para instalar a versão mais recente do libidn2. Consulte https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported para obter detalhes sobre por que isso pode acontecer, o que fazer para corrigi-lo adequadamente e por que o link simbólico não apenas não é a solução, mas também quebra seu sistema mais longe.
Quanto ao bug da parábola, esse é exatamente o problema oposto. Uma distribuição Linux completamente diferente que não é o Arch Linux, falhou em reconstruir seus pacotes usando o novo libidn2 e, como resultado, esses pacotes foram vinculados erroneamente ao libidn2.so.0
Se você está realmente sofrendo com o bug do Parabola, então você não está usando o Arch Linux e precisa especificar que está realmente usando o Parabola, porque senão as pessoas não saberão como ajudá-lo.