admin-multi-user-install.rstβ’5.13 kB
=============================================
Administering a multi-user conda installation
=============================================
By default, conda and all of the packages it installs are installed locally with a
user-specific configuration. Administrative privileges are not required, and
no upstream files or other users are affected by the installation.
You can make conda and any number of packages available to a
group of one or more users, while preventing these users
from installing unwanted packages with conda:
#. Install conda and the allowed packages, if any, in a
location that is under administrator control and
accessible to users.
#. Create a
:doc:`.condarc system configuration file <use-condarc>` in
the root directory of the installation. This system-level
configuration file will override any user-level configuration
files installed by the user.
Each user accesses the central conda installation, which reads
settings from the user ``.condarc`` configuration file located
in their home directory. The path to the user file is the same
as the root environment prefix displayed by ``conda info``,
as shown in :ref:`admin-inst-user` below. The user
``.condarc`` file is limited by the system ``.condarc`` file.
System configuration settings are commonly used in a
system ``.condarc`` file but may also be used in a
user ``.condarc`` file. All user configuration settings may
also be used in a system ``.condarc`` file.
For information about settings in the ``.condarc`` file,
see :doc:`use-condarc`.
.. _admin-inst:
Example administrator-controlled installation
=============================================
The following example describes how to view the system
configuration file, review the settings, compare it to a user's
configuration file, and determine what happens when the user
attempts to access a file from a blocked channel. It then
describes how the user must modify their configuration file to
access the channels allowed by the administrator.
System configuration file
-------------------------
#. The system configuration file must be in the top-level conda
installation directory. Check the path where ``conda`` is located, e.g.
in a miniconda installation
.. code-block:: bash
$ which conda
/tmp/miniconda/bin/conda
#. View the contents of the ``.condarc`` file in the
administrator's directory:
.. code-block:: bash
cat /tmp/miniconda/.condarc
The following administrative ``.condarc`` file
uses the ``#!final`` flag to specify the channels,
default channels, and channel_alias available to the user.
.. code-block:: bash
$ cat /tmp/miniconda/.condarc
channels: #!final
- admin
channel_alias: https://conda.anaconda.org/ #!final
The ``#!final`` flag is very similar to the ``!important``
rule in CSS; any parameter within the ``.condarc`` that is
trailed by the ``#!final`` cannot be overwritten by any other
``.condarc`` source. For more information on this flag, see the
`Anaconda Blog <https://www.anaconda.com/blog/conda-configuration-engine-power-users>`_
on the subject.
Because the ``#!final`` flag has been used and the channel
defaults are not explicitly specified, users are disallowed
from downloading packages from the default channels. You can
check this in the next procedure.
.. _admin-inst-user:
User configuration file
-----------------------
#. Check the location of the user's conda installation:
.. code-block:: bash
$ conda info
Current conda install:
. . .
channel URLs : https://repo.anaconda.com/pkgs/free/osx-64/
https://repo.anaconda.com/pkgs/pro/osx-64/
config file : /Users/username/.condarc
The ``conda info`` command shows that conda is using the
user's ``.condarc`` file, located at
``/Users/username/.condarc`` and that the default channels
such as ``repo.anaconda.com`` are listed as channel URLs.
#. View the contents of the administrative ``.condarc`` file in
the directory that was located in step 1:
.. code-block:: bash
$ cat ~/.condarc
channels:
- defaults
This user's ``.condarc`` file specifies only the default
channels, but the administrator config file has blocked
default channels by specifying that only ``admin`` is
allowed. If this user attempts to search for a package in the
default channels, they get a message telling them what
channels are allowed:
.. code-block:: bash
$ conda search flask
Fetching package metadata:
Error: URL 'http://repo.anaconda.com/pkgs/pro/osx-64/' not
in allowed channels.
Allowed channels are:
- https://conda.anaconda.org/admin/osx-64/
This error message tells the user to add the ``admin`` channel
to their configuration file.
#. The user must edit their local ``.condarc`` configuration file
to access the package through the admin channel:
.. code-block:: yaml
channels:
- admin
The user can now search for packages in the allowed
``admin`` channel.