# Efficient Way of Installing Packages

**URL:** https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770
**Category:** Performance
**Tags:** package-manager
**Created:** [September 6, 2021, 5:37pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770 "2021-09-06T17:37:16Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![mo\_re](https://avatars.discourse-cdn.com/v4/letter/m/e495f1/32.png) [@mo\_re](https://discourse.julialang.org/u/mo_re)
#### Post date: [September 6, 2021, 5:37pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770/1 "2021-09-06T17:37:16Z")

</div>

Hey everyone,

while learning R I came across a forum post that was very helpful for checking and installing what packages were missing for a user. The R code went like this:

```r
packages <- c("package names"...)

# Install packages not yet installed
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
  install.packages(packages[!installed_packages])
}

# Packages loading
invisible(lapply(packages, library, character.only = TRUE))

```

Does anyone have any tips on how I could do this in julia?

Thanks in advance for any help!

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [September 6, 2021, 5:42pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770/2 "2021-09-06T17:42:50Z")

</div>

“efficient” eh? In Julia you just press `]` at REPL and type `add X1, X2...`. If you’re trying to share your environment, simply send them your `Project.toml` file (or for exact reproduction, `Manifest.toml` file) and (again, press `]` first)

```julia
pkg> activate .
pkg> instantiate

```

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [September 6, 2021, 5:45pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770/3 "2021-09-06T17:45:58Z")

</div>

Or I guess, the functional way would also work (didn’t try this):

```julia
using Pkg
packages = ["package A", "package B", ...]
Pkg.add.(packages)

```

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [September 6, 2021, 5:59pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770/4 "2021-09-06T17:59:14Z")

</div>

pretty sure Pkg.add takes a vector of string already

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [September 6, 2021, 7:10pm UTC](https://discourse.julialang.org/t/efficient-way-of-installing-packages/67770/5 "2021-09-06T19:10:24Z")

</div>

even better
