6

カバル サンドボックスを使用してElm プラットフォームを構築しようとしています。インストールは失敗しますが、「パッケージは再インストールによって破損する可能性があります」というメッセージが表示されます。これは、この種のエラーを回避するはずだったサンドボックス化の目的全体と矛盾しているように思えます。

誰かがこのエラーを説明してくれませんか? また、Elm のインストールを進めるのにもっと役立つでしょうか? 追加しても安全--force-reinstallsですか?

実行したコマンドのシーケンスは次のとおりです。

cabal sandbox init
cabal update
cabal install -j elm-compiler-0.14 elm-package-0.2 elm-make-0.1 elm-reactor-0.2 elm-repl-0.4

Mac OS 10.10 で cabal 1.22.0.0 と GHC 7.8.2 を使用しています。完全な出力は次のとおりです。

Resolving dependencies...
In order, the following would be installed:
Diff-0.3.0 (new package)
HUnit-1.2.5.2 (new package)
ansi-terminal-0.6.2.1 (new package)
ansi-wl-pprint-0.6.7.1 (new package)
async-2.0.2 (new package)
blaze-markup-0.6.2.0 (new package)
blaze-html-0.7.0.3 (new package)
byteable-0.1.1 (new package)
bytestring-mmap-0.2.2 (new package)
bytestring-trie-0.2.4 (new package)
cereal-0.4.1.1 (new package)
cmdargs-0.10.12 (new package)
concatenative-1.0.1 (new package)
cookie-0.4.1.4 (new package)
cryptohash-0.11.6 (new package)
enumerator-0.4.20 (new package)
attoparsec-enumerator-0.3.3 (new package)
blaze-builder-enumerator-0.2.0.6 (new package)
exceptions-0.6.1 (reinstall) changes: mtl-2.1.3.1 -> 2.2.1,
transformers-0.3.0.0 -> 0.4.1.0
extensible-exceptions-0.1.1.4 (new package)
hfsevents-0.1.5 (new package)
fsnotify-0.1.0.3 (new package)
hourglass-0.2.8 (new package)
asn1-types-0.3.0 (new package)
asn1-encoding-0.9.0 (new package)
asn1-parse-0.9.0 (new package)
crypto-pubkey-types-0.4.2.3 (new package)
http-types-0.8.5 (new package)
mime-types-0.1.0.5 (new package)
monads-tf-0.1.0.2 (reinstall) changes: transformers-0.3.0.0 -> 0.4.1.0
MonadCatchIO-transformers-0.3.1.3 (new package)
network-2.6.0.2 (new version)
parsec-3.1.7 (new version)
indents-0.3.3 (new package)
network-uri-2.6.0.1 (new package)
HTTP-4000.2.19 (new version)
pem-0.2.2 (new package)
prettyclass-1.0.0.0 (new package)
language-glsl-0.1.1 (new package)
publicsuffixlist-0.1 (new package)
regex-base-0.93.2 (new package)
regex-posix-0.95.2 (new package)
securemem-0.1.4 (new package)
crypto-cipher-types-0.0.9 (new package)
cipher-aes-0.2.9 (new package)
cipher-des-0.0.6 (new package)
cipher-rc4-0.1.4 (new package)
crypto-random-0.0.8 (new package)
cprng-aes-0.6.1 (new package)
crypto-numbers-0.2.7 (new package)
crypto-pubkey-0.2.7 (new package)
socks-0.5.4 (new package)
streaming-commons-0.1.8 (new package)
http-client-0.3.8.2 (latest: 0.4.6.2) (new package)
syb-0.4.4 (new package)
tagshare-0.0 (new package)
terminfo-0.4.0.0 (new package)
haskeline-0.7.1.3 (new package)
tf-random-0.5 (new package)
QuickCheck-2.7.6 (new package)
testing-feat-0.4.0.2 (new package)
transformers-compat-0.3.3.4 (new package)
optparse-applicative-0.10.0 (latest: 0.11.0.1) (new package)
union-find-0.2 (new package)
unix-compat-0.4.1.4 (new package)
unordered-containers-0.2.5.1 (new package)
aeson-0.8.0.2 +old-locale (new package)
aeson-pretty-0.7.2 (new package)
uniplate-1.6.12 (new package)
websockets-0.9.2.2 (new version)
wl-pprint-1.1 (new package)
language-ecmascript-0.16.2 (latest: 0.17) (new package)
elm-compiler-0.14 (new package)
x509-1.5.0.1 (new package)
x509-store-1.5.0 (new package)
x509-system-1.5.0 (new package)
x509-validation-1.5.1 (new package)
tls-1.2.13 (new package)
connection-0.2.3 (new package)
http-client-tls-0.2.2 (new package)
zip-archive-0.2.3.5 (new version)
elm-package-0.2 (latest: 0.2.2) (new package)
elm-make-0.1 (new package)
elm-repl-0.4 (new package)
zlib-enum-0.2.3.1 (new package)
snap-core-0.9.6.4 (new package)
snap-server-0.9.4.6 (new package)
websockets-snap-0.9.0.0 (new package)
elm-reactor-0.2 (latest: 0.2.0.1) (new package)
cabal: The following packages are likely to be broken by the reinstalls:
temporary-1.2.0.3
shellmate-0.1.6
Use --force-reinstalls if you want to install anyway.

