# Pkg add - action at a distance

**URL:** <https://discourse.julialang.org/t/pkg-add-action-at-a-distance/57886>\
**Category:** General Usage\
**Created:** [March 24, 2021, 6:08pm UTC](https://discourse.julialang.org/t/pkg-add-action-at-a-distance/57886 "2021-03-24T18:08:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [March 24, 2021, 6:08pm UTC](https://discourse.julialang.org/t/pkg-add-action-at-a-distance/57886/1 "2021-03-24T18:08:14Z")

</div>

I did:

```julia
(@v1.6) pkg> add BPFnative
[..]
  [856f044c] ↓ MKL_jll v2021.1.1+1 ⇒ v2020.2.254+0
  [da04e1cc] ↑ MPI v0.16.1 ⇒ v0.17.1

```

and even with it, I think, installed before to the same version, I got lots of upgrades for other packages, and one downgrade. At least the latter seems bad, and it’s even a totally unrelated package.

Usually doing something like:

```julia
(@v1.6) pkg> add MKL_jll@v2021.1.1+1
ERROR: ArgumentError: invalid version range: "v2021.1.1+1"
Stacktrace:
  [1] Pkg.Types.VersionRange(s::String)
[..]

```

would have fixed the downgrade, but it doesn’t like the “+1”, even though it’s a valid Julia version number. Is that a bug in Julia?

How would you fix this?

```julia
(@v1.6) pkg> add MKL_jll@v2021.1.1
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package LazyArtifacts [4af54fe1]:
 LazyArtifacts [4af54fe1] log:
 ├─possible versions are: 1.3.0 or uninstalled
 ├─restricted by compatibility requirements with MKL_jll [856f044c] to versions: 1.3.0
 │ └─MKL_jll [856f044c] log:
 │ ├─possible versions are: 2019.0.117-2021.1.1 or uninstalled
 │ └─restricted to versions 2021.1.1 by an explicit requirement, leaving only versions 2021.1.1
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

[https://github.com/JuliaBinaryWrappers/MKL\_jll.jl/blame/19da215d915da456e2ac4995c5d3f077f040ebdb/Project.toml#L3](https://github.com/JuliaBinaryWrappers/MKL_jll.jl/blame/19da215d915da456e2ac4995c5d3f077f040ebdb/Project.toml#L3)

```julia
(@v1.6) pkg> add BPFnative
   Updating registry at `~/.julia/registries/General`
######################################################################## 100,0%
  Resolving package versions...
  Installed Nettle_jll ─────────────────── v3.5.1+0
  Installed GLFW_jll ───────────────────── v3.3.3+0
  Installed Nettle ─────────────────────── v0.5.1
  Installed LibCURL ────────────────────── v0.6.3
  Installed DocStringExtensions ────────── v0.8.4
  Installed StructTypes ────────────────── v1.5.0
  Installed ArrayInterface ─────────────── v3.1.6
  Installed MPI ────────────────────────── v0.17.1
  Installed IntervalSets ───────────────── v0.5.3
  Installed Downloads ──────────────────── v1.4.0
  Installed FuzzyCompletions ───────────── v0.4.1
  Installed CompilerSupportLibraries_jll ─ v0.4.0+1
  Installed Tables ─────────────────────── v1.4.1
  Installed ArgParse ───────────────────── v1.1.2
  Installed FileIO ─────────────────────── v1.6.5
  Installed Latexify ───────────────────── v0.14.11
  Installed Static ─────────────────────── v0.2.4
  Installed Qt_jll ─────────────────────── v5.15.2+2
  Installed FilePaths ──────────────────── v0.8.2
  Installed StatsBase ──────────────────── v0.33.4
  Installed ColorTypes ─────────────────── v0.10.12
Downloading artifact: GLFW
Downloading artifact: Nettle
Downloading artifact: CompilerSupportLibraries
Downloading artifact: Qt
Updating `~/.julia/environments/v1.6/Project.toml`
  [b6338580] ~ BPFnative v0.1.0 `https://github.com/jpsamaroo/BPFnative.jl.git#master` ⇒ v0.1.0
  [3f19e933] + p7zip_jll v16.2.1+1
Updating `~/.julia/environments/v1.6/Manifest.toml`
  [c7e460c6] ↑ ArgParse v1.1.1 ⇒ v1.1.2
  [0dad84c5] + ArgTools v1.1.1
  [4fba245c] ↑ ArrayInterface v3.1.5 ⇒ v3.1.6
  [b6338580] ~ BPFnative v0.1.0 `https://github.com/jpsamaroo/BPFnative.jl.git#master` ⇒ v0.1.0
  [3da002f7] ↑ ColorTypes v0.10.10 ⇒ v0.10.12
  [e66e0078] + CompilerSupportLibraries_jll v0.4.0+1
  [ffbed154] ↑ DocStringExtensions v0.8.3 ⇒ v0.8.4
  [f43a241f] + Downloads v1.4.0
  [5789e2e9] ↑ FileIO v1.6.2 ⇒ v1.6.5
  [8fc22ac5] ↑ FilePaths v0.8.1 ⇒ v0.8.2
  [fb4132e2] ↑ FuzzyCompletions v0.4.0 ⇒ v0.4.1
  [0656b61e] ↑ GLFW_jll v3.3.2+1 ⇒ v3.3.3+0
  [781609d7] + GMP_jll v6.2.0+7
  [8197267c] ↑ IntervalSets v0.5.2 ⇒ v0.5.3
  [23fbe1c1] ↑ Latexify v0.14.10 ⇒ v0.14.11
  [4af54fe1] - LazyArtifacts
  [b27032c2] + LibCURL v0.6.3
  [deac9b47] + LibCURL_jll v7.73.0+4
  [29816b5a] + LibSSH2_jll v1.9.1+2
  [856f044c] ↓ MKL_jll v2021.1.1+1 ⇒ v2020.2.254+0
  [da04e1cc] ↑ MPI v0.16.1 ⇒ v0.17.1
  [c8ffd9c3] + MbedTLS_jll v2.24.0+2
  [14a3606d] + MozillaCACerts_jll v2020.10.14+0
  [49dea1ee] ↑ Nettle v0.5.0 ⇒ v0.5.1
  [4c82536e] ↑ Nettle_jll v3.4.1+2 ⇒ v3.5.1+0
  [ca575930] + NetworkOptions v1.2.0
  [4536629a] + OpenBLAS_jll v0.3.12+1
  [ede63266] ↑ Qt_jll v5.15.2+1 ⇒ v5.15.2+2
  [aedffcd0] ↑ Static v0.2.3 ⇒ v0.2.4
  [2913bbd2] ↑ StatsBase v0.33.3 ⇒ v0.33.4
  [856f2bd8] ↑ StructTypes v1.4.0 ⇒ v1.5.0
  [bd369af6] ↑ Tables v1.4.0 ⇒ v1.4.1
  [a4e569a6] + Tar v1.9.0
  [83775a58] + Zlib_jll v1.2.12+1
  [8e850ede] + nghttp2_jll v1.41.0+1
  [3f19e933] + p7zip_jll v16.2.1+1
   Building MPI → `~/.julia/packages/MPI/3q18R/deps/build.log`

```

---

<div class="post-metadata">

**Author:** ![00vareladavid](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/00vareladavid/32/23521_2.png) [@00vareladavid](https://discourse.julialang.org/u/00vareladavid)\
**Post date:** [March 24, 2021, 8:48pm UTC](https://discourse.julialang.org/t/pkg-add-action-at-a-distance/57886/2 "2021-03-24T20:48:17Z")

</div>

The stacktrace from the resolver tells you that `MKL_jll@v2021.1.1` depends on `LazyArtifacts` but `LazyArtifacts` has not declared compatibility with Julia version 1.6.0. I would just stick with 1.5 in the meantime.

By the way, you can use `pkg> add --preserve=all Foo` if you want to avoid changes to your existing dependency graph ([12. API Reference · Pkg.jl](https://pkgdocs.julialang.org/v1.5/api/#Pkg.add)). Or you can use the `compat` section ([6. Compatibility · Pkg.jl](https://pkgdocs.julialang.org/v1.5/compatibility/)) or `pin` to prevent changes to specific packages.
