2016-01-31 3 views
1

Я пытаюсь запустить командуThin не может найти pg_ext

thin -R lat.ru start 

в каталоге 50web\servers\dev (lat.ru является частью проекта с открытым исходным кодом 50web).

я получаю следующее сообщение об ошибке:

D:\dev\derek\50web\servers\dev>thin -R lat.ru start 
C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': ca 
nnot load such file -- 2.1/pg_ext (LoadError) 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
`require' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/pg-0.18.4/lib/pg.rb:14:in `rescu 
e in <top (required)>' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/pg-0.18.4/lib/pg.rb:3:in `<top (
required)>' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in 
`require' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in 
`rescue in require' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in 
`require' 
     from C:/Ruby21/lib/ruby/site_ruby/2.1.0/getdb.rb:11:in `<top (required)> 
' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
`require' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
`require' 
     from D:/dev/derek/50web/routes/lat.rb:2:in `<top (required)>' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
`require' 
     from C:/Ruby21/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
`require' 
     from lat.ru:3:in `block in <main>' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/builder.rb:5 
5:in `instance_eval' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/rack-1.6.4/lib/rack/builder.rb:5 
5:in `initialize' 
     from lat.ru:1:in `new' 
     from lat.ru:1:in `<main>' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/rack/adapter/load 
er.rb:33:in `eval' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/rack/adapter/load 
er.rb:33:in `load' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/controllers/ 
controller.rb:182:in `load_rackup_config' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/controllers/ 
controller.rb:72:in `start' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/runner.rb:20 
0:in `run_command' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/lib/thin/runner.rb:15 
6:in `run!' 
     from C:/Ruby21/lib/ruby/gems/2.1.0/gems/thin-1.6.4/bin/thin:6:in `<top (
required)>' 
     from C:/Ruby21/bin/thin:23:in `load' 
     from C:/Ruby21/bin/thin:23:in `<main>' 

Я использую стр 0.18.4, который, кажется, как самая последняя версия:

D:\dev\derek\50web\servers\dev>gem list pg 

*** LOCAL GEMS *** 

pg (0.18.4) 

D:\dev\derek\50web\servers\dev>gem update pg 
Updating installed gems 
Nothing to update 

рубин версия 2.1.7p400 (2015-08-18 revision 51632) [i386-mingw32].

Как исправить эту ошибку?

Update 1 (02.02.2016 8:08 MSK):

Я запустить тот же проект на другой машине:

C:\usr\dp\dev\derek\50web\servers\dev>ruby lat.ru 
C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- 2.2/pg_ext (LoadError) 
     from C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from C:/Ruby22/lib/ruby/gems/2.2.0/gems/pg-0.18.4/lib/pg.rb:14:in `rescue in <top (required)>' 
     from C:/Ruby22/lib/ruby/gems/2.2.0/gems/pg-0.18.4/lib/pg.rb:3:in `<top (required)>' 
     from C:/Ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require' 

я заметил, что Руби, кажется, ищет файл pg_ext в каталоге 2.2/pg_ext, тогда как на самом деле он установлен в каталоге C:\Ruby22\lib\ruby\gems\2.2.0\gems\pg-0.18.4\lib.

Location of pg_ext file

ответ

0

Я исправил ошибку, удалив жемчужину pg и переустановив ее с помощью команды gem install pg --pre. Это необходимо из-за bug, который еще не исправлен в версии.

0

Похоже установкой C-расширение части pg драгоценного камня сломано.

  • убедитесь, что библиотеки разработчиков PostgreSQL установлены
  • переустанавливать pg камень и посмотреть, если нет сообщений об ошибках

Переустановка с -f силой флага, или лучше gem uninstall и gem install заново.

+0

Как установить «библиотеки разработки postgresql»? AFAIR Я попробовал «gem install pg-devel», но он сказал, что такого драгоценного камня нет. –

+0

@DmitriPisarenko Перед установкой gem необходимо наличие библиотек postgresql и файлов заголовков на пути поиска компиляции или сбои сборки gem. Если вы находитесь в Windows, установите из доступных двоичных файлов [связанных] (http://www.postgresql.org/download/windows/) на официальных страницах PostgreSQL. Просто проверил архив, и он содержит необходимые файлы разработки. – xblake

+0

Как узнать, установлены ли библиотеки разработки или нет? Какие файлы будут присутствовать в каталогах, если они есть? –

Смежные вопросы