アップデート:

要求に応じて、からの出力cabal exec ghc-pkg list temporary:

$ cabal exec ghc-pkg list temporary
/Applications/ghc-7.8.2.app/Contents/lib/ghc-7.8.2/package.conf.d
   temporary-1.2.0.3
/Users/nbartlett/Development/Elm-Platform/tmp/.cabal-sandbox/x86_64-osx-ghc-7.8.2-packages.conf.d
4

2 に答える 2

5

shellmateおよびtemporary(場合によっては他のいくつかのパッケージ -- 特にこれらの依存関係) をグローバル パッケージ データベースにインストールしました。これは、サンドボックス内からも表示されます。エラーは次のように言っています:

  1. 既にインストールされているパッケージ (既存のものを A-1 と呼ぶ) の新しいバージョン (A-2 と呼ぶ) をインストールしようとしており、かつ
  2. 依存関係の 1 つを A-1 から A-2 に更新するパッケージの既存のバージョン (B と呼びます) を再インストールしようとしています。
  3. 新しい B は古い B をシャドーし、
  4. B に依存するパッケージ (C と呼びます) があります。

このすべての結果として、C はおそらく B の再インストール後に破損することになります。これは、これが A-1 にドラッグされることを期待して B にリンクするためですが、代わりに A-2 がドラッグインされるためです。あなたの特定のケースでは、shellmateとの両方が C の役割を果たしており、それぞれについて、またはtemporaryの少なくとも 1 つがの役割を果たしています。exceptions-0.6.1monads-tf-0.1.0.2B

多くの選択肢があります。私にとって最も魅力的なものは次のとおりです。

  1. グローバル パッケージ データベースからshellmateとを削除します。temporaryこれらは利用できなくなりますが、この方法で多くの問題を防ぐことができます。

    ghc-pkg unregister --global shellmate
    ghc-pkg unregister --global temporary
    
  2. 更新された依存関係を使用してグローバル パッケージ データベースに を再インストールshellmateします。temporaryこれは機能する場合と機能しない場合があります。

    cabal install --reinstall --global shellmate-0.1.6 temporary-1.2.0.3 mtl-2.2.1 transformers-0.4.1.0
    
  3. 警告を無視して、再インストールを強制します。サンドボックス内からは使用できなくなる可能性がshellmateあります。temporary

    cabal install elm --force-reinstalls # from within the sandbox
    
  4. elm、shellmate、temporary をすべてサンドボックスにインストールします。これでも警告が表示される可能性はありますが、安全に無視できます。サンドボックス内ではサンドボックス バージョンを使用することを期待し (したがって、「壊れた」グローバル パッケージは問題になりません)、サンドボックス外ではグローバル パッケージを使用します。壊れません。

    cabal install elm temporary shellmate # possibly with --force-reinstalls
    
于 2015-01-08T22:19:29.540 に答える
1

複数のパッケージを同時にインストールしようとしているときに、同じ問題のように見えるものがありました。1 つのパッケージ A はパッケージ B に依存し、A と B は異なるバージョンのパッケージ C に依存していました (とにかく、それが状況の私のメンタル モデルです)。

パッケージを一度にすべてではなく個別にインストールすることで、特定のインストール障害が解消されました [*]。N 個のパッケージで 1 つのコマンドを使用する代わりに、一度に 1 つのパッケージで N 個のコマンドを使用しました。

[*] 問題の原因がわからないため、正確な解決方法についても確信が持てません。

于 2015-01-11T23:06:24.443 に答える