Я делаю рубиновый камень с исполняемым файлом и библиотекой классов. Исполняемый файл имеет require "fpa/chklinks"
, который является библиотекой классов в каталоге lib/fpa
.Исполняемый «require» не может найти свою собственную библиотеку
я получаю следующее сообщение об ошибке, когда я запускаю мои исполняемое имя chklinks.rb
:
$ bin/chklinks.rb -h
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- fpa/chklinks (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from bin/chklinks.rb:7:in `<main>'
Как я могу сделать это найти свою библиотеку в процессе разработки? Я пробовал require_relative "../lib/fpa/chklinks"
Спасибо за быстрый ответ. Я поместил '$ LOAD_PATH << 'lib'' в свой файл spec_helper.rb. Я все еще получаю ту же ошибку. Я должен что-то упустить. Когда я запускаю пакет, я получаю «Использование fpa-chklinks 0.1.0 from source at.». Означает ли это что-нибудь полезное? – ajnabi
Кроме того, две команды Ilib тоже не работали. Я попробовал 'ruby -Ilib lib/fpa/chklinks.rb', считая, что путь должен быть в моем файле библиотеки. – ajnabi
Очень вероятно, что вы делаете что-то неправильно, поэтому вы должны указать как можно больше деталей, включая сеансы оболочки, которые показывают, где находятся все ваши файлы и какие результаты вы получаете при запуске различных команд. Я думаю, вам следует сосредоточиться на том, чтобы команда 'ruby -Ilib bin/checklinks.rb' работала, и это действительно та команда, которую я думаю вам следует использовать. Дело в том, что вы хотите запустить bin/checklinks.rb, но когда вы запустите его, вы хотите, чтобы ваш каталог lib находился на пути включения. Команда, которую вы отправили в своем последнем комментарии, выглядит не очень хорошо. –