# When is it necessary to explicitly build a package?

**URL:** <https://discourse.julialang.org/t/when-is-it-necessary-to-explicitly-build-a-package/38627>\
**Category:** New to Julia\
**Created:** [May 2, 2020, 10:23pm UTC](https://discourse.julialang.org/t/when-is-it-necessary-to-explicitly-build-a-package/38627 "2020-05-02T22:23:01Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![jaynick](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@jaynick](https://discourse.julialang.org/u/jaynick)\
**Post date:** [May 2, 2020, 10:23pm UTC](https://discourse.julialang.org/t/when-is-it-necessary-to-explicitly-build-a-package/38627/1 "2020-05-02T22:23:01Z")

</div>

The subject says it -

usually Pkg.add(“X”) and using X is enough.

When/why would we want to call Pkg.build?

---

<div class="post-metadata">

**Author:** ![orialb](https://avatars.discourse-cdn.com/v4/letter/o/65b543/32.png) [@orialb](https://discourse.julialang.org/u/orialb)\
**Post date:** [May 2, 2020, 11:49pm UTC](https://discourse.julialang.org/t/when-is-it-necessary-to-explicitly-build-a-package/38627/2 "2020-05-02T23:49:45Z")

</div>

As far as I understand the build step is being run automatically for you when you add the package. You usually don’t have to think about it. I guess the build step is usually related to external (non-Julia) dependencies that some packages need.  
Sometimes you will want to re-run the build step in order to point a package to a dependency in a different location than the one with which it was originally installed (e.g. python installation for PyCall / PyPlot ).  
In some cases (which are quite rare for me) the package manager will complain when you try to add some package A due to some problem with installed package B and it will tell you to try to build package B again.
