# Pkg: Unsatisfiable requirements detected

**URL:** <https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269>\
**Category:** General Usage\
**Tags:** question, package\
**Created:** [March 24, 2019, 5:35am UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269 "2019-03-24T05:35:22Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![longemen3000](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/longemen3000/32/7298_2.png) [@longemen3000](https://discourse.julialang.org/u/longemen3000)\
**Post date:** [March 24, 2019, 5:35am UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/1 "2019-03-24T05:35:22Z")

</div>

I have this problem when trying to install AutoGrad.jl

```julia
(1.1) pkg>add AutoGrad
ERROR: Unsatisfiable requirements detected for package SIUnits [b9d75638]:
 SIUnits [b9d75638] log:
 ├─possible versions are: [0.0.1-0.0.6, 0.1.0] or uninstalled
 ├─restricted by compatibility requirements with Images [916415d5] to versions: [0.0.1-0.0.6, 0.1.0]
 │ └─Images [916415d5] log:
 │ ├─possible versions are: [0.2.0-0.2.50, 0.3.0-0.3.3, 0.4.0-0.4.50, 0.5.0-0.5.14, 0.6.0-0.6.1, 0.7.0, 0.8.0, 0.9.0-0.9.1, 0.10.0-0.10.1, 0.11.0-0.11.5, 0.12.0, 0.13.0, 0.14.0, 0.15.0-0.15.1, 0.16.0-0.16.1, 0.17.0-0.17.3] or uninstalled
 │ └─restricted to versions 0.17.2 by an explicit requirement, leaving only versions 0.17.2
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

How can i fix this?, i want to remove SIUnits, but it isn’t in my project, so i can’t. Im looking for a way to remove that package

EDIT: solved, use gc

---

<div class="post-metadata">

**Author:** ![srid](https://avatars.discourse-cdn.com/v4/letter/s/6de8d8/32.png) [@srid](https://discourse.julialang.org/u/srid)\
**Post date:** [March 29, 2019, 12:12pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/2 "2019-03-29T12:12:57Z")

</div>

Could you please elaborate on how you solved this using gc? I’m a newcomer to the language and have had a slew of identical error messages upon each Pkg.add(“x”) call.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 29, 2019, 12:40pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/3 "2019-03-29T12:40:06Z")

</div>

Possibly typing `] gc` ENTER, which invokes the [garbage collector](https://julialang.github.io/Pkg.jl/dev/managing-packages/#Garbage-collecting-old,-unused-packages-1).

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [March 29, 2019, 1:24pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/4 "2019-03-29T13:24:54Z")

</div>

I don’t understand why calling `gc` solves this. My understanding was that the packages deleted by `gc` were not being used anyway so conflicts with them would not cause errors. It seems like a problem to me that packages that would be deleted by `gc` can cause unsatisfiable requirements errors at all.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 29, 2019, 1:40pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/5 "2019-03-29T13:40:54Z")

</div>

Calling `pkg> gc` can’t possibly have an effect on this. Multiple incompatible versions can be installed at the same time by design. They cannot, however, be in the same manifest at the same time.

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [March 29, 2019, 1:42pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/6 "2019-03-29T13:42:50Z")

</div>

That makes sense, but could you then clarify what `gc` does to the manifest? I was under the impression that it was deleting package versions which were _omitted_ from the manifest.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [March 29, 2019, 1:45pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/7 "2019-03-29T13:45:58Z")

</div>

It deletes package versions that are no longer referred to by any manifest of all the manifests recorded in the `~/.julia/logs/manifest_usage.toml` log file.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [March 29, 2019, 1:55pm UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/8 "2019-03-29T13:55:37Z")

</div>

Updating your packages `pkg> up` can solve it. If not, do `pkg> rm -m Package` where `Package` is the problematic package. `gc` will not change anything indeed. I mean, it would be a bad garbage collector if it changed any behavior.

---

<div class="post-metadata">

**Author:** ![maxkapur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxkapur/32/21208_2.png) [@maxkapur](https://discourse.julialang.org/u/maxkapur)\
**Post date:** [February 2, 2021, 12:05am UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/9 "2021-02-02T00:05:08Z")

</div>

I am having no luck with either `pkg> gc` or `pkg> up` when encountering the same error:

```julia
(@v1.5) pkg> add JuMP
   Updating registry at `C:\Users\Max\.julia\registries\General`
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package x264_jll [1270edf5]:
 x264_jll [1270edf5] log:
 ├─x264_jll [1270edf5] has no known versions!
 └─restricted to versions * by an explicit requirement — no versions left

(@v1.5) pkg> gc
     Active manifests:
        `C:\Users\Max\.julia\environments\v1.5\Manifest.toml`
     Active artifacts:
        `C:\Users\Max\.julia\packages\Pixman_jll\U48xy\Artifacts.toml`
        `C:\Users\Max\.julia\packages\Libglvnd_jll\pJrjy\Artifacts.toml`
           ...
        `C:\Users\Max\.julia\packages\Libffi_jll\qmD6A\Artifacts.toml`
        `C:\Users\Max\.julia\packages\Xorg_xcb_util_jll\Ba3MF\Artifacts.toml`
    Deleted no artifacts, repos or packages

(@v1.5) pkg> add JuMP
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package x264_jll [1270edf5]:
 x264_jll [1270edf5] log:
 ├─x264_jll [1270edf5] has no known versions!
 └─restricted to versions * by an explicit requirement — no versions left

(@v1.5) pkg> up
   Updating registry at `C:\Users\Max\.julia\registries\General`
ERROR: Unsatisfiable requirements detected for package x264_jll [1270edf5]:
 x264_jll [1270edf5] log:
 ├─x264_jll [1270edf5] has no known versions!
 └─restricted to versions * by an explicit requirement — no versions left

```

I encountered a similar issue last week and the only solution was to delete the entire registry folder in Explorer. Then installing the new package worked, but took over an hour to recreate the registry files. Is there any better solution?

---

<div class="post-metadata">

**Author:** ![Henrique\_Becker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrique_becker/32/15443_2.png) [@Henrique\_Becker](https://discourse.julialang.org/u/Henrique_Becker)\
**Post date:** [February 2, 2021, 12:44am UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/10 "2021-02-02T00:44:57Z")

</div>

> [@maxkapur](#):
>
> Then installing the new package worked, but took over an hour to recreate the registry files.

To my knowledge, this is a Windows problem. I regularly use different Julia versions and for each one I use a clean `.julia` folder, so I often reinstall the registries and its hardly takes a full minute.

However, if you create a new project/environment by using `activate` you should be able to achieve anything you achieved by recreating the registries just by installing the packages in this new environment in the right order (for you). No need to reinstall the registries for that.

---

<div class="post-metadata">

**Author:** ![maxkapur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxkapur/32/21208_2.png) [@maxkapur](https://discourse.julialang.org/u/maxkapur)\
**Post date:** [February 2, 2021, 1:30am UTC](https://discourse.julialang.org/t/pkg-unsatisfiable-requirements-detected/22269/11 "2021-02-02T01:30:51Z")

</div>

I found an even simpler solution in simply doing `pkg> rm x264_jll`. I’m not sure what that package is supposed to do anyhow.
