Debian Wheezy e módulos perl instalados em / root e não no sistema

2

Eu tenho um pequeno problema toda vez que eu emito

cpan YAML

ou tente instalar qualquer módulo perl que ele instale em /root/perl5 e com isso qualquer outro usuário não pode usar módulos que eu instalei como root.

Mesmo se eu fizer

rm -frv /root/perl5 /root/.cpan

e rerun cpan YAML ainda é instalado no diretório home raiz. Como posso mudar isso?

    
por Dawid 12.09.2012 / 21:10

3 respostas

2

Existe um arquivo de configuração que define as configurações padrão. Você pode encontrar o arquivo no caminho de instalação do cpan em CPAN/Config.pm . O caminho é usualmente /usr/lib/perl5/<version>/ .

Minha sugestão seria ajustar os valores de makepl_arg e mbuildpl_arg no arquivo de configuração global, já que os módulos perl são criados e instalados via MakeMaker ou Build . Se você colocar isso:

'makepl_arg' => q[INSTALLDIRS=perl INSTALLBIN=/opt/mycpanmodules/bin/ INSTALLARCHLIB=/opt/mycpanmodules/perl5/ INSTALLPRIVLIB=/opt/mycpanmodules/perl5/ INSTALLSCRIPT=/opt/mycpanmodules/perl5/ INSTALLMAN1DIR=/opt/mycpanmodules/man/ INSTALLMAN3DIR=/opt/mycpanmodules/man/],
'mbuildpl_arg' => q[--install_path lib=/opt/mycpanmodules/perl5/ --install_path arch=/opt/mycpanmodules/perl5/ --install_path script=/opt/mycpanmodules/bin/ --install_path bindoc=/opt/mycpanmodules/man/ --install_path libdoc=/opt/mycpanmodules/man/],

nos seus Config.pm todos os módulos instalados via cpan vão para /opt/mycpanmodules .

Eventualmente, você precisa definir a variável de ambiente

PERL5LIB=/opt/mycpanmodules/perl5

para que o seu local perl saiba onde procurar o modules instalado adicionalmente.

    
por 12.09.2012 / 22:06
2

Verifique seu .bashrc . Eu encontrei estranhas vars na minha:

/root/.bashrc:PERL_MM_OPT="INSTALL_BASE=/root/perl5"; export PERL_MM_OPT;

remova-os e faça o login novamente.

    
por 16.07.2014 / 16:34
1

Você também pode querer olhar para o pacote dh-make-perl que pode construir um pacote .deb do CPAN. você pode baixar o módulo primeiro, ou você pode obter dh-make-perl para baixá-lo para você.

Melhor ainda, por que não instalar apenas o libyaml-perl , que é o pacote CPAN YAML já empacotado para o debian?

Como regra geral, ao procurar por módulos CPAN no debian, verifique primeiro a lista de pacotes debian - há uma boa chance de que o que você deseja já esteja empacotado. Se não for, provavelmente será uma alternativa (e, normalmente, essa alternativa é a melhor ou uma das melhores de um monte de módulos semelhantes).

por exemplo. apt-cache-search yaml | grep perl ... no meu sistema (debian sid), ele produz esta lista:

$ apt-cache search  yaml | grep perl
libbest-perl - fallbackable module loader
libcgi-formbuilder-source-yaml-perl - Initialize FormBuilder application from YAML file
libcgi-session-serialize-yaml-perl - YAML and YAML::Syck support for CGI::Session's serializers
libclone-perl - recursively copy Perl datatypes
libconfig-any-perl - module to load configuration from different file formats
libconfig-merge-perl - umbrella interface to configuration modules
libconfig-yaml-perl - module for manipulating YAML-based configuration files
libcpan-meta-yaml-perl - reimplementation of a subset of YAML for CPAN Meta files
libdata-phrasebook-loader-yaml-perl - loader class for Data::Phrasebook using YAML
libdata-yaml-perl - Easy YAML serialisation of Perl data structures
libhtml-template-dumper-perl - Output template data in a test-friendly format
libmoosex-blessed-reconstruct-perl - Data::Visitor for creating Moose objects
libmoosex-yaml-perl - module to load Moose objects from YAML
libpadre-plugin-datawalker-perl - simple Perl data structure browser Padre
libpadre-plugin-yaml-perl - YAML support for Padre The Perl IDE
libparse-cpan-meta-perl - module to parse META.yml and other similar CPAN metadata files
libsql-translator-perl - SQL translation library
libtemplate-plugin-yaml-perl - simple Template Toolkit Plugin Interface to the YAML module
libtest-cpan-meta-perl - test module to validate package metadata for CPAN
libtest-cpan-meta-yaml-perl - test module to validate a META.yml file
libtest-yaml-meta-perl - transitional dummy package for obsolete Test::YAML::Meta
libtest-yaml-valid-perl - module to test for valid YAML
libvitacilina-perl - Perl feed aggregation library
libyaml-appconfig-perl - manage configuration files with YAML and variable references
libyaml-libyaml-perl - Perl interface to libyaml, a YAML implementation
libyaml-perl - YAML Ain't Markup Language
libyaml-shell-perl - The YAML test shell
libyaml-syck-perl - Perl module providing a fast, lightweight YAML loader and dumper
libyaml-tiny-perl - Perl module for reading and writing YAML files
perl-modules - Core Perl modules

você pode obter detalhes sobre cada um dos pacotes com apt-cache show , por exemplo

$ apt-cache show libyaml-perl
Package: libyaml-perl
Version: 0.84-1
Installed-Size: 200
Maintainer: Debian Perl Group <[email protected]>
Architecture: all
Depends: perl
Recommends: libyaml-libyaml-perl | libyaml-syck-perl
Suggests: libyaml-shell-perl
Description-en: YAML Ain't Markup Language
 YAML is a generic data serialization language that is optimized for human
 readability. It can be used to express the data structures of most modern
 programming languages (including Perl, of course). YAML supports Unicode
 and there are implementations of the parser in many different languages,
 making it a rather portable serialization format.
 .
 Please note that the YAML module is currently a deprecated implementation
 in Pure Perl, which is probably slow on your system. The authors intend
 to change it to just be a front-end interface module for various YAML
 implementations. For now, YAML::Any is a module provided for this purpose,
 which simply selects the best YAML implementation available.
Homepage: http://search.cpan.org/dist/YAML/
Description-md5: 207c6e42686e3356a6c6e3a975e92075
Tag: devel::lang:perl, devel::library, implemented-in::perl
Section: perl
Priority: optional
Filename: pool/main/liby/libyaml-perl/libyaml-perl_0.84-1_all.deb
Size: 72812
MD5sum: 4e4ab9f980f050253d403002bc7e3e39
SHA1: 8f1837257d08b2eb3e7a5dbcfd73d6954b55cf98
SHA256: 6636a5794490b7bd6ddfd3f87b3e6a90b4f212d5115db641fae007e7b5
    
por 13.09.2012 / 07:37