Macでcabalが使えるようにしたのでメモ
Sun Mar 24 18:59:06 JST 2013 (modified: Fri Sep 29 21:38:45 JST 2017)
views: 2151, keywords:プログラミング,Haskell,備忘録 この記事は最終更新日が7年以上前のものです。
2013/11/25追記:今は(このときもそうだったかもしれんが)この方がよい.
brew install haskell-platform $
以上.
Haskellでopen usp Tukubai のコマンドを置き換えるプロジェクトをちまちま進めています。
いつも使っているFreeBSDの環境では日本語の環境をセットアップしてあったのですが、自分のローカルのMacでもできないかと作業しましたのでメモです。
コンパイルしたいのは次のコードですが・・・
:~ ueda$ cat cat.hs
uedamacimport qualified Data.ByteString.Lazy.Char8 as BS
import Codec.Binary.UTF8.String as CBUS
import System.Environment
import System.IO
main :: IO ()
= do BS.getContents >>= putBSLines
main
--UTF-8の出力のお約束
putBSLines :: BS.ByteString -> IO ()
= putStr . CBUS.decodeString . BS.unpack putBSLines
素の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でもできないかと作業しましたのでメモです。
コンパイルしたいのは次のコードですが・・・
:~ ueda$ cat cat.hs
uedamacimport qualified Data.ByteString.Lazy.Char8 as BS
import Codec.Binary.UTF8.String as CBUS
import System.Environment
import System.IO
main :: IO ()
= do BS.getContents >>= putBSLines
main
--UTF-8の出力のお約束
putBSLines :: BS.ByteString -> IO ()
= putStr . CBUS.decodeString . BS.unpack putBSLines
素の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の所業なので、そのうちバイナリでどう配布するか考えないといけませんね・・・。