2016-11-01 6 views
0

Я довольно новичок в Ruby, и я работаю над проектом, который хорошо работает на Linux, но мне нужно использовать Windows для него. Я использую jruby, и мне нужно установить драгоценный камень из настраиваемого источника. (Модификация activerecord-jdbc-адаптера из источника git). Проблема возникает, когда я бегу пакет установки и пытается установить этот камень, потому что после того, как он компилирует это дает мне эту ошибку:Bundle install Windows Custom Gem

SystemCallError: Unknown error - Unknown Error (20047) - 
C:\jruby-9.0.1.0\lib\ruby\gems\shared\bundler\gems\activerecord-rails-adapter-90bbc7afe6eb\C: 
An error occurred while installing activerecord-jdbc-adapter (1.4.0.dev), and 

Bundler не может продолжаться.

В linux создается папка home/admin/.... но в Windows она начинается с C: Я думаю, что она пытается создать каталог с именем C: но имя C: is not разрешено как имя для каталога, потому что: - недопустимый символ. Возможно, есть способ избежать создания (или изменить имя) этой папки, но у меня есть поиск, и я ничего не могу найти об этой ошибке.

Поблагодарите вашу помощь. Заранее спасибо

+0

Возможность использовать AR-JDBC от источника ': git' не так уж и много тестировалась - в настоящее время практически нет официального благословения. он попытается скомпилировать родное расширение с помощью 'javac'. рекомендуется попробовать это, используя последнюю версию JRuby (9.1.5.0) в Windows и подтвердить поведение, и в этом случае это может быть сообщено другим пользователям. – kares

+0

Спасибо за помощь! –

ответ

0

Я нахожу решение, ища другие подсказки. Возможно, это не правильный способ решить проблему, но это позволило мне закончить установку этого Gem. В C: \ jruby9.0.1.1 \ Lib \ рубин \ STDLIB \ баночки \ installer.rb, я пошел к линии 168 в методе do_install (поставщика, write_require_file) и изменил это:

def do_install(vendor, write_require_file) 
    vendor_dir = File.join(@mvn.basedir, spec.require_path) 
    jars_file = File.join(vendor_dir, "#{spec.name}_jars.rb") 

    # write out new jars_file it write_require_file is true or 

К этому :

def do_install(vendor, write_require_file) 
    vendor_dir = File.join(@mvn.basedir, spec.require_path.gsub(':','')) 
    jars_file = File.join(vendor_dir, "#{spec.name}_jars.rb") 

    # write out new jars_file it write_require_file is true or 

Таким образом, удаляется двоеточие (:) из папки, которую он пытается создать во время установки. Это привело к тому, что сборщик смог закончить установку драгоценного камня. Возможно, это реальное решение, и оно разрешает ошибку в jruby для окон или, может быть, нет, но на данный момент я решил свою проблему. Спасибо вам за помощь!!

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

  • Нет связанных вопросов^_^