Como posso reinstalar completamente o Perl no Debian sem ter o Perl funcional?

3

Resumindo: fiz um erro estúpido bem ridículo ao tentar configurar o CPAN que resultou em duas versões do Perl, as quais faltam pacotes importantes. Em particular, essas meias-versões não têm o que é necessário para fazer com que o apt-get ou o CPAN funcionem corretamente, o que normalmente seria o jeito que eu pensaria em fazer com que os pacotes completassem o Perl.

Atualmente, a única maneira que eu posso pensar em consertar isso depende do fato de que eu tenho uma máquina virtual Debian que eu não mexi (então, portanto, não tem Perl horrivelmente quebrado), então eu poderia teoricamente Remova as duas versões do Perl da minha máquina principal e cole uma cópia do Perl da máquina virtual. Existem outros métodos razoáveis para esse tipo de coisa?

    
por QuillAndSaber 14.07.2016 / 05:50

1 resposta

5

Perl no Debian é dividido em várias partes. Uma dessas partes, o pacote perl-base , faz parte do conjunto de pacotes "essenciais". O Debian define estes pacotes essenciais como "sempre será instalado em um sistema debian". Os pacotes podem assumir que estarão disponíveis, mesmo que não tenham qualquer forma de dependência declarada neles. Se você remover um deles, as coisas provavelmente darão errado. Por esse motivo, se você tentar fazer isso, dpkg vai reclamar muito alto e pedir que você confirme que quer quebrar seu sistema literalmente digitando a frase Yes, do as I say! , com pontuação e tudo mais. Nunca faça isso; você obterá o sistema em um estado que é altamente improvável recuperar sozinho.

Se você fez, então seu sistema está quebrado agora. Não se desespere, no entanto; ainda é possível consertar isso.

  • Primeiro, execute dpkg -l perl-base para confirmar que você realmente está perdendo o pacote perl-base . Se a saída desse comando começar com ii na linha que contém perl-base , esse não é o problema e você tem um problema diferente. Nesse caso, publique as mensagens de erro exatas que você recebe ao tentar executar algum comando apt . Caso contrário, a depuração se torna um problema de bola de cristal.
  • faça o download do pacote perl-base para qualquer versão do Debian em execução.
  • Em seguida, execute ar x perl-base*deb . Isso criará três arquivos no diretório de trabalho atual: debian-binary , data.tar.gz e control.tar.gz . Nota: data.tar.gz também pode ser data.tar.xz. Se você não tem ar instalado em seu sistema, você pode executar este passo em um sistema diferente, e copiar os arquivos resultantes para a máquina quebrada (qualquer máquina semelhante a UNIX irá funcionar, não precisa ser um debian caixa).
  • O data tarball contém os arquivos que este pacote deseja colocar no sistema de arquivos. Descompacte-o no local correto com o seguinte comando: tar xvaf data.tar.* -C / . O -C / bit é a parte importante aqui; ele diz tar para descompactar em relação ao diretório raiz do sistema de arquivos.
  • Quando você estiver aqui, os arquivos ausentes voltarão ao sistema e dpkg e apt funcionarão novamente. No entanto, você ainda não terminou; Neste ponto, os arquivos estão lá, mas devido à maneira como você "instalou" perl-base , dpkg pensará que não está lá e pode começar a fazer coisas estranhas. Por esse motivo, é necessário instalá-lo "novamente", executando dpkg -i perl-base*deb .

Tudo deve ser corrigido agora. Da próxima vez, se dpkg disser para você inserir essa frase, faça a coisa mais inteligente e diga "não"; -)

    
por 14.07.2016 / 07:57