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

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

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


person andrew    schedule 04.08.2016    source источник


Ответы (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 вы должны указать все зависимости фактического пакета, но этому пакету не нужно ничего устанавливать. Технически это будет метапакет.

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

person darthbith    schedule 05.08.2016