which did not look alright. Clearly cpanm is not correctly installed at least in terms of where it is placing modules.
Looks right to me. You should find /home/hsmyers/perl5/perlbrew/bin/cpanm to be a link to the current selected perl.
[~/usr/perlbrew/bin]$ dir
lrwxrwxrwx ... a2p -> ~/usr/perlbrew/perls/current/bin/a2p*
lrwxrwxrwx ... c2ph -> ~/usr/perlbrew/perls/current/bin/c2ph*
lrwxrwxrwx ... corelist -> ~/usr/perlbrew/perls/current/bin/corelist*
lrwxrwxrwx ... cpan -> ~/usr/perlbrew/perls/current/bin/cpan*
...
[~/usr/perlbrew/perls]$ dir
lrwxrwxrwx ... current -> perl-5.12.3/
...
| [reply] [Watch: Dir/Any] [d/l] [select] |
hsmyers@ubuntu:~$ cd /usr/perlbrew/perls
bash: cd: /usr/perlbrew/perls: No such file or directory
hsmyers@ubuntu:~$ cd ~/usr/perlbrew/perls
bash: cd: /home/hsmyers/usr/perlbrew/perls: No such file or directory
hsmyers@ubuntu:~$ cd /usr
hsmyers@ubuntu:/usr$ cd perlbrew
bash: cd: perlbrew: No such file or directory
--hsm
"Never try to teach a pig to sing...it wastes your time and it annoys the pig."
| [reply] [Watch: Dir/Any] [d/l] |
Shouldn't it point to the original cpanm?
It should point to the cpanm installed by the Perl installation you indicated you wanted to use via perlbrew switch.
Are you saying it doesn't?
Here is what I get:
That's not the file which said you were using.
| [reply] [Watch: Dir/Any] [d/l] [select] |
I'd love to help you with perlbrew, but I find it too complicated, for simple debug, try perl -V or perl -e " die $^X "
This works for me
- download, make, install, perl 5.8.1
wget -c http://cpan.org/src/perl-5.8.1.tar.gz
tar -zxvf perl-5.8.1.tar.gz
cd perl-5.8.1
./Configure -des -Dprefix=~/p/5.8.1/
make install
- use this perl by making it first in path
export PATH=~/p/5.8.1/perl/bin:$PATH
- verify path
which perl
perl -V
perl -e "die $^X"
- verify path from cpanp
$ cpanp
CPANPLUS::Shell::Default -- CPAN exploration and module installation (
+v0.9105)
CPAN Terminal> !warn $^X
| [reply] [Watch: Dir/Any] [d/l] [select] |
You didn't ask a question. Are you asking how to use the cpanm installed by /usr/bin/perl? If so,
perlbrew switch /usr/bin/perl
hash -r
cpanm
| [reply] [Watch: Dir/Any] [d/l] [select] |
hsmyers@ubuntu:/usr$ perlbrew switch /usr/bin/perl
/usr/bin/perl is not installed
hsmyers@ubuntu:/usr$ which cpanm
/home/hsmyers/perl5/perlbrew/bin/cpanm
hsmyers@ubuntu:/usr$ sudo cpanm Chess::PGN::Moves
[sudo] password for hsmyers:
Chess::PGN::Moves is up to date. (0.05)
hsmyers@ubuntu:/usr$ hash -r
hsmyers@ubuntu:/usr$ cpanm
Can't write to cpanm home '/home/hsmyers/.cpanm': You should fix it wi
+th chown/chmod first.
hsmyers@ubuntu:/usr$ sudo cpanm
Usage: cpanm [options] Module [...]
Try `cpanm --help` or `man cpanm` for more options.
hsmyers@ubuntu:/usr$ hash -r
hsmyers@ubuntu:/usr$ sudo cpanm
Usage: cpanm [options] Module [...]
Try `cpanm --help` or `man cpanm` for more options.
With the results as shown. Maybe I wasn't clear (the not asking questions thing) what I need is a cpanm that works with perlbrew. What I have now is one that only installs in the original environment. As a for instance, the attempt to install Chess::PGN::Moves shows a reference to the one installed under 5.10, not to one installed under 5.8.1. Further, the first line is as you had shown and got the result that you see. If I now do a quick test:
hsmyers@ubuntu:/usr$ perldoc Chess::PGN::Moves
No documentation found for "Chess::PGN::Moves".
This shows that no attempt to use cpanm has yet worked in the 5.8.1 context. Since I have no idea of what any of the commands you showed mean, I have no idea of what might be wrong---clearly something is. Given the lack of any directory off of /usr/ named perlbrew, I wonder about my installation of perlbrew---did I mess it up somehow? The only thing that I have that matches what you've said is that I do have a /usr/bin/perl. Being curious I did:
hsmyers@ubuntu:/$ perlbrew list
perl-5.8.1
* /usr/bin/perl (5.10.1)
The documentation didn't say what the '*' stands for, but if I do:
hsmyers@ubuntu:/$ perlbrew install /usr/bin/perl
Unknown installation target "/usr/bin/perl", abort.
Please see `perlbrew help` for the insturction of install command.
This might explain why my attempt to perlbrew switch /usr/bin/perl didn't work.The more I look at your first post, the more I'm wondering why I don't have a /usr/perlbrew/ directory. After all if I screwed up cpanm to to point of non-usability, doing the same to perlbrew should be dead bang easy... IMPORTANT Update: Found the problem or at least found something that works (can't speak to its correctness beyond that) Did this:
- Removed cpanm as installed by perlbrew
- Removed cpanm as installed by cpan
- Reinstalled cpanm using perlbrew install-cpanm
- Issued magic incantation sudo chown -R hsmyers /home/hsmyers/.cpanm
- Tested by cpanm-ing first dependency and rerunning perl Makefile.PL---still have dependencies reported, but one less than before!
- Continued with installs and final testing with a clean result from the makefile
Like I said, since I don't even have a Linux merit badge, let alone a wizard's staff, this is slightly suspect. I think that removing the original cpanm was probably unnecessary but did so as a clean slate kind of thing. I am convinced that the problem came down to the simple lack of correct ownership for the .cpanm directory, probably nothing more than that. This matches well with the countless reports on the net about how easy all of this was supposed to be---it's always easy if you know what the hell you are doing!.
As per usual, a ton of thanks to all who helped and made offers of help—you and all of the other Monks make this place the incredible resource that it is!
--hsm
"Never try to teach a pig to sing...it wastes your time and it annoys the pig."
| [reply] [Watch: Dir/Any] [d/l] [select] |