miyagawa / Carmel

CPAN Artifact Repository Manager
Other
138 stars 17 forks source link

Issue filename at error #95

Closed KES777 closed 2 years ago

KES777 commented 2 years ago

# perl -I$PWD/ext2/lib/perl5/ ext2/bin/carmel install

Output:

...
load_file() requires a valid, readable filename at /opt/chimera/ext2/lib/perl5/Carmel/Artifact.pm line 121.

Details: https://github.com/miyagawa/cpanminus/issues/646#issuecomment-1169913137

Would be nice if carmel issue filename which it tries to load. This will give more hints about what is wrong.

miyagawa commented 2 years ago

I believe the cause for the error is that you have a MakeMaker issue and something fundamental is broken. That error message isn't even from Carmel - it's a carp/croak error from CPAN::Meta::YAML.

As a workaround, you can install Carp::Always, and run it with perl -MCarp::Always ... carmel install to get a stacktrace.

KES777 commented 2 years ago

I think this also worth to document it. At Cookbook or Carmel best practices.

miyagawa commented 2 years ago

I do not anticipate this to be a common type of errors (again, it seems something fundamental is broken).

You mentioned in another comment that you can replicate it in a Docker environment, I think it can be debugged much easier if you can provide a Dockerfile and cpanfile (and GitHub Actions run) to reproduce the issue.

miyagawa commented 2 years ago

OK, I pushed out your cpanfile and got it working just fine https://github.com/miyagawa/carmel-test1/runs/7155630280?check_suite_focus=true

but, if I change to install Carmel to a local path, and run with -I, I get a similar weird failure: https://github.com/miyagawa/carmel-test1/runs/7155673918?check_suite_focus=true

I got a better result by setting PERL5LIb instead of using -I. https://github.com/miyagawa/carmel-test1/runs/7155730068?check_suite_focus=true

I guess using -I won't propagate the include path to the subprocesses, hence a bunch of configure errors, failing to load the correct version of MakeMaker.

Change your invocation to

export PERL5LIB=$PWD/ext2/lib/perl5
./ext2/bin/carmel install