SlideShare una empresa de Scribd logo
1 de 23
最近のPerlバイナリマ
ネージャー Perl 編
@tokuhirom
LINE Corporation
自己紹介
• Shibuya.pm の方から来ました
• Principal server side engineer@LINE Corp
• Author of plenv
• CPAN module を100個ぐらい書いた
• Committer of the Perl6
歴史
• 人々は手で perl をビルドしていた
• 複数バージョンのインストール/管理が面倒
• ビルド手順が面倒
Perl = CPAN Module
を使うための DSL
非プログラマー職の
ユーザーが多い
めっちゃ古い Perl で
動かないというバグレ
ポートがめっちゃ来る
perlbrew の登場
• Feb. 2010
• curl -L https://install.perlbrew.pl | bash
• perlbrew install 5.23.0
perlbrew でできること
• ダウンロード
• ビルド
• インストール
• 複数バージョンの管理
perlbrew の問題点
• コマンドの起動が遅い
• perlbrew コマンド自体が perl で実装されてるからコマ
ンド実行時に perl が毎回走る
ruby などでは rbenv
が流行り始めた
• pure shell script なので速そう!
• cp -a rbenv/ plenv/
• perl -i -pe ’s/rbenv/plenv/g; s/ruby/perl/g’ plenv/**/*
plenv has great new features
• アプリケーション単位で perl のバージョンをかえられる
• .plenv in current directory
• 環境変数でバージョンきりかえ
• perlbrew 重い
• pure bash script
• 挙動がわかりやすい
切り替え
• plenv local 5.8.2
• ./.perl-version
• plenv global 5.8.2
• export PLENV_VERSION=5.8.2
perl-build
perl-build
• perl binary をビルドするやつ。便利。
perl-build 5.26.2 /opt/perl-5.26/
curl -L https://raw.githubusercontent.com/tokuhirom/Perl-
Build/master/perl-build | perl - 5.26.2 /opt/perl-5.26/
最近のイシュー
• search.cpan.org から tar ball の url を検出する機能
• search.cpan.org が終わった……
Devel::PatchPerl
• 古いバージョンの Perl に対するパッチ集
• CPAN に上がっている
• 有志でメンテされている
• Security fix のバックポート
• 最近のshell で動かなくなったshell script
• 7500行ぐらいのモジュール
Perl6 はどうなの?
rakudobrew
• git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew
• export PATH=~/.rakudobrew/bin:$PATH
• rakudobrew init
• rakudobrew build moar
• rakudobrew build zef
• rakudobrew rehash
Perl6 のライブラリはど
うインストールするの
?
panda was gone
zef
• zef install CSV::Parser
まとめ
• plenv 便利
• rakudobrew 便利
• Perl6 の場合は zef を使おう

Más contenido relacionado

La actualidad más candente

いまさらComposer
いまさらComposerいまさらComposer
いまさらComposerMika Kane
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISPYamaYamamoto
 
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作るLaravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作るinfinite_loop
 
Infrastructure as codeのススメ
Infrastructure as codeのススメInfrastructure as codeのススメ
Infrastructure as codeのススメkanji htmt
 
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Shohei Kobayashi
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravelMasaru Matsuo
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話kanorimon
 
わかると楽しいInfrastructure as code
わかると楽しいInfrastructure as codeわかると楽しいInfrastructure as code
わかると楽しいInfrastructure as codeShohei Kobayashi
 
Wip prをやってみた
Wip prをやってみたWip prをやってみた
Wip prをやってみたAkira Suenami
 
LaravelとMVCの先へ
LaravelとMVCの先へLaravelとMVCの先へ
LaravelとMVCの先へYuuki Takezawa
 
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかYoichi Toyota
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudyHiraku Nakano
 
自分用プラグインのススメ
自分用プラグインのススメ自分用プラグインのススメ
自分用プラグインのススメHidetaka Okamoto
 
Laravelを使ってみた
Laravelを使ってみたLaravelを使ってみた
Laravelを使ってみたJaeseop Jeong
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHPShohei Tai
 

La actualidad más candente (20)

いまさらComposer
いまさらComposerいまさらComposer
いまさらComposer
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
 
3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP3流プログラマーから見たPhalconとWISP
3流プログラマーから見たPhalconとWISP
 
Laravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作るLaravel 5.1 LTSでサービスを作る
Laravel 5.1 LTSでサービスを作る
 
Infrastructure as codeのススメ
Infrastructure as codeのススメInfrastructure as codeのススメ
Infrastructure as codeのススメ
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料
 
seccamp21z4 yamaguchi
seccamp21z4 yamaguchiseccamp21z4 yamaguchi
seccamp21z4 yamaguchi
 
今日から始めるLaravel
今日から始めるLaravel今日から始めるLaravel
今日から始めるLaravel
 
PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話PDP-11のインタプリタを作った話
PDP-11のインタプリタを作った話
 
わかると楽しいInfrastructure as code
わかると楽しいInfrastructure as codeわかると楽しいInfrastructure as code
わかると楽しいInfrastructure as code
 
Wip prをやってみた
Wip prをやってみたWip prをやってみた
Wip prをやってみた
 
LaravelとMVCの先へ
LaravelとMVCの先へLaravelとMVCの先へ
LaravelとMVCの先へ
 
ActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのかActionCableのクライアントはRails外から利用できるのか
ActionCableのクライアントはRails外から利用できるのか
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudy
 
自分用プラグインのススメ
自分用プラグインのススメ自分用プラグインのススメ
自分用プラグインのススメ
 
Laravelを使ってみた
Laravelを使ってみたLaravelを使ってみた
Laravelを使ってみた
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHP
 
Yapc fukuoka crust
Yapc fukuoka crustYapc fukuoka crust
Yapc fukuoka crust
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 

Similar a 最近のPerlバイナリマネージャー Perl 編

Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Munenori Sugimura
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
Docker friendly PHP / Laravel
Docker friendlyPHP / LaravelDocker friendlyPHP / Laravel
Docker friendly PHP / LaravelKentarou Takeda
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話Yuzo Iwasaki
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 
ニフクラとヤマハルーターで作るセキュアなオフィス環境
ニフクラとヤマハルーターで作るセキュアなオフィス環境ニフクラとヤマハルーターで作るセキュアなオフィス環境
ニフクラとヤマハルーターで作るセキュアなオフィス環境Yasutaka Hamada
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-vx-pc-club
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Yusuke Wada
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするRyo Adachi
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Kazuto Kusama
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!KLab株式会社
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Makoto Nishimura
 
anything-php-funcref-perl.el
anything-php-funcref-perl.elanything-php-funcref-perl.el
anything-php-funcref-perl.elKenichirou Oyama
 

Similar a 最近のPerlバイナリマネージャー Perl 編 (20)

NDS#31
NDS#31NDS#31
NDS#31
 
130412 kayac-cinnamon
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamon
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Docker friendly PHP / Laravel
Docker friendlyPHP / LaravelDocker friendlyPHP / Laravel
Docker friendly PHP / Laravel
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話Perl入学式に参加して初めてwebアプリを作った話
Perl入学式に参加して初めてwebアプリを作った話
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
ニフクラとヤマハルーターで作るセキュアなオフィス環境
ニフクラとヤマハルーターで作るセキュアなオフィス環境ニフクラとヤマハルーターで作るセキュアなオフィス環境
ニフクラとヤマハルーターで作るセキュアなオフィス環境
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
 
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングするAnsibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
 
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
 
Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介Aspnet mvc 6の今を紹介
Aspnet mvc 6の今を紹介
 
anything-php-funcref-perl.el
anything-php-funcref-perl.elanything-php-funcref-perl.el
anything-php-funcref-perl.el
 
社内Chef勉強会
社内Chef勉強会社内Chef勉強会
社内Chef勉強会
 

Más de Tokuhiro Matsuno

20190126 yapc tokyo keynote
20190126 yapc tokyo keynote 20190126 yapc tokyo keynote
20190126 yapc tokyo keynote Tokuhiro Matsuno
 
Plenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.orgPlenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.orgTokuhiro Matsuno
 
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介  MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介 Tokuhiro Matsuno
 
Openjdk 入門してみた話
Openjdk 入門してみた話Openjdk 入門してみた話
Openjdk 入門してみた話Tokuhiro Matsuno
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...Tokuhiro Matsuno
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets JavaTokuhiro Matsuno
 
Java web application testing
Java web application testingJava web application testing
Java web application testingTokuhiro Matsuno
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTokuhiro Matsuno
 
MySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたMySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたTokuhiro Matsuno
 

Más de Tokuhiro Matsuno (20)

20190126 yapc tokyo keynote
20190126 yapc tokyo keynote 20190126 yapc tokyo keynote
20190126 yapc tokyo keynote
 
Plenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.orgPlenv and perl build, and search.cpan.org
Plenv and perl build, and search.cpan.org
 
MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介  MyBatis を利用した web application 開発についてのご紹介
MyBatis を利用した web application 開発についてのご紹介
 
Perl6 と web 開発と
Perl6 と web 開発とPerl6 と web 開発と
Perl6 と web 開発と
 
Openjdk 入門してみた話
Openjdk 入門してみた話Openjdk 入門してみた話
Openjdk 入門してみた話
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Perl6 web-app
Perl6 web-appPerl6 web-app
Perl6 web-app
 
Perl6 meets JVM
Perl6 meets JVMPerl6 meets JVM
Perl6 meets JVM
 
Server::Starter meets Java
Server::Starter meets JavaServer::Starter meets Java
Server::Starter meets Java
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
Test::Kantan - Perl and Testing
Test::Kantan - Perl and TestingTest::Kantan - Perl and Testing
Test::Kantan - Perl and Testing
 
Devel::NYTProf::Apache
Devel::NYTProf::ApacheDevel::NYTProf::Apache
Devel::NYTProf::Apache
 
MySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみたMySQL のチューニングについて考えてみた
MySQL のチューニングについて考えてみた
 
Archer
ArcherArcher
Archer
 
MySQL::NameLocker
MySQL::NameLockerMySQL::NameLocker
MySQL::NameLocker
 
Inside MF
Inside MFInside MF
Inside MF
 
Web Application FLow
Web Application FLowWeb Application FLow
Web Application FLow
 
madeye agents
madeye agentsmadeye agents
madeye agents
 
madeye classes
madeye classesmadeye classes
madeye classes
 

最近のPerlバイナリマネージャー Perl 編