PugsをHardyに手動でインストールした
andLinuxではaptで簡単にPugsをインストールできたのにHardyでは見つからなかったよ?レポジトリ登録してないせいかな?とも思ったのですが面倒だったので手動で入れました。
せっかくなので手順を残しておきます。
Pugsって?
現在開発中のPerl6のインタラクティブシェルとして機能します。
中身はよくわかりませんがHaskellで実装されているらしいです。したがってHaskellのパッケージを事前にインストールしておく必要があります。私のHardyでもHaskellはちゃんとインストールされていました。
Pugsのチェックアウト
まずはこの辺を眺めます(Perl6)。
ページ左のメニューにPugsというリンクが見つかりました(Pugs)。
そしてこのメニューに「Download」というリンクがあります・・・が、リンク切れてるようです。幸いにもメインカラムに「How to get the code」とあります。そこにSubversionのレポジトリへのリンクがあったので、これをチェックアウトしておきます。私はメインレポジトリをチェックアウトしました。
svn co http://svn.pugscode.org/pugs/
チェックアウトして中を見るとINSTALLというファイルが転がってました。中身を見ると・・・
2. Type the following commands:
cabal update
cabal install Pugs...and you're done.
依存関係の解消:Cabalのインストール
そして
% apt-cache search cabal libghc6-cabal-dev - Haskell Common Architecture for Building Applications and Libraries
というのを見つけてインストールを試みます。が
以下のパッケージには満たせない依存関係があります:
libghc6-cabal-dev: 依存: ghc6 (< 6.6.1+) しかし、6.8.2-2ubuntu1 はインストールされようとしています
E: 壊れたパッケージ
・・・?ghcのバージョンが新しすぎると言われている?
仕方ないのでcabalも手動でインストールします。
cabalはThe Haskell Cabalから入手します。Downloadをクリックしてcabal-install-0.6.0.tar.gzを入手。
READMEを読んでまずbootstrap.shを走らせます。依存パッケージ3つを自動でダウンロード・インストールしてくれるようです。
cabalをインストールするのにcabalが必要なところがおもしろいです。この操作、通常ユーザでできます。
% sh bootstrap.sh
走らせるとパッケージの依存関係がうまくいかないと言われました。HTTP,networkあたりがダメのようでした。
依存関係の解消:HTTP,network
そういうわけで
% apt-cache search haskell | grep network % apt-cache search haskell | grep http
で探し出します。
% sudo apt-get install libghc6-network-dev libghc6-http-dev
で入ったようです。もう一度bootstrap.shを走らせたら成功しました。~/.cabal/binにPATHを通しておきます。
% export PATH=$PATH:~/.cabal/bin
動作チェック
% pugs ______ /\ __ \ \ \ \/\ \ __ __ ______ ______ (P)erl 6 \ \ __//\ \/\ \/\ __ \/\ ___\ (U)ser's \ \ \/ \ \ \_\ \ \ \/\ \ \___ \ (G)olfing \ \__\ \ \____/\ \____ \/\_____\ (S)ystem \/__/ \/___/ \/___/\ \/____/ /\____/ Version: 6.2.13.14 \/___/ Copyright 2005-2008, The Pugs Contributors -------------------------------------------------------------------- Web: http://pugscode.org/ Email: perl6-compiler@perl.org Welcome to Pugs -- Perl6 User's Golfing System Type :h for help. Loading Prelude... done. pugs> "Hello World!".say; Hello World! pugs>
これで大丈夫そうですね。