драгоценный камень, который не может найти драгоценный камень несмотря на него устанавливаемый

Я создал свой первый драгоценный камень, но я, кажется, не могу заставить его устанавливать правильно. Я могу дать команду

sudo gem install ceilingfish-toto

Который производит вывод

Successfully installed ceilingfish-toto-0.3.6
1 gem installed

Но когда я затем ввожу gem which ceilingfish-toto. Я получаю вывод

Can't find ruby library file or shared library ceilingfish-toto

Который является очень странным, потому что, если я иду и смотрю в своей папке драгоценных камней I, видят все файлы, установленные там

# ls -l /opt/local/lib/ruby/gems/1.8/gems/ceilingfish-toto-0.3.6/
total 48
-rw-r--r--  1 root  admin  1053 14 Feb 17:16 LICENSE
-rw-r--r--  1 root  admin  6166 14 Feb 17:16 README.md
-rw-r--r--  1 root  admin   879 14 Feb 17:16 Rakefile
-rw-r--r--  1 root  admin     6 14 Feb 17:16 VERSION
-rw-r--r--  1 root  admin  2477 14 Feb 17:16 ceilingfish-toto.gemspec
drwxr-xr-x  7 root  admin   238 14 Feb 17:16 test

Кто-либо знает то, что могло вызвать это? Я думаю, что это жалуется, потому что существует дефис на имя драгоценного камня. Вы видите gemspec здесь http://github.com/ceilingfish/toto

7
задан Ceilingfish 14 February 2010 в 17:26
поделиться

3 ответа

драгоценный камень, который потолочная рыба-toto просматривает драгоценный камень, требует путь к файлу с именем потолочная рыба-toto.rb. Поскольку его нет, он ничего не возвращает. Для вас подойдет gem which toto , но поскольку lib / не включен в вашу спецификацию gem, файлы lib не установлены, поэтому он не существует.

Повторный запуск rake gemspec может решить проблему.

Кроме того, вы можете проверить, установлен ли гем, по его имени, используя gem list Celebratefish-toto , который должен показать вам, что он установлен, независимо от имеющихся у него файлов (он также будет отображать установленные версии).

7
ответ дан 6 December 2019 в 19:36
поделиться

Итак, проблема здесь, похоже, в том, что возникла проблема с моим файлом gemspec. Из того, что я могу сказать, обязательно должен быть файл с именем lib / gem-name.rb , поэтому в данном случае мне потребовался lib / потолокfish-toto.rb .

Это не похоже на правильную работу некоторых других драгоценных камней. Например, mime-types или rest-client , даже если они не отображаются с гемом , который , они действительно работают.

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

-1
ответ дан 6 December 2019 в 19:36
поделиться

Это не дефис.

гем, который ищет файлы библиотеки в гемах, а не в гемах . Сравните:

$ gem which haml
/home/dave/.gem/ruby/1.8/gems/haml-3.0.12/lib/haml.rb
$ ls haml-3.0.12/lib/h*
haml  haml.rb  haml.rbc

Персиковый. Обратите внимание на существование lib / haml.rb .

$ gem which rails
ERROR:  Can't find ruby library file or shared library rails
$ ls rails-2.3.8/lib/r*
rails_generator.rb  railties_path.rb  rubyprof_ext.rb  ruby_version_check.rb

Отсутствует lib / rails.rb . Но попробуйте:

$ gem which railties_path # not a gem
/home/dave/.gem/ruby/1.8/gems/rails-2.3.8/lib/railties_path.rb

Итак, gem, который потолочный фиш-toto выдает ошибку, даже если установлен потолочный фиш-тото , потому что нет библиотеки / потолочного фиш-toto.rb (нет даже папки lib ).

7
ответ дан 6 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: