2011-07-03 8 views
14

ローカルにインストールされたすべてのパッケージのドキュメントを生成してインストールするにはどうすればよいですか?私は〜/ .cabal/configのドキュメントフラグをオンにしました。つまり、新しくインストールされたパッケージにはドキュメントも生成されます。しかし、すでにインストールされているすべてのパッケージのドキュメントを生成するには?Haskell Cabalは、インストールされているすべてのパッケージのドキュメントを再生成します。

自動的にインストールされたパッケージcabal install --reinstallはすべて自動的にインストールされますか?さらに重要なことは、それは良い考えですか?

答えて

4

、あなたが

$ cabal install --reinstall --upgrade-dependencies world 

残念ながらやってみることができ、それは私の場合には動作しませんでした:

$ cabal install --dry-run --reinstall world 
Resolving dependencies... 
cabal: cannot configure Agda-2.2.10. It requires haskell-src-exts >=1.9.6 && 
<1.10 
For the dependency on haskell-src-exts >=1.9.6 && <1.10 there are these 
packages: haskell-src-exts-1.9.6. However none of them are available. 
haskell-src-exts-1.9.6 was excluded because haskell-src-exts-1.11.1 was 
selected instead 
haskell-src-exts-1.9.6 was excluded because hlint-1.8.12 requires 
haskell-src-exts ==1.11.* 

このようなエラーが発生した場合は、~/.cabal/worldファイルを手動で編集してみてください。

+0

それはうまくいった!しかし、ほぼ完璧です。それはすべてのパッケージのすべての依存関係を取得せず、生成されたドキュメントには適切なインデックスやソースへのリンクがありませんでしたが、ローカルのドキュメントをまったく持たないことに比べて大きな進歩です。ありがとう! –

+0

はい、worldファイルには手動でインストールされたパッケージのみが表示されるため、自動的にインストールされた依存関係は再インストールされません(Hackageに新しいバージョンがない限り)。 –

+0

1.10?私は0.10を持っています... – alternative

-1

bashでこれを試すことができます。

for pkg in `ghc-pkg list --simple` 
do 
cabal install $pkg --reinstall 
done 

しかし、私は本当に良いアイディアかどうかはわかりません。あなたはcabal-install(> = 0.10、私は思う)の最近っぽいバージョンをお持ちの場合は

+6

それは試してはいけません;) – Yuras

+1

'ghc-pkg --simple --user'を使うと、ユーザがインストールしたパッケージだけを表示できます。 –

3

cabal install --only-dep --reinstalldoes not workに注意してください。

サンドボックスを使用している場合、あなたは

cabal sandbox delete 
cabal sandbox init 
cabal install -j --only-dep --enable-documentation 

を行うことができます-jオプションは、並列に構築することができます。

関連する問題