Как установить пакет в локальном магазине?

Я работаю с conan 0.16.0 и не могу понять, как установить пакет в локальном магазине. Моя идея состоит в том, чтобы создать рецепт, создать каждый пакет, который я хочу из рецепта, установить их в локальном магазине, а затем загрузить их на сервер Conan, чтобы сделать их доступными для другого разработчика без необходимости перекомпилировать пакет, поскольку они уже доступны .

Что я на самом деле делаю:

  • Создайте рецепт (conanfile.py с моим методом сборки и экспорта)
  • Я устанавливаю его в местном магазине с помощью conan export user/channel
  • Я проверяю, могу ли я построить, выполнив conan build
  • Я создаю пакет с mkdir mypackage, cd mypackage и conan package ..
  • И затем я не знаю, как установить этот пакет в локальном магазине (после этого я хотел бы загрузить рецепт и пакеты из локального магазина на сервер)

Единственный способ, которым я нашел свой пакет в местном магазине, - это иметь другой рецепт, который требует предыдущего рецепта, а затем сделать conan install --build. Пакет с моим первым рецептом будет собран и будет присутствовать в моем местном магазине, но этот способ вынуждает меня создавать «фальшивые» требования для достижения моей цели.

Есть ли способ собрать свои пакеты с нужными мне настройками, а затем напрямую установить их в локальном магазине?


person dkg    schedule 05.12.2016    source источник


Ответы (1)


Из conan docs у вас есть к conan install, чтобы создать пакет. Команда conan build используется только для сборки вашего локального проекта, а не для сборки экспортированного пакета.

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

Если вы проверите conan package в документации или справке командной строки, она покажет вам, что это команда только для отладки и может использоваться в редких случаях. Вы прекрасно можете без него работать.

person drodri    schedule 05.12.2016
comment
Другими словами, чтобы создать двоичный пакет для конкретной цели, я должен использовать рецепт пакета либо путем создания другого рецепта пакета, для которого требуется мой двоичный пакет, либо путем использования пакета через test_package. Но я не могу напрямую выполнить сборку и установку. test_package безопаснее, потому что таким образом я могу обеспечить правильную сборку моих библиотек. Работает для меня :) - person dkg; 06.12.2016
comment
Да, вы также можете сделать conan install Pkg/0.1@user/channel --build -g txt, который также создаст пакет и сгенерирует текстовый файл с информацией о пакете, включая каталоги, имена библиотек. Вы также можете использовать -g cmake для создания файла cmake для включения в ваш проект. Но этот подход является ручным и подвержен ошибкам. Я думаю, что гораздо лучше убедиться, что пакет работает, связавшись из другого проекта, а использование conanfile или функциональности test_package намного удобнее и понятнее. - person drodri; 07.12.2016