2016-12-01 6 views
3

Ich habe ein Modul unter cpanm installiert, anscheinend falsch. Es ist sichtbar und verwendbar, wenn es unter System Perl läuft, aber nicht unter Perlbrew. Perlbrews cpanm gibt jedoch an, dass das Modul erfolgreich installiert wurde. Die besten Schritte?perlbrew perl cpanm fehlerhaft

/Users/john/perl5/perlbrew/perls/perl-5.18.2/bin/perl 
/Users/john/perl5/bin/cpanm 
#!/usr/bin/perl 
MM: INSTALL_BASE=/Users/john/perl5 
MB: --install_base "/Users/john/perl5" 

Note: .pl file contains following 
#!/usr/bin/env perl 

Nach perlbrew Schalter ...

declare -x PERL5LIB="/Users/john/perl5/lib/perl5" 
declare -x PERLBREW_BASHRC_VERSION="0.76" 
declare -x PERLBREW_HOME="/Users/john/.perlbrew" 
declare -x PERLBREW_MANPATH="/Users/john/perl5/perlbrew/perls/perl-5.18.2/man" 
declare -x PERLBREW_PATH="/Users/john/perl5/perlbrew/bin:/Users/john/perl5/perlbrew/perls/perl-5.18.2/bin" 
declare -x PERLBREW_PERL="perl-5.18.2" 
declare -x PERLBREW_ROOT="/Users/john/perl5/perlbrew" 
declare -x PERLBREW_VERSION="0.76" 
declare -x PERL_LOCAL_LIB_ROOT="/Users/john/perl5" 
declare -x PERL_MB_OPT="--install_base \"/Users/john/perl5\"" 
declare -x PERL_MM_OPT="INSTALL_BASE=/Users/john/perl5" 

Link to sybase install with hombrew

+2

Bitte stellen Sie die Ausgabe von 'welche perl; welches cpanm; Kopf -n 1 "$ (welcher cpanm)"; printf 'MM:% s \ n' "$ PERL_MM_OPT"; printf 'MB:% s \ n' "$ PERL_MB_OPT" ' – ikegami

+0

In Perlbraue versuchen Sie Folgendes. '$ cpanm --interaktiv -v App :: cpanoutdated',' $ cpan-veraltet', '$ cpanm --interaktiv -v App :: CPAN :: Fresh'. Dann mach 'cpanm '. –

+0

Überprüfen Sie, ob die Berechtigungen für die gerade installierten Dateien – KeepCalmAndCarryOn

Antwort

2

cpanm installiert keine Module. Es führt nur das Installationsprogramm mit den zu installierenden Distributionen aus. Über die Umgebungsvariablen PERL_MM_OPT und PERL_MB_OPT weisen Sie diese Installationsprogramme an, die Module am falschen Ort zu installieren. Sie loswerden.

+0

korrekt sind. Die Installation ändert jedoch nicht den Speicherort, je nachdem, welcher cpanm verwendet wird. Ich habe einen Vorschlag gemacht. Perl unter Perlbrew verwenden, kann DBD/Sybase.pm nicht finden. Mit System Perl ist alles in Ordnung. /Users/john/perl5/lib/perl5/darwin-thread-multi-2level/DBD/Sybase.pm. Sicherstellen, dass cpanm next install für perlbrew copy ist – paulj

+0

PERL5LIB = "/ Users/john/perl5/lib/perl5" Das ist das Problem. Wie könnte ich Dateien von hier zu ~/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/ – paulj

+0

bewegen Vielen Dank für die Info. Ich bin mir nicht sicher, wie ich zu diesem Punkt gekommen bin. – paulj

0

Ich hatte ein ähnliches Problem und konnte nicht verstehen, wie cpanm Module für die beabsichtigte Perl zu installieren. Ich hatte perlbrew über installiert:

perlbrew --switch --notest install perl-stable 

Ich dachte, dass --switch meine Nutzung der neuen Perl lenken würde, und ich konnte das neue Perl gab es über sehen:

perlbrew exec perl -v | grep 'This is' 

Aber der Installation von Modulen mit cpanm war funktioniert nicht (die Module nicht gefunden werden würde), wenn ich meine Skripte über laufen würde:

perlbrew exec perl myscript.pl 

Diese which-version-of-perl post hat mich, dass m betrachten aybe --switch hatte nicht die Wirkung, die ich wollte. Das folgende erlaubte cpanm, um zu beginnen, zu der beabsichtigten Perl zu installieren:

perlbrew switch perl-5.26.1 
Verwandte Themen