- When I create a new environment using
pkg> activate EnvName
- why the folder named EnvName with associated Manifest and Project toml files are not created right away? What do I need to do to have the folder automatically created and populated?
Iām not sure why they are not created straight away, but they will be created when you add a package to the environment (Pkg.add
or Pkg.develop
). Iām guessing because there is no information to save until a package is actually added, nothing is created.
- I am trying to understand the documentation about
--shared
switch of pkg.activate
function. From the documentation, When the option --shared is given, path will be assumed to be a directory name and searched for in the environments folders of the depots in the depot stack.
The --shared
switch looks for/creates environments in a common location, regardless of the working folder. Unless youāve changed the depot location, this will typically be at ~/.julia/enviroments
. You can change that location by modifying the depot location.
For example:
(@v1.6) pkg> activate --shared MyEnv
Activating new environment at `~/.julia/environments/MyEnv/Project.toml`
(@MyEnv) pkg>
If I didnāt use the --shared
flag, it would just make the environment in my current working folder. The @
symbol infront of the environment name indicates that itās a shared env.
- Isnāt path is always a directory name? (I am assuming all pkg environment is a dedicated folder with some setting in toml file).
When not using a shared environment, path can actually be a directory, e.g.
(MyEnv) pkg> activate MyFolder1/MyFolder2/MyEnv
Activating new environment at `~/MyFolder1/MyFolder2/MyEnv/Project.toml`
This directory can be relative to current working directory, or absolute.
Note if I try to use a path with a shared environment it fails:
(MyEnv) pkg> activate --shared MyFolder1/MyFolder2/MyEnv
ERROR: not a valid name for a shared environment: MyFolder1/MyFolder2/MyEnv
This is why the docs say āpath will be assumed to be a directory nameā.
- What does it mean by ādepots in the depot stackā?
The depot stack can be viewed by looking at the DEPOT_PATH
variable in Julia. The depots in the depot stack are where the package manager, as well as Juliaās code loading mechanisms, look for package registries, installed packages, named environments, repo clones, cached compiled package images, configuration files, and the default location of the REPLās history file (from the docs)
For me (Mac user), DEPOT_PATH
looks like:
julia> DEPOT_PATH
3-element Vector{String}:
"/Users/username/.julia"
"/Applications/Julia-1.6.app/Contents/Resources/julia/local/share/julia"
"/Applications/Julia-1.6.app/Contents/Resources/julia/share/julia"
It can be seen that the first depot in the path is where my shared environment was created above. If I wanted the depot to be elsewhere I could modify this variable by pushing in a new folder.