Unhelpful error message unmet availability `unmet availability conditions: 'sys-ocaml-version = "4.07.1"'`

what does this error mean and how to fix it?

❯ opam switch
opam switch create coq-8.14 4.07.1
eval $(opam env --switch=coq-8.14 --set-switch)
opam pin add -y coq 8.14
#  switch                                 compiler                    description
   4.05.0                                 ocaml-base-compiler.4.05.0  4.05.0
   4.06.0                                 ocaml-base-compiler.4.06.0  4.06.0
   4.07.0                                                             4.07.0
   4.12.0                                 ocaml-base-compiler.4.12.0  4.12.0
   __coq-platform.2022.01.0~8.14~2022.01  ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~8.14~2022.01
β†’  __coq-platform.2022.01.0~8.15~beta1    ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~8.15~beta1
   __coq-platform.2022.01.0~dev           ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~dev
   default                                ocaml-system.4.07.0         default
   hammer_switch                          ocaml-base-compiler.4.12.0  hammer_switch

<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><>  🐫
Switch invariant: ["ocaml-base-compiler" {= "4.07.1"} | "ocaml-system" {= "4.07.1"}]
[ERROR] Could not determine which packages to install for this switch:
  * Missing dependency:
    - ocaml-base-compiler = 4.07.1 | ocaml-system = 4.07.1
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions: 'sys-ocaml-version = "4.07.1"'


Switch initialisation failed: clean up? ('n' will leave the switch partially installed) [Y/n] Y
[ERROR] The selected switch coq-8.14 is not installed.
[ERROR] Package coq has no known version 8.14 in the repositories

You are trying to install OCaml 4.07 on a architecture that did not exist when 4.07 was released. Official support for macOS on M1 starts at 4.12.0 (with 4.10.2 as a special beta support version).

1 Like

I was trying to do it in docker images to avoid these issues but I these errors:

opam@633c98e4b36b:~$ opam switch
opam switch create coq-8.14 4.07.1
eval $(opam env --switch=coq-8.14 --set-switch)
opam pin add -y coq 8.14
#   switch  compiler                    description
->  4.14    ocaml-base-compiler.4.14.0  4.14
Fatal error:
opam: "mkdir" failed on /home/opam/.opam/coq-8.14: No space left on device
[ERROR] The selected switch coq-8.14 is not installed.
[ERROR] Package coq has no known version 8.14 in the repositories

Do you know how to force docker to make space?

These kind of questions are off topic for this forum, but you should probably start from https://linuxconfig.org/how-to-move-docker-s-default-var-lib-docker-to-another-directory-on-ubuntu-debian-linux

@octachron how did you know supports starts at 4.12.0?

still fails:

(meta_learning) brandomiranda~ ❯ opam switch create coq-8.6.1 4.12.0
eval $(opam env --switch=coq-8.6.1 --set-switch)
opam pin add -y coq 8.6.1

[ERROR] There already is an installed switch named coq-8.6.1
[NOTE] Pinning unchanged
coq is now pinned to version 8.6.1

[ERROR] Package conflict!
  * Missing dependency:
    - ocaml-base-compiler = 4.07.1 | ocaml-system = 4.07.1
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions: 'sys-ocaml-version = "4.07.1"'

[NOTE] Pinning command successful, but your installed packages may be out of sync.

@octachron I don’t care how it resolves it, but just want to install it e.g. didn’t work

(meta_learning) brandomiranda~ ❯ opam switch
opam switch create coq-8.6.1 4.07.1
eval $(opam env --switch=coq-8.6.1 --set-switch)
opam pin add --update-invariant -y coq 8.6.1
#  switch                                 compiler                    description
   4.05.0                                 ocaml-base-compiler.4.05.0  4.05.0
   4.06.0                                 ocaml-base-compiler.4.06.0  4.06.0
   4.07.0                                                             4.07.0
   4.12.0                                 ocaml-base-compiler.4.12.0  4.12.0
   __coq-platform.2022.01.0~8.14~2022.01  ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~8.14~2022.01
   __coq-platform.2022.01.0~8.15~beta1    ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~8.15~beta1
   __coq-platform.2022.01.0~dev           ocaml-base-compiler.4.10.2  __coq-platform.2022.01.0~dev
