Адаптер ruby ​​postgreSQL на AMD64 - PullRequest
2 голосов
/ 01 марта 2012

Когда я пытаюсь запустить простой код, такой как

# A Postgres connection:
DataMapper.setup(:default, 'postgres://localhost/the_database_name')

на машине win7 x86-64, я получаю следующую ошибку:

D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 193: %1 n?est pas une application Win32 valide.   - D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres/1.9/do_postgres.so (LoadError)
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:30:in `rescue in <top (required)>'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/do_postgres-0.10.8-x86-mingw32/lib/do_postgres.rb:25:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter/adapter.rb:1:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-postgres-adapter-1.2.0/lib/dm-postgres-adapter.rb:1:in `<top (required)>'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from D:/dev/Ruby/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `load_adapter'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:133:in `adapter_class'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:13:in `new'
    from D:/dev/Ruby/lib/ruby/gems/1.9.1/gems/dm-core-1.2.0/lib/dm-core.rb:228:in `setup'
    from D:/dev/workspace/ruby/training/bin/pg/main.rb:8:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

У меня установлена ​​каждая зависимость от гемови бинарную версию postgreSQL (установщик в один клик находится на их сайте). Я подозреваю, что причиной ошибки является архитектура x86-64, потому что такая же установка на машине x86 прекрасно работает.

Некоторые идеи?спасибо

PS: Это вопрос, следующий за этот (на самом деле не ответил), но поскольку это ошибка, я задал новый вопрос.

Ответы [ 2 ]

1 голос
/ 07 июня 2012

Я - парень из Linux и не занимался программированием в Windows в течение четырнадцати лет.Однако:

В сообщении об ошибке говорится, что это недопустимое приложение Win32.И это работает при 32-битной установке, верно?

Попробуйте установить 32-битную версию Postgres на 64-битной машине.Он все еще будет работать на 64-битной машине.В противном случае может быть опция 64-битных библиотек Windows.

0 голосов
/ 18 ноября 2013

Вроде поздно для вечеринки, но в случае, если кто-то окажется здесь после поиска в Google, я обнаружил, что это работает:

Скопируйте эти файлы из установочного каталога Postgres в .. \ Ruby \bin:

  • lib \ libpq.dll
  • bin \ libeay32.dll
  • bin \ libintl-8.dll
  • bin \ libiconv-2.dll
  • bin \ krb5_32.dll
  • bin \ comerr32.dll
  • bin \ k5sprt32.dll
  • bin \ gssapi32.dll

Некоторые из них уже могут существовать, поэтому вам не нужно перезаписывать.

Кредит предоставляется Луису Лавене: https://groups.google.com/forum/#!topic/datamapper/3fz5MeB-frM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...