# Faster setup for a new machine?

**URL:** <https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253>\
**Category:** General Usage\
**Created:** [April 20, 2025, 9:19pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253 "2025-04-20T21:19:24Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Satvik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/satvik/32/20486_2.png) [@Satvik](https://discourse.julialang.org/u/Satvik)\
**Post date:** [April 20, 2025, 9:19pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253/1 "2025-04-20T21:19:24Z")

</div>

At my work, we develop and run code on AWS ec2 machines, and often spin new ones with the same environment. We have both a big Python and Julia environment, but the Julia portion of the setup `Pkg.instantiate()` is by far the slowest step, taking 30+ minutes to download all the artifacts and precompile all our (many) dependencies.

Given that I have pretty much the exact same environment in several machines, is there a way to speed this up? E.g. by transferring the precompiled files and artifacts to some location before running `instantiate`?

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [April 20, 2025, 9:31pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253/2 "2025-04-20T21:31:41Z")

</div>

Have you considered PackageCompiler.jl ?

---

<div class="post-metadata">

**Author:** ![Satvik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/satvik/32/20486_2.png) [@Satvik](https://discourse.julialang.org/u/Satvik)\
**Post date:** [April 20, 2025, 9:39pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253/3 "2025-04-20T21:39:21Z")

</div>

I’ve used it to create sysimages before, but my understanding is that the environments in those are frozen. And when I spin up a new machine, I want to be able to add and update packages, just using the common environment as a baseline.

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [April 20, 2025, 9:49pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253/4 "2025-04-20T21:49:51Z")

</div>

Yeah, PackageCompiler.jl is not flexible in that way. I have seen [chached file relocation](https://hackmd.io/@Je8OcLYBQr2ociLAtslIug/BJvv7G9pa) but did not try it. Hopefully this helps or others have better options.

---

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [April 20, 2025, 10:26pm UTC](https://discourse.julialang.org/t/faster-setup-for-a-new-machine/128253/5 "2025-04-20T22:26:59Z")

</div>

[untested] just zip/unzip an instantiated `.julia` folder??
