2017-11-03 Perlbrew

I wanted a new Perl!

perlbrew install stable

This turned out to be 5.26.1. I also want all the modules:

perlbrew list-modules | perlbrew exec --with perl-5.26.1 cpanm

But that doesn’t work:

ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xd600000, needed 0xd880000)

Apparently, something with my PERL5LIB is wrong:

alex@sibirocobombus:~$ perl -E 'say for @INC'
/home/alex/perl5/lib/perl5/x86_64-linux
/home/alex/perl5/lib/perl5
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1

I checked my .bashrc and found this:

# Setup local::lib
eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"

Well, that looks suspicious. I commented this line, logged out, logged in again, and:

alex@sibirocobombus:~$ perl -E 'say for @INC'
/home/alex/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.24.0/lib/site_perl/5.24.0
/home/alex/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.24.0/lib/5.24.0
.
alex@sibirocobombus:~$ perlbrew use perl-5.26.1
alex@sibirocobombus:~$ perl -E 'say for @INC'
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/site_perl/5.26.1
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1/x86_64-linux
/home/alex/perl5/perlbrew/perls/perl-5.26.1/lib/5.26.1

This looks good. I’ll have to remember that the current directory is no longer in @INC by default.

Oh, and since we’re already here: what is the list of modules?

Algorithm::Diff
Alien::Base
Alien::Hunspell
Alien::patch
App::cpanminus
Archive::Extract
Authen::SASL
B::Hooks::EndOfScope
CGI
CPAN::DistnameInfo
CPAN::Meta::Check
CPAN::SQLite
Captcha::reCAPTCHA
Capture::Tiny
Class::Accessor
Class::Data::Inheritable
Class::Inspector
Class::Load
Class::Load::XS
Class::Singleton
Cpanel::JSON::XS
Crypt::OpenSSL::RSA
Crypt::OpenSSL::Random
Crypt::Random::Seed
Crypt::Random::TESHA2
Crypt::Rijndael
DBD::SQLite
DBI
DB_File
Data::OptList
Date::Parse
Date::Time
DateTime
DateTime::Format::Mail
DateTime::Format::W3CDTF
DateTime::Locale
DateTime::TimeZone
Devel::GlobalDestruction
Devel::OverloadInfo
Devel::StackTrace
Digest::HMAC
Digest::SHA1
Dist::CheckConflicts
Encode::Locale
Eval::Closure
Exception::Class
Exporter::Tiny
ExtUtils::CChecker
ExtUtils::Config
ExtUtils::Helpers
ExtUtils::InstallPaths
FFI::CheckLib
File::HomeDir
File::Listing
File::ShareDir
File::ShareDir::Install
File::Tempdir
File::Which
File::chdir
File::pushd
GD
Geo::IP
HTML::Parser
HTML::Tagset
HTML::Template
HTML::Tiny
HTML::Tree
HTTP::AcceptLanguage
HTTP::BrowserDetect
HTTP::Cookies
HTTP::Daemon
HTTP::Date
HTTP::Message
HTTP::Negotiate
HTTP::Server::Simple
I18N::AcceptLanguage
IO::HTML
IO::Pipely
IO::Socket::SSL
Image::ExifTool
Imager
Import::Into
JSON
LWP
LWP::MediaTypes
LWP::Protocol::https
List::MoreUtils
List::Util
MIME::Tools
MLDBM
MRO::Compat
Mail
Math::Fractal::Noisemaker
Math::Geometry::Voronoi
Modern::Perl
Module::Build
Module::Build::Tiny
Module::Implementation
Module::Load::Conditional
Module::Runtime
Module::Runtime::Conflicts
Mojolicious
Mojolicious::Plugin::AccessLog
Mojolicious::Plugin::Authentication
Mojolicious::Plugin::CGI
Mojolicious::Plugin::RenderFile
Moose
Mozilla::CA
Net::CIDR::Lite
Net::DNS
Net::HTTP
Net::IDN::Encode
Net::Patricia
Net::SMTP::SSL
Net::SMTP::TLS
Net::SSLeay
Net::Whois::IP
Net::Whois::Parser
Net::Whois::Raw
Package::DeprecationManager
Package::Stash
Package::Stash::XS
Params::Util
Params::Validate
Path::Tiny
Perl
PerlIO::utf8_strict
Pod::Strip
Proc::ProcessTable
RPC::XML
Razor2::Client::Agent
Regexp::IPv6
SVG
Shell::Config::Generate
Shell::Guess
Socket6
Sort::Versions
Sub::Exporter
Sub::Exporter::Progressive
Sub::Identify
Sub::Install
Sub::Name
Sub::Uplevel
Test::CChecker
Test::CleanNamespaces
Test::Deep
Test::Differences
Test::Exception
Test::FailWarnings
Test::Fatal
Test::Manifest
Test::Most
Test::Needs
Test::NoWarnings
Test::Requires
Test::RequiresInternet
Test::Simple
Test::Warn
Test::Warnings
Text::Diff
Text::Hunspell
Tie::CArray
Time::ParseDate
Toadfarm
Try::Tiny
URI
Variable::Magic
WWW::RobotRules
XML::Atom
XML::LibXML
XML::NamespaceSupport
XML::Parser
XML::RSS
XML::SAX
XML::SAX::Base
XML::XPath
XSLoader
local::lib
namespace::autoclean
namespace::clean
utf8::all

I wonder which of these I actually need. How will I ever prune this list? I’ll have to find and run all the Perl applications I have on this system.

Tags:

Comments


Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

To save this page you must answer this question:

Please say HELLO.