Как распространять лицензионные пакеты с conda

Conda отлично подходит для распространения двоичных файлов с открытым исходным кодом. Однако для некоторых программ в моей отрасли пользователям необходимо согласиться на получение лицензий или отправить свою электронную почту в веб-форму, прежде чем получить доступ. Я хотел бы, чтобы все использовали conda, есть ли способ для разработчиков по-прежнему использовать conda для распространения такого пакета? Решение, которое так просто, как conda install ... должно быть возможно.

Наилучшее решение, которое я до сих пор предлагал, - это загрузить пакет tar.bz2, на который пользователь согласился с лицензией, и затем запустить его. conda install package.tar.bz2, К сожалению, это не устанавливает общедоступные зависимости (скажем, с anaconda.org). Другая альтернатива - пользователи загружают пакет и помещают его в папку conda_bld, но это несколько ручное руководство и требует знаний пользователя об их установке.

1 ответ

Самый простой способ, вероятно, состоит в том, чтобы сделать два пакета, один с реальным пакетом, а другой, который устанавливает все зависимости. Причина в том, что, согласно официальным документам, conda install ./pkg-0.0.0-py27_0.tar.bz2 подразумевает --force, который не устанавливает никаких зависимостей. Таким образом, вместо этого ваши пользователи могут сделать

conda install -c your-channel pkg-deps
conda install ./pkg-0.0.0-py27_00.tar.bz2

В упаковке pkg-depsВы должны перечислить все зависимости фактического пакета, но этот пакет не должен ничего устанавливать. Технически это будет метапакет.

Фактический файл пакета может быть расположен в любом каталоге, когда пользователь загружает его, насколько я знаю, и предоставляется в командной строке. Пользователь не должен помещать пакет в определенный каталог.

Другие вопросы по тегам