perlbrew, Seacan, pau, and other stuffs.
Kang-min Liu / @gugod
$o->{a}[42]->foo()
safe.perlbrew install perl-5.38.0
perlbrew use perl-5.38.0
perlbrew install perl-5.18.4
perlbrew use perl-5.18.4
Big Thanks to Travis CI for choosing perlbrew
can
perlbrew
do more ?
$tagline[0] = "perl environment manager.";
$tagline[1] = await thinking();
# perlbrew switch 5.36
# cpanm App::Ack App::Uni
# uni JOY | ack CAT
πΉ - U+1F639 - CAT FACE WITH TEARS OF JOY
% perlbrew use 5.18
% uni WEARY | ack FACE
zsh: uni: command not found...
zsh: ack: command not found...
π© π
Shipping
software
π¦ π¦ π¦
xsawyerx> Riak distribution is awesome. You download a tarball, exract it, then run bin/riak
. Everything works from there.
xsawyerx> Can we do the same for perl apps ?
gugod> ok
Seeacan is a directory containing
Shipment of Seacan = rsync -ar
the entire directory
meanwhileβ¦
how do we distribute
pre-packaged software ?
perl
itselfdocker
, podman
)~/.local/pipx/venvs/$APP/
~/.local/bin/$APP
-> ~/.local/pipx/venvs/$APP/bin/$APP
$PATH
~/.local/pau/apps/$APP/
~/.local/pau/shims/$APP
a shell wrapper, in which PERL5LIB is tweakd~/.local/bin/$APP
-> ~/.locl/pau/shims/$APP
pau install uni -M App::Uni
pau install ack -M App::Ack
pau install cpanoc -M Pod::Cpandoc
* Installs App::ccdiff
pau instll ccdiff
pau install ack -M App::Ack
pau pp ack
perlbrew use 5.38
cpanm App::Uni App::Ack
perlbrew make-shim uni
perlbrew make-shim ack
cp ./uni ./ack ~/.local/bin
export PATH=~/.local/bin:$PATH
# uni cat grinning
πΈ - U+1F638 - GRINNING CAT FACE WITH SMILING EYES
perl.AppDir
βββ app
β βββ perl-5.38 # relocatableinc
β ...
βββ AppRun -> ./app/perl-5.38/bin/perl
βββ perl.desktop
βββ perl.png
appimagetool-x86_64.AppImage perl.AppDir
#=> perl-x86_64.AppImage
# ./perl-x86_64.AppImage -E 'say "Hello from $^V"'
Hello from v5.38.0
uni.AppDir
βββ app
β βββ perl-5.38
β βββ uni
βββ AppRun
βββ uni.desktop
βββ uni.png
uni.Appdir/app/uni/
## uni.AppDir
# ./app/perl-5.38/bin/perl =cpanm -L ./app/uni --notest -q App::Uni
...
Successfully installed App-Uni-9.006
AppRun
#!/bin/sh
export PATH=$APPDIR/app/perl-5.38/bin:$APPDIR/app/uni/bin:$PATH
export PERL5LIB=$APPDIR/app/uni/lib/perl5
exec perl $APPDIR/app/uni/bin/uni "$@"
# ./uni-x86_64.AppImage cat grinning
πΈ - U+1F638 - GRINNING CAT FACE WITH SMILING EYES
I
know
what we
can make
perlbrew do
β¦
New perlbrew commands
use
/switch
already workedThanks for
Listening