

opamでいろいろパッケージをインストールしていたのですが、パッケージのインストールは成功したものの、その後opamが Stack overflow
を返すようになってしまいました。何か解決方法はありますでしょうか。

[code]

    $ opam update
    
    =-=- Updating package repositories =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    [default] synchronized from https://opam.ocaml.org
    Fatal error:
    Stack overflow
    Backtrace:
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "pervasives.ml", line 214, characters 22-31
      Called from file "solver/opamSolver.ml", line 330, characters 8-44
      Called from file "client/opamClient.ml", line 805, characters 6-356
      Called from file "client/opamClient.ml", line 1211, characters 12-34
      Called from file "core/opamFilename.ml", line 324, characters 12-15
    
[/code]

新たなパッケージのインストールを使用としても同様のエラーがでます。opam switchはできます。

環境は以下のとおりです。

  * opam 1.2.2
  * OCaml 4.02.3
  * Ubuntu 12.04


CC BY-SA 3.0
2016-12-02T01:59:55.847
30823
2016-12-04T11:12:21.313
16929
question
ocaml
opamがstack overflowを吐くようになってしまいました。


私はこういう状況におちいったことがないのですが、`opam
update`するとその後にupgradeできるかチェックするフェーズがあります。そこでopam内部にあるバージョン条件を解く制限ソルバがスタックを消費して死んでいる状態ですね。

例えば、外部のソルバを使ってはどうでしょうか: 詳しい方法は <http://cudf-solvers.irill.org/index.html>
にあります。

<https://github.com/ocaml/opam/issues/2544>
によるとそういう状況は知られているようで、そこでも外部ソルバを使うように勧められています。


CC BY-SA 3.0
2016-12-04T11:12:21.313
30885
2016-12-04T11:12:21.313
898
30823
answer