create-custom-channels.rst•2.31 kB
========================
Creating custom channels
========================
In this tutorial, we walk through how to create your own channel
that can either be accessed via the local or network file system or served
from a webserver.
To create a custom channel:
#. You will need to install conda-build to complete this tutorial. If you do not already have it,
you can install it with the following command:
.. code::
conda install conda-build
#. Organize all the packages in subdirectories for the platforms you wish to serve. Below
is an example of what this may look like:
.. code::
channel
├── linux-64
│ └── package-1.0-0.tar.bz2
├── osx-64
│ └── package-1.0-0.tar.bz2
└── win-64
└── package-1.0-0.tar.bz2
#. Run ``conda index`` on the channel root directory:
.. code::
conda index channel/
The conda index command generates a file ``repodata.json``,
saved to each repository directory, which conda uses to get
the metadata for the packages in the channel.
.. note::
Each time you add or modify a package in the channel,
you must rerun ``conda index`` for conda to see the update.
#. To test custom channels, serve the custom channel using a web
server or using a ``file://`` URL to the channel directory.
Test by sending a search command to the custom channel.
**Example**: if you want a file in the custom channel location
``/opt/channel/linux-64/``, search for files in that location:
.. code::
conda search -c file:///opt/channel/ --override-channels
.. note::
* The channel URL does not include the platform, as conda
automatically detects and adds the platform.
* The option ``--override-channels`` ensures that conda
searches only your specified channel and no other channels,
such as default channels or any other channels you may have
listed in your ``.condarc`` file.
If you have set up your private repository correctly, you
get the following output:
.. code::
Fetching package metadata: . . . .
This is followed by a list of the conda packages found. This
verifies that you have set up and indexed your private
repository successfully.