bigsleepの日記

 | 

2014-11-18

自分用hackage

23:48

経緯

hackageにアカウント登録しようとしたんですが、登録フォームのところが壊れていて登録できないということがありました。

https://github.com/haskell/hackage-server/issues/275


これを読むと直ったような感じでcloseされてるんですが、自分がやってみたときは登録用のメールが届かず登録はできませんでした。


後、多分自分しか使わないものを置くのもどうかというのもあって別の方法を検討しました。



Hackageに置いてないパッケージを使う

関数プログラミング実践入門に色々方法が書いてありました。

cabal sandboxにパッケージ探索パスを足すという方法が手軽そうです。

cabal sandbox add-source hoge

ただこのコマンドを打つのも少し面倒なのと、

ローカルの決まったパスにパッケージを置いておくのも管理しにくい気がしました。



他の方法としてhackage-serverのソースは公開されているのでこれを自分で動かすという方法もありますが管理がなかなか大変そうです。



適当に別の方法を検索していて下のページを見つけました。

http://www.reddit.com/r/haskell/comments/y1tgc/any_hackage_mirrors_how_do_you_deal_with_hackage


どうもhackage-serverを立てなくてもパッケージの静的ファイルをダウンロードできるサーバーでも

cabalから使う分にはどうにかなりそうな感じのようです。

ということでこの方法を使うことにしました。


github pagesに置いてみる

やり方はよく覚えてないんですがgithubリポジトリを作って設定のところのボタンを適当に押していたら

gh-pagesというブランチができてしばらく待つとgithub.ioのところにサイトができてました。


リポジトリはこれです。

https://github.com/bigsleep/myhackage


packageのディレクトリにcabal sdistで作ったパッケージのファイルを置いて

適当なスクリプトで00-index.tar.gzのファイルが更新される感じにしました。

このファイルはcabal updateで取得されサーバーにどのパッケージがあるか調べるためのもののようです。

後は~/.cabal/configの設定ファイルにremote-repoを追加して

cabal updateとcabal installなどが使えるのは確認できました。

トラックバック - http://d.hatena.ne.jp/bigsleep/20141118/1416322101
リンク元
 | 
Connection: close