# How to use packages in \`dev\` rather than \`packages\`?

**URL:** <https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265>\
**Category:** General Usage\
**Tags:** question, package\
**Created:** [August 29, 2018, 8:12pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265 "2018-08-29T20:12:35Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![jwu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jwu/32/3775_2.png) [@jwu](https://discourse.julialang.org/u/jwu)\
**Post date:** [August 29, 2018, 8:12pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/1 "2018-08-29T20:12:35Z")

</div>

In Julia 0.7, I have installed package in `dev` and `package`, but Julia is using the package in `packages` rather than `dev`!

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [August 29, 2018, 8:15pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/2 "2018-08-29T20:15:53Z")

</div>

`dev` is a folder like anyone else on your computer and putting things there is not installing it. You have to tell Pkg that it should use that version, for example

```julia
pkg> dev ~/.julia/dev/PackageName

```

But again, since `dev` is a just another folder you can keep your package wherever you want, and then just

```julia
pkg> dev path/to/PackageName

```

---

<div class="post-metadata">

**Author:** ![jwu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jwu/32/3775_2.png) [@jwu](https://discourse.julialang.org/u/jwu)\
**Post date:** [August 29, 2018, 8:17pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/3 "2018-08-29T20:17:01Z")

</div>

thanks, this helps.

---

<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:** [August 29, 2018, 8:18pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/4 "2018-08-29T20:18:31Z")

</div>

If you want to use a package already in your `dev` path then it is sufficient to just do `dev PackageName` without the path.

My typical workflow is to have a symlink to `dev` in my `home`, then if I want to work on something I just do `dev PackageName`. Note that you should call `dev PackageName` again every time you change something that the package manager cares about e.g. dependencies (you don’t have to do this for most things, just stuff that’s relevant to the package manager).

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [August 29, 2018, 9:17pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/5 "2018-08-29T21:17:49Z")

</div>

I have two questions to add on to this thread that I think are relevant.

Do I have to do `dev` each time I start up? It seems not, once I do `dev` Julia stays there when I do `using`.

How do I switch back to the publicly released version when I want to?

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [August 29, 2018, 9:38pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/6 "2018-08-29T21:38:27Z")

</div>

> [@pdeffebach](#):
>
> Do I have to do `dev` each time I start up?

No, the path that you `dev`ed is stored in `Manifest.toml`, so as long as you don’t remove that one you are fine.

> [@pdeffebach](#):
>
> How do I switch back to the publicly released version when I want to?

`pkg> free PakageName`

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [August 29, 2018, 9:55pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/7 "2018-08-29T21:55:21Z")

</div>

Ah thanks a ton. I was a bit confused about what `free` did.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [August 29, 2018, 9:56pm UTC](https://discourse.julialang.org/t/how-to-use-packages-in-dev-rather-than-packages/14265/8 "2018-08-29T21:56:16Z")

</div>

> [@pdeffebach](#):
>
> Ah thanks a ton. I was a bit confused about what `free` did.

Did you read the docs?😛

```julia
  free: undoes a pin, develop, or stops tracking a repo.

```
