Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • if you don't mind changing your paths a bit, use local::lib '/opt/perl' and forget about it.

    I'd say you're missing the arch-specific dirs (you probably are), but that can't be all, because that wouldn't explain Moose and Test::More.
    • I don't mind changing my paths inside regular Perl stuff... works good lasts long time already there.

      It's just when I'm sudo'd to run the cpan shell. I can't change root's paths (at least, not permanently) without defeating the purpose of having the libs separated. And even so, I'm doing a straight-up sudo, and PERL5LIB carries over.

      So I'm not at all sure that's the actual problem... it seems like whatever's doing the installation (Module::Install, I think) is failing to locate it internally. Not a failed r
      • And even so, I'm doing a straight-up sudo, and PERL5LIB carries over.

        Are you sure? I believe that by default sudo will clear PERL5LIB because of a security issue [debian.org].

        So, you can either edit /etc/sudoers to keep the value (not recommended) or do something like this. [blogspot.com]

        • I Did Not Know That.

          Neither did my sysadmin/husband (though when I mentioned it, he went off into talking-to-the-ceiling land: "Huh! Yeah, that would... oh, then you could... yeah, that could be a problem... but you could... no... ")

          And hey, passing it on the command line works. Thanks!
      • I don't mind changing my paths inside regular Perl stuff... works good lasts long time already there.

        I didn't mean inside Perl, I meant in your shell, like the local::lib examples give:
        eval `perl -Mlocal::lib=/opt/perl`
        (in .bashrc or similar)

        This will cover all the bases -- Module::Install, Module::Build, your arch-specific dirs, etc.

        • The problem is (was) that Module::Install and everybody all worked fine... *if* I installed manually. There didn't seem to be anything wrong with "my" configuration, I just couldn't figure out why the cpan shell, specifically, wasn't honoring it. So it didn't seem like local::lib would help.

          The key, it turns out, was that by the time I reached "make install," the only bit done with sudo, my personal PERL5LIB had already set all the appropriate paths, so the fact that it wasn't being passed wasn't a concern
  • I've been using Debian for quite a few years now and I've reached the position where I really don't like to install anything onto a machine that's not Debian packaged - if nothing else, it makes it easy to remove stuff :-)

    To build a Debian package from a CPAN distribution, just do something like this:

    dh-make-perl --build --cpan JSON::XS

    This will download the latest tarball from CPAN, unpack it, throw together a skeleton 'debian' directory, and then build the .deb package using the normal CPAN make; m

    • I've done that a little, but I think part of keeping them separate is that then the versions Debian expects are there for Debian-related stuff. But I dunno, exactly. That part's not my bailiwick.
      • In which case, if you are serious about that, you should compile your own Perl from source for use in your code; which would would also mean you wouldn’t have to configure any paths.

        • I have debian (Linux zoe 2.6.24-1-686 #1 SMP Sat Apr 19 00:37:55 UTC 2008 i686 GNU/Linux) and I don't have that problem with cpan, so I've never needed those other manoeuvres either.
        • We've considered that, at least on the dev box.

          I've also considered pretending it's a Windows box: chmod 0777 everything, run as root, and reinstall from scratch every couple of weeks... just so I could ignore OS details until the Perl is finished. And also (okay, mostly) because it's fun to suggest that to a security-conscious sysadmin.
  • Have you solved this issue?

    I don't think there is anything wrong (at least for you) with the cpan script. It looks like you thought PERL5LIB was one thing but it wasn't, and that's why things failed. That's going to be a problem with any Perl script.
    • Yup. The cpan shell just happens to be the only thing I sudo to use, ergo it was the only place PERL5LIB was going away.

      I had thought I had checked it, by su'ing to root and looking at it, and it's properly set there. I didn't realize sudo and su behaved differently in that respect, so I thought I'd eliminated that problem. The fact that that was the only solution I was coming across in Google probably should have told me something, I guess.

  • Have you looked at:

    http://debianpkgs.cpan.org/ [cpan.org]

    for both a mirror with pre-built packages of the most used distributions, as well as tools to build them yourself?

    Integrates nicely with debian and doesn't mess with official packages as provided by the official debian repositories