Macでcabalが使えるようにしたのでメモ

Sun Mar 24 18:59:06 JST 2013 (modified: Fri Sep 29 21:38:45 JST 2017)
views: 1913, keywords:プログラミング,Haskell,備忘録 この記事は最終更新日が7年以上前のものです。

2013/11/25追記:今は(このときもそうだったかもしれんが)この方がよい.

$ brew install haskell-platform

以上.


Haskellでopen usp Tukubai のコマンドを置き換えるプロジェクトをちまちま進めています。

いつも使っているFreeBSDの環境では日本語の環境をセットアップしてあったのですが、自分のローカルのMacでもできないかと作業しましたのでメモです。

コンパイルしたいのは次のコードですが・・・

uedamac:~ ueda$ cat cat.hs
   import qualified Data.ByteString.Lazy.Char8 as BS
   import Codec.Binary.UTF8.String as CBUS
   import System.Environment
   import System.IO
   
   main :: IO ()
   main = do BS.getContents >>= putBSLines
   
   --UTF-8の出力のお約束
   putBSLines :: BS.ByteString -> IO ()
   putBSLines = putStr . CBUS.decodeString . BS.unpack

素のghcだと次のように叱られます。これが通らないと、このプロジェクトは頓挫します。どうしましょう。(ちなみに、コードを説明してと言われても、今のところ、無理。)

uedamac:~ ueda$ ghc cat.hs
   
   cat.hs:2:8:
    Could not find module `Codec.Binary.UTF8.String'
    Use -v to see a list of the files searched for.

というわけで、次のサイトを参考に、もうちょっと環境を整えました。

### brew install ghc は終わっている。
   $ brew install haskell-platform
   ==> Downloading http://lambda.haskell.org/platform/download/2012.4.0.0/haskell-p
   ######################################################################## 100.0%
   ==> ./configure --prefix=/usr/local/Cellar/haskell-platform/2012.4.0.0 --enable-
   ==> make install
   ### 注:すげー時間がかかる。
   ==> Caveats
   Run `cabal update` to initialize the package list.
   
   If you are replacing a previous version of haskell-platform, you may want
   to unregister packages belonging to the old version. You can find broken
   packages using:
    ghc-pkg check --simple-output
   You can uninstall them using:
    ghc-pkg check --simple-output | xargs -n 1 ghc-pkg unregister --force
   ==> Summary
   uedamac:~ ueda$ cabal update
   ### 注:またすげー時間がかかる。
   ### おや、夕食ができたようだ・・・。早く席につかないとシバかれる・・・
   Note: there is a new version of cabal-install available.
   To upgrade, run: cabal install cabal-install
   ### 注:おのれをインストールしろと・・・
   uedamac:~ ueda$ cabal install cabal-install
   (略)
   Linking dist/build/cabal/cabal ...
   Installing executable(s) in /Users/ueda/.cabal/bin
   ###注:やっとこさutf8-stringをインストール。背後から殺気を感じるのである。
   ### さっきから、殺気を感じるのである。
   uedamac:~ ueda$ cabal install utf8-string
   (略)
   uedamac:~ ueda$ ghc cat.hs

通りました。

uedamac:~ ueda$ echo へのへのもへじ | ./cat
   へのへのもへじ

実行もできた。よかったよかった。

しかし、コード配って人にこんな作業させるのもドSの所業なので、そのうちバイナリでどう配布するか考えないといけませんね・・・。

Haskellでopen usp Tukubai のコマンドを置き換えるプロジェクトをちまちま進めています。

いつも使っているFreeBSDの環境では日本語の環境をセットアップしてあったのですが、自分のローカルのMacでもできないかと作業しましたのでメモです。

コンパイルしたいのは次のコードですが・・・

uedamac:~ ueda$ cat cat.hs
   import qualified Data.ByteString.Lazy.Char8 as BS
   import Codec.Binary.UTF8.String as CBUS
   import System.Environment
   import System.IO
   
   main :: IO ()
   main = do BS.getContents >>= putBSLines
   
   --UTF-8の出力のお約束
   putBSLines :: BS.ByteString -> IO ()
   putBSLines = putStr . CBUS.decodeString . BS.unpack

素のghcだと次のように叱られます。これが通らないと、このプロジェクトは頓挫します。どうしましょう。(ちなみに、コードを説明してと言われても、今のところ、無理。)

uedamac:~ ueda$ ghc cat.hs
   
   cat.hs:2:8:
    Could not find module `Codec.Binary.UTF8.String'
    Use -v to see a list of the files searched for.

というわけで、次のサイトを参考に、もうちょっと環境を整えました。

### brew install ghc は終わっている。
   $ brew install haskell-platform
   ==> Downloading http://lambda.haskell.org/platform/download/2012.4.0.0/haskell-p
   ######################################################################## 100.0%
   ==> ./configure --prefix=/usr/local/Cellar/haskell-platform/2012.4.0.0 --enable-
   ==> make install
   ### 注:すげー時間がかかる。
   ==> Caveats
   Run `cabal update` to initialize the package list.
   
   If you are replacing a previous version of haskell-platform, you may want
   to unregister packages belonging to the old version. You can find broken
   packages using:
    ghc-pkg check --simple-output
   You can uninstall them using:
    ghc-pkg check --simple-output | xargs -n 1 ghc-pkg unregister --force
   ==> Summary
   uedamac:~ ueda$ cabal update
   ### 注:またすげー時間がかかる。
   ### おや、夕食ができたようだ・・・。早く席につかないとシバかれる・・・
   Note: there is a new version of cabal-install available.
   To upgrade, run: cabal install cabal-install
   ### 注:おのれをインストールしろと・・・
   uedamac:~ ueda$ cabal install cabal-install
   (略)
   Linking dist/build/cabal/cabal ...
   Installing executable(s) in /Users/ueda/.cabal/bin
   ###注:やっとこさutf8-stringをインストール。背後から殺気を感じるのである。
   ### さっきから、殺気を感じるのである。
   uedamac:~ ueda$ cabal install utf8-string
   (略)
   uedamac:~ ueda$ ghc cat.hs

通りました。

uedamac:~ ueda$ echo へのへのもへじ | ./cat
   へのへのもへじ

実行もできた。よかったよかった。

しかし、コード配って人にこんな作業させるのもドSの所業なので、そのうちバイナリでどう配布するか考えないといけませんね・・・。

ノート   このエントリーをはてなブックマークに追加 
 

prev:最初の投稿 next:議論を制御する

やり散らかし一覧

記事いろいろ