ocaml / opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
https://opam.ocaml.org
Other
1.24k stars 354 forks source link

cud2opam(dose-dummy-request,1) upon remove #559

Closed agarwal closed 11 years ago

agarwal commented 11 years ago
$ opam remove type_conv ssl
'/home/aa144/usr/ocaml/4.00.1/bin/opam remove type_conv ssl' failed.
cud2opam(dose-dummy-request,1)
Backtrace:
  Called from file "src_ext/cmdliner/src/cmdliner.ml", line 1178, characters 6-34

I don't have much more information. I was doing an opam upgrade, lots of packages failed to get reinstalled with various errors such as:

==== ERROR [while upgrading to bin_prot.109.15.00] ====
...
ocamlfind: Conflict with another package: Library dllbin_prot_stubs.so is already installed
E: Failure("Command ''/home/aa144/.opam/4.00.1/bin/ocamlfind' install bin_prot lib/META _build/syntax/pa_bin_prot.cmx _build/syntax/pa_bin_prot.cmi _build/syntax/pa_bin_prot.cmxs _build/syntax/pa_bin_prot.a _build/syntax/pa_bin_prot.cmxa _build/syntax/pa_bin_prot.cma syntax/pa_bin_prot.mli _build/lib/bin_prot.cmxs _build/lib/bin_prot.a _build/lib/bin_prot.cmxa _build/lib/bin_prot.cma _build/lib/bi...[truncated]
=== ERROR [while recompiling ounit.1.1.2] ====
...
ocamlfind: Package oUnit is already installed
 - (file /home/aa144/.opam/4.00.1/lib/pa_pipebang/META already exists)
E: Failure("Command ''/home/aa144/.opam/4.00.1/bin/ocamlfind' install pa_pipebang lib/META _build/lib/pa_pipebang.cmx _build/lib/pa_pipebang.cmi _build/lib/pa_pipebang.cmxs _build/lib/pa_pipebang.a _build/lib/pa_pipebang.cmxa _build/lib/pa_pipebang.cma lib/pa_pipebang.ml' terminated with error code 2")
==== ERROR [while recompiling ssl.0.4.6] ====
...
make[1]: Entering directory `/home/aa144/.opam/4.00.1/build/ssl.0.4.6/src'
/home/aa144/.opam/4.00.1/bin/ocamlfind install  ssl META ssl.mli ssl_threads.mli ssl.cmi ssl_threads.cmi ssl.cma ssl_threads.cma ssl.cmxa ssl_threads.cmxa ssl.cmx ssl_threads.cmx libssl_stubs.a libssl_threads_stubs.a ssl.a ssl_threads.a dllssl_stubs.so dllssl_threads_stubs.so
make[1]: Leaving directory `/home/aa144/.opam/4.00.1/build/ssl.0.4.6/src'
### stderr ###
ocamlfind: Conflict with another package: Library dllssl_threads_stubs.so is already installed

To get around the issue, I thought I'd manually remove ssl, but I got:

$ opam remove ssl  
The package type_conv.109.15.00 is in conflict with type_conv.108.00.02.
'/home/aa144/usr/ocaml/4.00.1/bin/opam remove ssl' failed.

So then I thought I'd remove type_conv at the same time, and that gave me the error stated at the top of this issue.

agarwal commented 11 years ago

More information:

$ opam info type_conv  
             package: type_conv
             version: 109.15.00
             depends: ocamlfind
   installed-version: type_conv.109.15.00 [4.00.1]
  available-versions: 108.00.02, 108.07.00, 108.07.01, 108.08.00, 109.07.00, 109.08.00, 109.09.00, 109.10.00, 109.11.00, 109.12.00, 109.13.00, 109.14.00
         description: Library for building type-driven syntax extensions
...

I then did:

$ opam install type_conv
Adding type_conv.109.15.00 to the list of installed roots.

and now everything seems to be working fine.

samoht commented 11 years ago

Any pinned package in there ? I've changed opam info to display pinned packages (see 83ce3bdb612a69b8adbaa9b9c81979810aacf795) but from your report I cannot tell.

agarwal commented 11 years ago

Yes, I had several packages pinned to local directories. I can't remember, but maybe also I had core pinned to a specific version.

samoht commented 11 years ago

Right, I suspect this is then fixed by 23c3455cc2b8f6807bc09df08eb94cdf8e42cd8d (please reopen otherwise)