shepherd should try really hard to fulfill any CPAN module dependencies with a local CPAN archive
shepherd should try really hard to fulfill any CPAN module dependencies with a local CPAN archive in ~/.shepherd/deps/ or similar. (i.e. without requiring root or write priviledges in /usr/lib/perl*/..).
a key goal of shepherd is that it auto-updates itself and any components without requiring manual intervention.
that goal should also apply to any dependencies that CAN be updated provided it isn't too hard to do. (i.e. CPAN modules: yes, Javascript system libarries: not necessarily).
Change History (6)
Resolution: |
→ wontfix
|
Status: |
new →
closed
|
Keywords: |
KLZPQFRwwcf added
|
Milestone: |
→ 1.0
|
Deferring this for 2.0 or future - marking as too hard for now.
Here is some code that works some of the time, but many CPAN modules just have external dependencies that cannot be met.
On trivial ones (like Cwd, LWP etc), it works just fine.
On more complex ones with external depencendies (e.g. GD, Javascript) it will consistently fail.
The real problem is that many CPAN install scripts expect to always be interactive and ask questions. Installation of these will almost always fail.
Unless anyone has any smart idea on how to progress further with this, i say it be scrapped for the time being.
The code ‘as is’ is as per below.
Shepherd itself ‘tests’ all components when they’re installed and notices any “Can't locate (.*) in @INC” messages as a hint of a missing module.
It then tries to install it.
The idea is that components called from shepherd can pick up ‘locally installed’ modules via this code (at the beginning of each module):
Shepherd passes any additions to @INC (where perl looks for modules) via the SHEPHERD_INC environment variable.