Подтвердить что ты не робот

Как я могу разместить собственный приватный репозиторий?

У меня есть несколько проектов python, которые зависят друг от друга. У меня разные версии релизов для каждого проекта, и разные проекты могут зависеть от разных версий релиза конкретного проекта. Я хотел бы создать свой собственный репозиторий conda на внутреннем сервере, где я могу продвигать выпуски этих проектов в виде пакетов conda, а другие проекты могут установить нужную версию. Это возможно? Если да, то как?

4b9b3361

Ответ 1

Вы можете использовать специальный канал conda в качестве своего частного репо. Важнейшими шагами являются использование "conda build" для создания пакета conda, затем копирование этого пакета в ваш собственный канал (каталог) и теперь запуск индекса conda в этом каталоге. Затем вы можете установить пакеты с этого канала, используя "conda install -c".

Пример, более подробно, предположим, что linux-64:

  • Создайте канал:
    mkdir -p /tmp/my-conda-channel/linux-64
  • Теперь предположим, что у вас есть проект с именем "abc" с meta.yaml и build.sh с некоторой версией X. Теперь вы его создаете:

    conda build abc

  • Это создаст файл tar.bz2 в вашем конд-сервере. Например: ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2. Скопируйте этот файл на свой канал:

    cp ~/miniconda3/conda-bld/linux-64/abc-X-py35_0.tar.bz2 /tmp/my-conda-channel/linux-64/

  • Теперь проиндексируем его:

    conda index /tmp/my-conda-channel/linux-64/

Теперь вы загрузили этот пакет на свой собственный канал. Вы можете установить его в любой из ваших окружений conda, выполнив следующие действия:

conda install -c file://tmp/my-conda-channel/ abc=X

Где, напомним, X - это версия, поэтому после размещения большего количества версий на вашем канале вы можете установить определенные версии.

Если у вас есть проект, который зависит от X-версии "abc", мы просто добавляем его в эти проекты meta.yaml. Пример:

package:
  name: some-other-project
  version: 0.1
requirements:
  build:
   - abc X
...

Как только вы создали этот канал, вероятно, неплохо добавить его в ваш .condarc файл, чтобы он автоматически искался. Например:

channels:
- file://tmp/my-conda-channel/   
- defaults