β†’  coq-8.6.1                                                          coq-8.6.1
   default                                ocaml-system.4.07.0         default
   hammer_switch                          ocaml-base-compiler.4.12.0  hammer_switch

[ERROR] There already is an installed switch named coq-8.6.1
[NOTE] Pinning unchanged
coq is now pinned to version 8.6.1

[ERROR] Package conflict!
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler < 3.07+1 | ocaml-system < 3.07+1 | ocaml-variants < 3.8~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions: 'sys-ocaml-version = "3.07"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.07+1 | ocaml-system = 3.07+1 | ocaml-variants < 3.8~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions: 'sys-ocaml-version = "3.07+1"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.07+2 | ocaml-system = 3.07+2 | ocaml-variants < 3.8~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions: 'sys-ocaml-version = "3.07+2"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.08.0 | ocaml-system < 3.08.1~ | ocaml-variants < 3.08.1~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.08.0"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.08.1 | ocaml-system < 3.08.2~ | ocaml-variants < 3.08.2~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.08.1"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.08.2 | ocaml-system < 3.08.3~ | ocaml-variants < 3.08.3~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.08.2"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.08.3 | ocaml-system < 3.08.4~ | ocaml-variants < 3.08.4~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.08.3"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.08.4 | ocaml-system < 3.08.5~ | ocaml-variants < 3.08.5~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.08.4"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.09.0 | ocaml-system < 3.09.1~ | ocaml-variants < 3.09.1~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.09.0"'
    no matching version
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.09.1 | ocaml-system < 3.09.2~ | ocaml-variants < 3.09.2~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.09.1"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.09.2 | ocaml-system < 3.09.3~ | ocaml-variants < 3.09.3~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.09.2"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.09.3 | ocaml-system < 3.09.4~ | ocaml-variants < 3.09.4~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.09.3"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.10.0 | ocaml-system < 3.10.1~ | ocaml-variants < 3.10.1~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.10.0"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.10.1 | ocaml-system < 3.10.2~ | ocaml-variants < 3.10.2~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.10.1"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.10.2 | ocaml-system < 3.10.3~ | ocaml-variants < 3.10.3~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.10.2"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.11.0 | ocaml-system < 3.11.1~ | ocaml-variants < 3.11.1~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.11.0"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.11.1 | ocaml-system < 3.11.2~ | ocaml-variants < 3.11.2~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.11.1"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.11.2 | ocaml-system < 3.11.3~ | ocaml-variants < 3.11.3~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.11.2"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.12.0 | ocaml-system < 3.12.1~ | ocaml-variants < 3.12.1~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.12.0"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 3.12.1 | ocaml-system < 3.12.2~ | ocaml-variants < 3.12.2~
    unmet availability conditions: 'arch != "arm64" & arch != "arm32" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "3.12.1"'
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.00.0 | ocaml-system < 4.00.1~ | ocaml-variants < 4.00.1~
    unmet availability conditions: 'arch != "arm64" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.00.0"'
    unmet availability conditions, e.g. 'false'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.00.1 | ocaml-system < 4.00.2~ | ocaml-variants < 4.00.2~
    unmet availability conditions: 'arch != "arm64" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.00.1"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.01.0 | ocaml-system < 4.01.1~ | ocaml-variants < 4.01.1~
    unmet availability conditions: 'arch != "arm64" & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.01.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.02.0 | ocaml-system < 4.02.1~ | ocaml-variants < 4.02.1~
    unmet availability conditions: '!(os = "macos" & arch = "arm64") & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.02.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.02.1 | ocaml-system < 4.02.2~ | ocaml-variants < 4.02.2~
    unmet availability conditions: '!(os = "macos" & arch = "arm64") & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.02.1"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.02.2 | ocaml-system < 4.02.3~ | ocaml-variants < 4.02.3~
    unmet availability conditions: '!(os = "macos" & arch = "arm64") & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.02.2"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.02.3 | ocaml-system < 4.02.4~ | ocaml-variants < 4.02.4~
    unmet availability conditions: '!(os = "macos" & arch = "arm64") & arch != "ppc64"'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.02.3"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.02.4 | ocaml-system < 4.02.5~ | ocaml-variants < 4.02.5~
    no matching version
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.02.3"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.03.0 | ocaml-system < 4.03.1~ | ocaml-variants < 4.03.1~
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.03.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.03.1 | ocaml-system < 4.03.2~ | ocaml-variants < 4.03.2~
    no matching version
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.03.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.04.0 | ocaml-system < 4.04.1~ | ocaml-variants < 4.04.1~
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.04.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.04.1 | ocaml-system < 4.04.2~ | ocaml-variants < 4.04.2~
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.04.1"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.04.2 | ocaml-system < 4.04.3~ | ocaml-variants < 4.04.3~
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.04.2"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.04.3 | ocaml-system < 4.04.4~ | ocaml-variants < 4.04.4~
    no matching version
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.04.2"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.05.0 | ocaml-system < 4.05.1~ | ocaml-variants < 4.05.1~
    unmet availability conditions: '!(os = "macos" & arch = "arm64")'
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.05.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'
  * Missing dependency:
    - coq β†’ ocaml < 4.06.0 β†’ ocaml-base-compiler = 4.05.1 | ocaml-system < 4.05.2~ | ocaml-variants < 4.05.2~
    no matching version
    unmet availability conditions, e.g. 'sys-ocaml-version = "4.05.0"'
    unmet availability conditions, e.g. '!(os = "macos" & arch = "arm64")'

