![CPAN vs. APT: Conflitos de versões?](https://rvso.com/image/1035891/CPAN%20vs.%20APT%3A%20Conflitos%20de%20vers%C3%B5es%3F.png)
Não consigo encontrar a resposta para isso em lugar nenhum: um módulo instalado via APT entra em conflito com outro instalado via CPAN?
Junto com essa pergunta estão estas: Onde ficam os módulos CPAN instalados? Eles são acessíveis globalmente ou apenas para o usuário instalador? Como você sabe qual? Como você sabe o que está instalado e o que tem precedência?
O CPAN deve ser usado quando os módulos são instalados via APT?
Responder1
No Debian e Ubuntu, CPAN ( /usr/bin/cpan
utilitário) instala módulos /usr/local/lib/
por padrão. E os pacotes debian mantêm seus arquivos em /usr/share/perl5/
e /usr/lib/perl5/
. Portanto, os arquivos instalados via /usr/bin/cpan
não substituirão os arquivos instalados via apt.
Não há nada de errado em usar o sistema perl, e misturar o código apt e cpan geralmente funciona.
Você também pode optar por empacotar manualmente qualquer distribuição cpan não disponível em seus repositórios apt. É fácil com a ajuda da ferramenta dh-make-perl:
dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi
Responder2
eu usoperlbrew. Ele instala uma versão local do Perl e do cpan. Tudo o que ele faz é feito em seu diretório inicial. É simples de instalar e usar e você pode instalar a versão mais recente do Perl.
Responder3
Ao instalar diretamente do CPAN, eu recomendaria usar local::lib para um diretório privado para você. Veja a técnica de boostrappinghttps://metacpan.org/module/local::lib
Dessa forma o módulo CPAN instalado será utilizado apenas pelo seu usuário e terá uma separação muito clara dos módulos instalados utilizando APT.
Também tornará mais fácil se livrar dos módulos instalados pelo CPAN se você encontrar algum problema ou ao atualizar o Ubuntu.
É assim que eu uso no Ubuntu.
Responder4
Você pode usar ambos, mas eles entrarão em conflito. Eles são gravados no mesmo local, portanto, se você instalar algo do apt e depois instalar uma versão posterior do cpan, poderá atrapalhar as coisas.
Não faço muito Perl, mas em Python certamente tenho o dilema de que você está falando: apt-vs-PyPI. Eu pessoalmente opto pelo apt sempre que posso. Isso significa que devo receber atualizações sem precisar me lembrar de manter cada pacote Python individual. Não só isso, mas significa que todos os meus sistemas devem estar rodando na mesma versão desses pacotes.
Nem sempre dá certo. Às vezes você não tem coisas novas o suficiente nos repositórios ou algo que você precisa simplesmente não está empacotado. Nenhuma das formas é perfeita, mas acredito que sejamaisperfeito. Apenas esteja ciente do que você está fazendo e você ficará bem.
Editar- Quase esqueci, existe uma maneira melhor de dividir as coisas para que o sistema possa ter seu próprio ambiente e tudo o que você está desenvolvendo possa viver em seu próprio ambiente (que você gerencia completamente com CPAN), como o do Python virtualenv
...