Closed xeruf closed 3 years ago
$ cpan Algorithm::Diff
This program only works with its prerequisites installed.
The correct (easy) way to install ccdiff
is (or should be)
$ cpan App::ccdiff
If that doesn't work, I'm curious to what the error messages are
❯ cpan App::ccdiff
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/home/janek/.cache/cpan/Metadata'
Database was generated on Tue, 29 Dec 2020 16:17:03 GMT
Running install for module 'App::ccdiff'
Checksum for /home/janek/.cache/cpan/sources/authors/id/H/HM/HMBRAND/App-ccdiff-0.30.tgz ok
'YAML' not installed, will not store persistent state
Configuring H/HM/HMBRAND/App-ccdiff-0.30.tgz with Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite Algorithm::Diff 1.1901 not found.
Warning: prerequisite Capture::Tiny 0 not found.
Generating a Unix-style Makefile
Writing Makefile for App::ccdiff
Writing MYMETA.yml and MYMETA.json
HMBRAND/App-ccdiff-0.30.tgz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for H/HM/HMBRAND/App-ccdiff-0.30.tgz
---- Unsatisfied dependencies detected during ----
---- HMBRAND/App-ccdiff-0.30.tgz ----
Algorithm::Diff [requires]
Algorithm::Diff::XS [requires,optional]
Capture::Tiny [build_requires]
Running install for module 'Algorithm::Diff'
Checksum for /home/janek/.cache/cpan/sources/authors/id/R/RJ/RJBS/Algorithm-Diff-1.201.tar.gz ok
Configuring R/RJ/RJBS/Algorithm-Diff-1.201.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Algorithm::Diff
Writing MYMETA.yml and MYMETA.json
RJBS/Algorithm-Diff-1.201.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for R/RJ/RJBS/Algorithm-Diff-1.201.tar.gz
cp lib/Algorithm/DiffOld.pm blib/lib/Algorithm/DiffOld.pm
cp lib/Algorithm/Diff.pm blib/lib/Algorithm/Diff.pm
Manifying 2 pod documents
RJBS/Algorithm-Diff-1.201.tar.gz
/usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for RJBS/Algorithm-Diff-1.201.tar.gz
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/base.t .. ok
t/oo.t .... ok
All tests successful.
Files=2, Tests=1004, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.04 cusr 0.01 csys = 0.08 CPU)
Result: PASS
RJBS/Algorithm-Diff-1.201.tar.gz
/usr/bin/make test -- OK
Running make install for RJBS/Algorithm-Diff-1.201.tar.gz
Manifying 2 pod documents
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/share/man/man3'
Do not have write permissions on '/usr/share/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
make: *** [Makefile:704: pure_site_install] Error 13
RJBS/Algorithm-Diff-1.201.tar.gz
/usr/bin/make install -- NOT OK
----
You may have to su to root to install the package
(Or you may want to run something like
o conf make_install_make_command 'sudo make'
to raise your permissions.Running install for module 'Capture::Tiny'
Checksum for /home/janek/.cache/cpan/sources/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz ok
Configuring D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Capture::Tiny
Writing MYMETA.yml and MYMETA.json
DAGOLDEN/Capture-Tiny-0.48.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz
cp lib/Capture/Tiny.pm blib/lib/Capture/Tiny.pm
Manifying 1 pod document
DAGOLDEN/Capture-Tiny-0.48.tar.gz
/usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for DAGOLDEN/Capture-Tiny-0.48.tar.gz
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-report-prereqs.t ...... #
# Versions for all modules listed in MYMETA.json (including optional ones):
#
# === Configure Requires ===
#
# Module Want Have
# ------------------- ---- ----
# ExtUtils::MakeMaker 6.17 7.44
#
# === Build Requires ===
#
# Module Want Have
# ------------------- ---- ----
# ExtUtils::MakeMaker any 7.44
#
# === Test Requires ===
#
# Module Want Have
# ------------------- ---- --------
# ExtUtils::MakeMaker any 7.44
# File::Spec any 3.78
# IO::File any 1.41
# Test::More 0.62 1.302175
# lib any 0.65
#
# === Test Recommends ===
#
# Module Want Have
# ---------- -------- --------
# CPAN::Meta 2.120900 2.150010
#
# === Runtime Requires ===
#
# Module Want Have
# ------------ ---- ------
# Carp any 1.50
# Exporter any 5.74
# File::Spec any 3.78
# File::Temp any 0.2309
# IO::Handle any 1.42
# Scalar::Util any 1.55
# strict any 1.11
# warnings any 1.47
#
t/00-report-prereqs.t ...... ok
t/01-Capture-Tiny.t ........ ok
t/02-capture.t ............. ok
t/03-tee.t ................. ok
t/06-stdout-closed.t ....... ok
t/07-stderr-closed.t ....... ok
t/08-stdin-closed.t ........ ok
t/09-preserve-exit-code.t .. ok
t/10-stdout-string.t ....... ok
t/11-stderr-string.t ....... ok
t/12-stdin-string.t ........ ok
t/13-stdout-tied.t ......... ok
t/14-stderr-tied.t ......... ok
t/15-stdin-tied.t .......... ok
t/16-catch-errors.t ........ ok
t/17-pass-results.t ........ ok
t/18-custom-capture.t ...... ok
t/19-relayering.t .......... ok
t/20-stdout-badtie.t ....... ok
t/21-stderr-badtie.t ....... ok
t/22-stdin-badtie.t ........ ok
t/23-all-tied.t ............ ok
t/24-all-badtied.t ......... ok
t/25-cap-fork.t ............ ok
All tests successful.
Files=24, Tests=12005, 17 wallclock secs ( 0.96 usr 0.07 sys + 13.59 cusr 6.39 csys = 21.01 CPU)
Result: PASS
DAGOLDEN/Capture-Tiny-0.48.tar.gz
/usr/bin/make test -- OK
Running make install for DAGOLDEN/Capture-Tiny-0.48.tar.gz
Manifying 1 pod document
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/share/man/man3'
Do not have write permissions on '/usr/share/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
make: *** [Makefile:741: pure_site_install] Error 13
DAGOLDEN/Capture-Tiny-0.48.tar.gz
/usr/bin/make install -- NOT OK
----
You may have to su to root to install the package
(Or you may want to run something like
o conf make_install_make_command 'sudo make'
to raise your permissions. HMBRAND/App-ccdiff-0.30.tgz
Has already been unwrapped into directory /home/janek/.cache/cpan/build/App-ccdiff-0.30-2
HMBRAND/App-ccdiff-0.30.tgz
Has already been prepared
Running make for H/HM/HMBRAND/App-ccdiff-0.30.tgz
---- Unsatisfied dependencies detected during ----
---- HMBRAND/App-ccdiff-0.30.tgz ----
Algorithm::Diff::XS [requires,optional]
cp lib/App/ccdiff.pm blib/lib/App/ccdiff.pm
cp ccdiff blib/script/ccdiff
"/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ccdiff
Manifying 1 pod document
Manifying 1 pod document
HMBRAND/App-ccdiff-0.30.tgz
/usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for HMBRAND/App-ccdiff-0.30.tgz
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01-no-color.t .. ok
All tests successful.
Files=1, Tests=36, 1 wallclock secs ( 0.01 usr 0.00 sys + 0.41 cusr 0.07 csys = 0.49 CPU)
Result: PASS
HMBRAND/App-ccdiff-0.30.tgz
/usr/bin/make test -- OK
Running make install for HMBRAND/App-ccdiff-0.30.tgz
Manifying 1 pod document
Manifying 1 pod document
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/bin/site_perl'
Do not have write permissions on '/usr/bin/site_perl'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
make: *** [Makefile:775: pure_site_install] Error 13
HMBRAND/App-ccdiff-0.30.tgz
/usr/bin/make install -- NOT OK
----
You may have to su to root to install the package
(Or you may want to run something like
o conf make_install_make_command 'sudo make'
to raise your permissions.Running install for module 'Algorithm::Diff::XS'
Checksum for /home/janek/.cache/cpan/sources/authors/id/A/AU/AUDREYT/Algorithm-Diff-XS-0.04.tar.gz ok
Configuring A/AU/AUDREYT/Algorithm-Diff-XS-0.04.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Algorithm::Diff::XS
Writing MYMETA.yml and MYMETA.json
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for A/AU/AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
---- Unsatisfied dependencies detected during ----
---- AUDREYT/Algorithm-Diff-XS-0.04.tar.gz ----
Algorithm::Diff [requires]
Running install for module 'Algorithm::Diff'
RJBS/Algorithm-Diff-1.201.tar.gz
Has already been unwrapped into directory /home/janek/.cache/cpan/build/Algorithm-Diff-1.201-3
RJBS/Algorithm-Diff-1.201.tar.gz
Has already been prepared
RJBS/Algorithm-Diff-1.201.tar.gz
Has already been made
RJBS/Algorithm-Diff-1.201.tar.gz
Has already been tested successfully
RJBS/Algorithm-Diff-1.201.tar.gz
Already tried without success
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been unwrapped into directory /home/janek/.cache/cpan/build/Algorithm-Diff-XS-0.04-2
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been prepared
Running make for A/AU/AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
cp lib/Algorithm/Diff/XS.pm blib/lib/Algorithm/Diff/XS.pm
Running Mkbootstrap for XS ()
chmod 644 "XS.bs"
"/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- XS.bs blib/arch/auto/Algorithm/Diff/XS/XS.bs 644
"/usr/bin/perl" "-Iinc" "/usr/share/perl5/core_perl/ExtUtils/xsubpp" -typemap '/usr/share/perl5/core_perl/ExtUtils/typemap' XS.xs > XS.xsc
mv XS.xsc XS.c
cc -c -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -fPIC "-I/usr/lib/perl5/5.32/core_perl/CORE" XS.c
rm -f blib/arch/auto/Algorithm/Diff/XS/XS.so
cc -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -fstack-protector-strong XS.o -o blib/arch/auto/Algorithm/Diff/XS/XS.so \
\
chmod 755 blib/arch/auto/Algorithm/Diff/XS/XS.so
Manifying 1 pod document
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
/usr/bin/make -- OK
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Running make test for AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
"/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- XS.bs blib/arch/auto/Algorithm/Diff/XS/XS.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/base.t .. ok
t/oo.t .... ok
All tests successful.
Files=2, Tests=1004, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.05 cusr 0.01 csys = 0.09 CPU)
Result: PASS
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
/usr/bin/make test -- OK
Running make install for AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
"/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- XS.bs blib/arch/auto/Algorithm/Diff/XS/XS.bs 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/lib/perl5/5.32/site_perl/Algorithm/Diff'
mkdir /usr/lib/perl5/5.32/site_perl/Algorithm: Permission denied at /usr/share/perl5/core_perl/ExtUtils/Install.pm line 489.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
at -e line 1.
make: *** [Makefile:738: pure_site_install] Error 13
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
/usr/bin/make install -- NOT OK
Running install for module 'Algorithm::Diff::XS'
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been unwrapped into directory /home/janek/.cache/cpan/build/Algorithm-Diff-XS-0.04-2
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been prepared
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been made
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Has already been tested successfully
AUDREYT/Algorithm-Diff-XS-0.04.tar.gz
Already tried without success
oooww, there is a truckload of information in this log:
The current configuration of allow_installing_outdated_dists is 'ask/no', but for this option we would need 'CPAN::DistnameInfo' installed. Please install 'CPAN::DistnameInfo' as soon as possible. As long as we are not equipped with 'CPAN::DistnameInfo' this option does not take effect
Not vital, but it will likely make your installations more smooth if you install CPAN::DistnameInfo
Running make install for RJBS/Algorithm-Diff-1.201.tar.gz
Manifying 2 pod documents
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/share/man/man3'
Do not have write permissions on '/usr/share/man/man3'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
So, you are trying to install as a normal user into the system space. Unless you use sudo
this won't (and shouldn't) work. You've got several options here:
suse$ sudo zypper install perl-Algorithm-Diff
centos$ sudo yum install perl-Algorithm-Diff
cpan
command as root using sudo
. (not advicable if the module is avail;able as system package)$PERL5LIB
to match itperlbrew
: it'll cost you time to set it up, but it might be rewarding later onsudo
$PERL5LIB
to match itperlbrew
: it'll cost you time to set it up, but it might be rewarding later onThe same error applies to installing Capture::Tiny
suse$ sudo zypper install perl-Capture-Tiny
centos$ sudo yum install perl-Capture-Tiny
As these two prerequisites failed to install, App::ccdiff
won't install. All prereqs have to be met.
See, I have no clue concerning Perl :) thank you!
On arch I needed sudo pacman -S perl-algorithm-diff perl-capture-tiny
, and it works now :)
So CPAN can't install into the userspace (i.e. ~/.local/bin
)? I guess gonna do it manually then, and maybe I'll get around to creating an AUR package :)
To use a local environment, use cpan -I
, but cpan
is not as well suited for this as cpanm
is.
$ cpanm --help |& grep -i -e local -e bin -e lib
-l,--local-lib Specify the install base to install modules
-L,--local-lib-contained Specify the install base to install all non-core modules
cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file
cpanm . # install from local directory
cpanm -L extlib Plack # install Plack and all non-core deps into extlib
You can read all about the differences and alternatives here and the docs for cpanm
here
After installing it on Arch Linux, regardless of via CPAN or directly through the script and running the binary, I get the following error:
I have zero experience with Perl, what am I supposed to do?