Nano Hash - криптовалюты, майнинг, программирование

Как включить файл .gem в упаковщик (не исходный код)

У меня есть приложение rails, которое зависит от библиотеки, которую я разрабатываю одновременно.

Когда я развертываю приложение, у меня нет возможности использовать опцию :git => '' в сборщике для загрузки в драгоценный камень по разным причинам. В идеале я хочу сделать следующее

Gemfile

gem 'system-api', :gem => 'vendor/system-api-1.0.0.gem'

Я хочу предварительно собрать гем и просто включить его в проект и проверить в git.

Есть ли способ сделать это с помощью упаковщика или даже без использования упаковщика?

[ОБНОВЛЕНИЕ 1]

Я попробовал «gem 'system-api', '1.0.0', :path => 'vendor/'», и упаковщик говорит, что он установлен правильно, но драгоценный камень не отображается в «списке драгоценных камней» и не проектирует рельсы есть ссылка на него. Он отображается с помощью команды 'bundle show'.


Ответы:


1

Похоже, у бандлера есть опция :path. Он будет работать относительно местоположения Gemfile проекта. Путь указывает только папку, а не фактическое имя драгоценного камня:

gem 'system-api', :path => "vendor"

Дополнительную информацию см. в документах по Gemfile.

01.02.2011
  • Я пробовал это: gem 'system-api', '0.0.3', :path =› 'vendor/', и упаковщик говорит, что он установлен правильно, но драгоценный камень не отображается в 'списке драгоценных камней', а также не проектирует рельсы есть ссылка на него. 02.02.2011

  • 2

    Это МОЖЕТ работать, если вы поместите файл X.gem в ./vendor/cache

    Если вы запустите «bundle package», то именно сюда сборщик поместит встроенные файлы .gem. Так что, если вы поместите его туда самостоятельно, найдет ли его там бандлер? Может быть. Но я не уверен в идее, чтобы некоторые драгоценные камни были упакованы в ./vendor/cache, а другие нет, не совсем уверен, поддерживает ли Bundler это, поскольку я думаю, что «пакет пакета» настаивает на том, чтобы поместить все это туда.

    http://gembundler.com/bundle_package.html http://gembundler.com/man/bundle- пакет.1.html

    Если вместо того, чтобы проверять предварительно созданный X.gem в своем репозитории, вы можете проверить ИСТОЧНИК для X gem в своем репо, а источник включает файл X.gemspec, ТОГДА вы можете использовать параметр :path. Но я думаю, как вы уже поняли, опция :path предполагает указывать на источник, а не на пакет *.gem. Вполне возможно, что если вы просто разархивируете *.gem, это приведет к созданию каталога, с которым вы сможете использовать связыватель gem :path. (Продукт *.gem - это просто zip-файл... я думаю.).

    Не окончательный ответ, но, возможно, некоторые идеи для изучения.

    28.06.2011

    3

    Я бы сказал, что это нормально gem list не показывает ваш драгоценный камень. Вы установили его через упаковщик, и вы не вызываете упаковщик при запуске gem list. Вместо этого обратитесь к bundler exec gem list.

    Кстати, при использовании Bundler вы всегда должны использовать bundler exec перед любой запускаемой командной строкой (за исключением rails server, у которой есть свой способ запуска и запуска Bundler): справочная страница пакета-exec

    14.10.2011

    4

    Я сделал следующее, что работает:

    gem 'libv8', '3.11.8.3mytest', :path => '../libv8/pkg'
    

    А папка ../libv8/pkg содержит только упакованный в двоичном виде гем libv8-3.11.8.3mytest-x86_64-linux.gem.

    Надеюсь это поможет.

    17.08.2012
    Новые материалы

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

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..