in reply to Installing a Perl module to an embedded target with different Perl version

How are you transferring stuff to the embedded system? Can't you just do something like:
$ scp -r /path/to/root/user/share/perl/5.10.0 remote:/usr/lib/perl5/si +te_perl/5.8.8
? Alternatively, do something like this on your build system:
$ mkdir -p /usr/lib/perl5/site_perl/5.8.8 $ ln -s /usr/lib/perl5/site_perl/5.8.8 /path/to/root/usr/share/perl/5. +10.0
Or build a perl5.8.8 on your build system, which has the same @INC as the one on the embedded system, and use that to build your modules. Then you can deal with non-pure Perl modules as well.

Replies are listed 'Best First'.
Re^2: Installing a Perl module to an embedded target with different Perl version
by wanna_code_perl (Friar) on May 18, 2010 at 16:11 UTC
    How are you transferring stuff to the embedded system? Can't you just do something like: (scp to the box)

    No. Remember the system boots from a filesystem image. It's created beforehand and installed on many, many units in production, and, thanks to the fact that it's in RAM, FS changes are destroyed on every reboot (and that's a good thing).

    Or build a perl5.8.8 on your build system, which has the same @INC as the one on the embedded system, and use that to build your modules. Then you can deal with non-pure Perl modules as well.

    I also mentioned that the host and target architectures differ, so this wouldn't gain anything. However, I'm really only worried about pure Perl modules. ikegami hit the solution on the head, though, so fortunately nothing like this is necessary, which is what I'd hoped.

    Thanks!

      Remember the system boots from a filesystem image.
      So, where is this filesystem image coming from? I've created images for embedded systems as well (but they didn't have the resources to be able to run perl); putting files there was a matter of copying - it wasn't "scp to box" but "cp to mounted image".

        Quoting from the original question node:

        If I manually copy the files to one of the directories in @INC, it works fine, but I have many such modules to install, so would very much like to be able to run Makefile.PL and make install in my system build script to stick the modules into the right location, rather than hacking together my own install script or hacking @INC.

        More specifically, the whole point of my question was to avoid having to hack together a reinvented "cp to mounted image" solution, but instead let Makefile.PL do the right thing (which I now know how to do).