tokuhirom / plenv

Perl binary manager
Other
516 stars 71 forks source link

plenv does not seem to find system perl site modules #142

Closed richardkmichael closed 6 years ago

richardkmichael commented 6 years ago

I'm sure I'm doing something wrong, any ideas?

I have plenv 2.2.0 installed via homebrew. I have perl 5.26.1 installed via homebrew; this is my system perl and used in this report. I also have a separate 5.26.1 installed with plenv itself.

I am using the system perl:

$ plenv version
system (set by /Users/richardmichael/.plenv/version)
$ type perl
perl is hashed (/Users/richardmichael/.plenv/shims/perl)
 $ perl -V
Summary of my perl5 (revision 5 version 26 subversion 1) configuration:
... snip ...
  @INC:
    /usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1/darwin-thread-multi-2level
    /usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1
    /usr/local/Cellar/perl/5.26.1/lib/perl5/5.26.1/darwin-thread-multi-2level
    /usr/local/Cellar/perl/5.26.1/lib/perl5/5.26.1
    /usr/local/lib/perl5/site_perl/5.26.1/darwin-thread-multi-2level
    /usr/local/lib/perl5/site_perl/5.26.1

$ perl -V:'install(privlib|archlib|vendorlib|vendorarch|sitelib|sitearch)'
installarchlib='/usr/local/Cellar/perl/5.26.1/lib/perl5/5.26.1/darwin-thread-multi-2level';
installprivlib='/usr/local/Cellar/perl/5.26.1/lib/perl5/5.26.1';
installsitearch='/usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1/darwin-thread-multi-2level';
installsitelib='/usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1';
installvendorarch='';
installvendorlib='';

I installed Carton (to the system perl) using cpan, which cpan has installed to the site_perl:

$ cpan Carton
# ... snip ...

$ ls -1d /usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1/Carton*
/usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1/Carton
/usr/local/Cellar/perl/5.26.1/lib/perl5/site_perl/5.26.1/Carton.pm

There is a plenv shim for carton:

$ ls $(type -p carton)
/Users/richardmichael/.plenv/shims/carton

But, plenv will not find the module correctly when I invoke the executable via the shim.

$ carton --help
plenv: carton: command not found

The `carton' command exists in these Perl versions:
  5.26.1

Plenv offers the carton module which is installed in the addition perl I installed using plenv itself. This carton module is also installed in the respective site perl directory, so I don't understand why plenv is not detecting the system site perl carton module.

There are no environment variables affecting perl or plenv:

$ env | grep -E '(perl|plenv)'|grep -v PATH  # Remove PATH, it contains `~/.plenv` of course.
skaji commented 6 years ago

I think you should add /usr/local/Cellar/perl/5.26.1/bin to PATH manually.

richardkmichael commented 6 years ago

@skaji Wonderful, this fixed it, thank you very much! How did you know this was necessary?