Проблема с RVM и гемом, который имеет исполняемый файл - PullRequest
1 голос
/ 13 января 2011

Я недавно решил использовать RVM в Ubuntu.

Кажется, все прошло гладко ... кроме одной вещи.Я нахожусь в процессе разработки моего драгоценного камня, у которого есть скрипт, помещенный в его собственный каталог bin /, все драгоценные камни и вещи были сгенерированы Jeweler.

Файл bin / mygem содержит следующий код: -

#!/usr/bin/env ruby
begin
  require 'mygem'
rescue LoadError
  require 'rubygems'
  require 'mygem'
end
app = MyGem::Application.new
app.run

Это нормально работало в системной версии Ruby.

Теперь ... недавно я перешел на RVM, чтобы немного лучше управлять своими версиями ruby, за исключением того, что теперь мой гем не работает.

Сначала я делаю это: -

rvm 1.9.2

Затем я делаю это: -

rvm 1.9.2 gem install mygem

Что отлично устанавливается, кроме ... когда я пытаюсь запустить команду для mygem

mygem

Я просто получаю следующее исключение: -

daniel@daniel-VirtualBox:~$ mygem 
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mygem (LoadError)
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from /home/daniel/.rvm/gems/ruby-1.9.2-p136/gems/mygem-0.1.4/bin/mygem:2:in `<top (required)>'
    from /home/daniel/.rvm/gems/ruby-1.9.2-p136/bin/mygem:19:in `load'
    from /home/daniel/.rvm/gems/ruby-1.9.2-p136/bin/mygem:19:in `<main>'mygem

ПРИМЕЧАНИЕ: у меня есть аналогичная настройка RVM на MAC OSX, и мой гем работает там нормально, поэтому я думаю, что это может быть связано с Ubuntu?1025 *

Ответы [ 2 ]

1 голос
/ 13 января 2011

Использование:

rvm 1.9.2 gem install mygem

отличается от того, как я выполняю установку гемов внутри RVM.

Попробуйте:

rvm 1.9.2
gem install mygem

Вы также можете попробоватьвыполнение gem pristine mygem, которое скажет Gems удалить исполняемый файл и перекомпилировать его для текущего Ruby.

Еще одна мысль: вы ранее использовали Ruby 1.8+ и только что перешли на Ruby 1.9+?В Ruby 1.9 require действует по-разному при загрузке модулей, относящихся к вызывающему коду, скажем, в дочернем каталоге, потому что '.'был удален из пути поиска.require_relative был добавлен, чтобы дать нам такую ​​возможность.

0 голосов
/ 13 января 2011

Помогает ли export RUBYOPT=rubygems?

...