Связывание локального гема (который я разрабатываю), по-видимому, не включает каталог lib (с использованием rvm) - PullRequest
0 голосов
/ 12 октября 2011

Я пытаюсь разработать gem локально и установил его с Bundler.

Мой Gemfile выглядит так:

source "http://rubygems.org"
gemspec

А моя gemspec - это стандартный файл gemspec.

Я могу установить gem с помощью 'bundle install' в каталоге, и я вижу локальный гем и все его установки:

bundle install
Using rack (1.3.4) 
Using tilt (1.3.3) 
Using sinatra (1.3.1)  
Using {my gem} (0.0.2) from source at . 
Using bundler (1.0.21) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

Однако, когда я делаю 'список гемов', мой драгоценный камень не включен в список драгоценных камней - это мое предположение относительно того, почему мой каталог bin не отображается в пути.Есть ли способ проверить локальный драгоценный камень и включить его в список установленных драгоценных камней, используя bundler, чтобы каталог bin работал правильно?

Ответы [ 3 ]

1 голос
/ 22 февраля 2012

Самый простой способ избавиться от bundler: command not found: {your bin executable}:

git add bin/*  # git-ls-files will now list your bin executables.
bundle install 
# No git-commit necessary.
bundle exec <MY_BIN_EXECUTABLE>
0 голосов
/ 02 декабря 2011

У меня тоже была эта проблема.

Убедитесь, что строки исполняемого файла и default_executable не содержат 'bin /'. Тогда:

git add add . # You can be more precice if you want.
git commit -m "My lousy commit message."
bundle install
bundle exec <binaryname>
0 голосов
/ 12 октября 2011

gem list показывает установленные в вашей системе драгоценные камни, а не драгоценные камни в вашем Пакете (это часто то же самое, но не всегда - как в этом случае).Когда вы используете Bundler, вы всегда должны выполнять исполняемые файлы gem с bundle exec, чтобы Bundler мог настроить среду для вас.Так что, если у вас есть бинарный файл, например, mygem, вы должны использовать bundle exec mygem.

См. Дополнительную информацию на сайте Bundler или на странице man .

[Редактировать]

Также убедитесь, что ваш gemspec содержит каталог bin !Общепринятым условием является создание каталога с именем bin на том же уровне, что и ваш каталог lib, размещение ваших двоичных файлов и добавление его в качестве каталога в вашей gemspec.Если вы этого не сделаете, Bundler не будет раскрывать ваши двоичные файлы!

...