# Revert Package update?

**URL:** <https://discourse.julialang.org/t/revert-package-update/16688>\
**Category:** General Usage\
**Tags:** question, package, package-manager\
**Created:** [October 23, 2018, 3:26pm UTC](https://discourse.julialang.org/t/revert-package-update/16688 "2018-10-23T15:26:14Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![AndiMD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andimd/32/6531_2.png) [@AndiMD](https://discourse.julialang.org/u/AndiMD)\
**Post date:** [October 23, 2018, 3:26pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/1 "2018-10-23T15:26:14Z")

</div>

Hi,

what is the proper procedure to revert the command

```julia
] up

```

It has happened frequently that updates broke my programs.  
Pinning Package versions does not seem to work either, and its hard to figure out why this is blocked.

Thanks for any help.  
Best,  
AndiMD

```julia
(v1.0) pkg> add GR@v0.34.1
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package GR [28b8d3ca]:
 GR [28b8d3ca] log:
 ├─possible versions are: [0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.8.0, 0.9.0-0.9.17, 0.10.0, 0.11.0, 0.12.0, 0.13.0, 0.14.0, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.19.0, 0.20.0, 0.21.0, 0.22.0, 0.23.0, 0.24.0, 0.25.0, 0.26.0, 0.28.0, 0.29.0, 0.30.0, 0.31.0, 0.32.0-0.32.3, 0.33.1, 0.34.0-0.34.1, 0.35.0] or uninstalled                                                                                               
 ├─restricted to versions 0.34.1 by an explicit requirement, leaving only versions 0.34.1
 └─restricted by julia compatibility requirements to versions: 0.35.0 or uninstalled — no versions left

```

---

<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:** [October 23, 2018, 3:27pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/2 "2018-10-23T15:27:06Z")

</div>

If you use git and commit your manifest file then you have full history. That’s the only undo mechanism at this point.

---

<div class="post-metadata">

**Author:** ![AndiMD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andimd/32/6531_2.png) [@AndiMD](https://discourse.julialang.org/u/AndiMD)\
**Post date:** [October 23, 2018, 4:08pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/3 "2018-10-23T16:08:51Z")

</div>

Thanks for the quick response.  
I guess, I will just do a backup of the .julia folder before my next update. Not too much of a hassle.

---

<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:** [October 23, 2018, 4:10pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/4 "2018-10-23T16:10:58Z")

</div>

You don’t need to back up all of `~/.julia`, just a single manifest file. If you make the environments in `~/.julia/environments/v1.0` into git repos it works very well.

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [October 23, 2018, 4:12pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/5 "2018-10-23T16:12:53Z")

</div>

If I only copy the manifest and project environment files to a fresh `.julia` directory, is that enough for the package manager to automatically download all packages, or do the packages directories need to copy also?

---

<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:** [October 23, 2018, 4:14pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/6 "2018-10-23T16:14:08Z")

</div>

```julia
pkg> instantiate

```

Will install everything for you.

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [October 23, 2018, 4:15pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/7 "2018-10-23T16:15:05Z")

</div>

Is it enough to only copy/git the manifest or only the project toml? or are both needed.

---

<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:** [October 23, 2018, 4:15pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/8 "2018-10-23T16:15:54Z")

</div>

Best to copy both. But the manifest is enough to install things. Loading is a different story.

---

<div class="post-metadata">

**Author:** ![AndiMD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andimd/32/6531_2.png) [@AndiMD](https://discourse.julialang.org/u/AndiMD)\
**Post date:** [October 23, 2018, 4:32pm UTC](https://discourse.julialang.org/t/revert-package-update/16688/10 "2018-10-23T16:32:20Z")

</div>

Thanks, that’s pretty flexible.
