micro typeでの準備
perl5 on AMI Linux t1.micro
awsを使ってapi.hakoniwa.com用の環境を作ってみようと思いました.試しに作ってみたときのメモです.用意したインスタンスは,
AMI: Amazon Linux AMI ID ami-2272864b (x86_64)
Name: Basic 64-bit Amazon Linux AMI 1.0
$ ssh -i .ssh/awskey -o ServerAliveInterval=5 ec2-user@ec2- ... amazonaws.com
後は普段通りにperl5をインストールします.
$ sudo yum update $ sum yum groupinstall 'Development Tools' $ sudo yum install git $ curl -LO http://xrl.us/perlbrew $ chmod +x perlbrew $ ./perlbrew install $ /home/ec2-user/perl5/perlbrew/bin/perlbrew init
ここまでできたら,~/.bashrcに以下の行を追加します.
source /home/ec2-user/perl5/perlbrew/etc/bashrc
さらに作業を続けます.
$ . .bashrc $ perlbrew install perl-5.12.2 $ perlbrew switch perl-5.12.2 $ curl -L http://cpanmin.us/ | perl - App::cpanminus $ cpanm App::cpanoutdated $ cpanm App::pmuninstall $ cpan-outdated | cpanm
これでperl5がインストールできました.
perl6 on AMI Linux t1.micro
使うつっもりはまだないですが,JPerl Advent Calendar 2010 Perl6 Tracを読んでperl6にも興味を持ちました.perl5をインストールしたついでにperl6のインストール方法もまとめてみました.AMIは上と同じようにt1.microを使っています.
$ sudo yum update $ sudo yum groupinstall 'Development Tools' $ sudo yum install git $ sudo yum install libicu-devel
m1.typeの環境ではperl6作成の時にメモリがたりず,oom killerが発動します.そのためswap領域を追加しておきます.
$ sudo dd if=/dev/zero of=/myswap0 bs=1M count=2048 $ sudo mkswap /myswap0 $ sudo swapon /myswap0
これで,/proc/swapsを見ると以下のようになっているはずです.
Filename Type Size Used Priority /myswap0 file 2097148 0 -1
次にbootした時にもswapを使えるようにするためには/etc/fstabに以下の行を追加しておきます.
/myswap0 swap swap defaults 0 0
これで準備ができました.AMI Linuxにはperl5が入っているので,そのまま使えば…と思ったのですが,perl6を作る際にエラーが出たので上と同じようにインストールしました.
$ curl -LO http://xrl.us/perlbrew $ chmod +x perlbrew $ ./perlbrew install $ /home/ec2-user/perl5/perlbrew/bin/perlbrew init ## Add next line to the ~/.bashrc source /home/ec2-user/perl5/perlbrew/etc/bashrc $ . .bashrc $ perlbrew install perl-5.12.2 $ perlbrew switch perl-5.12.2
さぁこれでperl6を作る準備ができました.
$ git clone git://github.com/rakudo/rakudo.git
$ cd rakudo
$ perl Configure.pl--gen-parrot
$ make
$ make install
Configure.plには15分ぐらい,makeには7時間ぐらいかかります.これでできるperl6はrakudo環境のみでrakudo starディストリビューションに入っているモジュールが入っていません(ファイルははいってるんだけど,ライブラリパスとは違う場所に入っていたり,そもそもなかったり).そのため公開されているモジュールを使ってみよう - JPerl Advent Calendar 2010 Perl6 Trackで紹介されているneutroコマンドを使って必要なモジュールをインストールする必要があります.
といっても,モジュールがないことに気づいてrakudo starに切り替えてそのあとにneutroのことを知ったので,実際に試していません.もし違っていたら,ここの文章を書き直すようにします.