You cannot install that version of coq on macos arm64 since coq 8.6.1 requires ocaml < 4.06.0 and the support for macos arm64 was introduced in ocaml 4.12.0 as mentioned above.

Can you try the following instead?

opam switch create coq-8.16.0 4.12.1
eval $(opam env --switch=coq-8.16.0 --set-switch)
opam pin add -y coq 8.16.0

You can replace 4.12 with any newer version.

2 Likes

worked!

Thanks

(meta_learning) brandomiranda~ ❯ opam switch create coq-8.16.0 4.12.1
eval $(opam env --switch=coq-8.16.0 --set-switch)
opam pin add -y coq 8.16.0

<><> Installing new switch packages <><><><><><><><><><><><><><><><><><><><>  🐫
Switch invariant: ["ocaml-base-compiler" {= "4.12.1"} | "ocaml-system" {= "4.12.1"}]


<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
βˆ— installed base-bigarray.base
βˆ— installed base-threads.base
βˆ— installed base-unix.base
βˆ— installed ocaml-options-vanilla.1
⬇ retrieved ocaml-base-compiler.4.12.1  (https://opam.ocaml.org/cache)
βˆ— installed ocaml-base-compiler.4.12.1
βˆ— installed ocaml-config.2
βˆ— installed ocaml.4.12.1
Done.
coq is now pinned to version 8.16.0

The following actions will be performed:
  βˆ— install dune           3.6.1   [required by coq]
  βˆ— install ocamlfind      1.9.5   [required by coq]
  βˆ— install conf-gmp       4       [required by zarith]
  βˆ— install conf-findutils 1       [required by coq]
  βˆ— install zarith         1.12    [required by coq]
  βˆ— install coq            8.16.0*
===== βˆ— 6 =====

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><>  🐫
⬇ retrieved ocamlfind.1.9.5  (cached)
⬇ retrieved zarith.1.12  (cached)
βˆ— installed conf-gmp.4
βˆ— installed conf-findutils.1
⬇ retrieved coq.8.16.0  (cached)
⬇ retrieved dune.3.6.1  (https://opam.ocaml.org/cache)
βˆ— installed ocamlfind.1.9.5
βˆ— installed zarith.1.12
βˆ— installed dune.3.6.1
βˆ— installed coq.8.16.0
Done.