Установите рубиновый камень в Windows XP - PullRequest
8 голосов
/ 03 октября 2009

Я пытаюсь выполнить загрузку файлов с помощью ruby ​​1.8, и кажется, что нет хороших готовых решений. Всем им, похоже, нужен какой-то сторонний патч или форк проекта для работы. Я бы использовал mechanize, но на самом деле мне нужно взаимодействовать с API-интерфейсом xml, и Mechanize, похоже, создан специально для работы непосредственно с веб-страницами. Я пробовал RestClient, но он не имеет такой функциональности для составных форм из коробки, вам нужно использовать форк проекта, чтобы заставить его работать. Похоже, что подобные ситуации существуют для Net: HTTP Я думаю, что обуздание было бы способом пойти, так как я могу хотеть использовать multicurl так или иначе для некоторых других вещей, которые я планирую сделать. Тем не менее, на моем компьютере с Windows я не могу установить драгоценность бордюра. gem install curb выдает ошибку, в которой говорится, что мне нужно указать, где находится библиотека curl. Я пытался передать параметры в extconf, но пока не получилось. Вот вывод команды gem install curb без каких-либо опций

C:\ruby\lib\ruby\gems\1.8\gems\curb-0.5.4.0>gem install curb
Building native extensions.  This could take a while...
ERROR:  Error installing curb:
        ERROR: Failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.rb
checking for curl-config... no
checking for main() in curl.lib... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/ruby/bin/ruby
        --with-curl-dir
        --without-curl-dir
        --with-curl-include
        --without-curl-include=${curl-dir}/include
        --with-curl-lib
        --without-curl-lib=${curl-dir}/lib
        --with-curllib
        --without-curllib
extconf.rb:12:   Can't find libcurl or curl/curl.h (RuntimeError)

  Try passing --with-curl-dir or --with-curl-lib and --with-curl-include
  options to extconf.


Gem files will remain installed in C:/ruby/lib/ruby/gems/1.8/gems/curb-0.5.4.0 for inspection.
Results logged to C:/ruby/lib/ruby/gems/1.8/gems/curb-0.5.4.0/ext/gem_make.out

Есть идеи, как мне заставить это работать?

Ответы [ 11 ]

18 голосов
/ 06 июля 2010

Матовый,

У меня были проблемы с установкой драгоценного камня в Windows. Пытаясь увидеть, как другие решили это, я натолкнулся на множество вопросов, а не очень много решений. Сегодня вечером мне пришлось сделать это снова, и я решил задокументировать свои шаги и опубликовать результаты: http://beginrescue.blogspot.com/2010/07/installing-curb-with-ruby-191-in.html

Извините за блогспам, надеюсь, это кому-нибудь пригодится.

1008 * Пита *

4 голосов
/ 28 марта 2012

В конечном счете, в win7 с ruby ​​1.9.1 мне помогло следующее (где пути должны быть обновлены, чтобы отразить местоположение (и версию) вашей версии curl (которую можно получить через http://curl.haxx.se/download.html#Win32))

gem install curb -- --with-curl-lib="C:/curl/curl-7.21.1-devel-mingw32/bin" --with-curl-include="C:/curl/curl-7.21.1-devel-mingw32/include"

Это заняло несколько минут, так что наберитесь терпения.

3 голосов
/ 15 августа 2012

Я использовал конфиг установки Эвана в его ответе с правильным двоичным файлом libcurl от мастера: http://curl.haxx.se/dlwiz/

gem install curb - --with-curl-lib = "C: /curl/curl-7.21.1-devel-mingw32/bin" --with-curl-include = "C: / curl / curl- 7.21.1-разви-mingw32 / включить "

Это сработало для меня на win XP 64 bit.

Обязательно выберите libcurl с описанием того, что является двоичным файлом для разработки программного обеспечения libcurl.

1 голос
/ 16 октября 2015

Это также работает в Windows 10 x64:

gem install curb - --with-curl-lib = "C: /Users/WindowsVM/binaries/curl-7.40.0-devel-mingw64/lib64" --with-curl-include = "C: / Пользователи / WindowsVM / бинарники / локон-7.40.0-разви-mingw64 / включить "

1 голос
/ 10 сентября 2013

Для Windows 8 команда была:

gem install curb -- --with-curl-lib=C:/Utils/curl-7.32.0-dev/lib64 --with-curl-include=C:/Utils/curl-7.32.0-dev/include

И он почти устанавливается. Теперь есть "неопределенная ссылка" предупреждения / ошибки

1 голос
/ 23 августа 2010

Как я уже прокомментировал, я нашел решение, которое просто использовало rest-client, предоставляемый в гемах github. gem install rest-client выполню работу Оттуда вы можете сделать многокомпонентную запись, которая может содержать 1 или более файлов. Она обладает всей гибкостью, которая может потребоваться в rest-клиенте. Смотрите документацию здесь: http://rdoc.info/projects/archiloque/rest-client например, как его использовать.

Единственное, что я обнаружил, что это не сработало, - это анализ файлов cookie. Файлы cookie, используемые моей компанией, могут иметь одинаковые знаки в значениях, и они не анализируются правильно. Я добавил несколько хаков, чтобы обойти эту проблему, но в конечном итоге это привело меня к укусу. Так что на днях я начал анализировать код из Mechanize / WEBrick и смог использовать CookieJar из Mechanize для управления файлами cookie от остальных -клиент .. Надеюсь, я смогу заставить автора rest-клиента встроить эту функцию в rest-клиент, чтобы у других не было таких проблем, как у меня ..

1 голос
/ 04 октября 2009

Глядя на основную проблему, которую вы пытаетесь решить. Я искал многочастного клиента раньше и потратил много времени, пробуя разные драгоценные камни / инструменты. Единственный найденный мной, который работал удовлетворительно, был Ник Зигерс многочастный пост

Использовать было очень просто, я очень рекомендую.

Вот пример кода, который я сделал для моего теста

require "rubygems"
require 'net/http/post/multipart'

url = URI.parse('http://localhost:3000/mytest/1.xml')
File.open("c:/temp/readme.txt") do |jpg|
  req = Net::HTTP::Put::Multipart.new url.path,
    "mytest[attachment]" => UploadIO.new(jpg, "text/plain", "c:/temp/readme.txt")
  res = Net::HTTP.start(url.host, url.port) do |http|
    http.request(req)
  end
  puts res.inspect
end
0 голосов
/ 23 июня 2013

Я перепробовал все вышеперечисленные решения, но ничего не получилось, я сдался, но, к счастью, позже наткнулся на этот пост http://jooglar.com/edely/content/installing-libcurl-ruby-windows, и инструкции там работали отлично.

Вот инструкции на случай, если веб-сайт обанкротится:


1. Загрузите версию библиотеки "libcurl"
От http://curl.haxx.se/dlwiz/?type=lib

2. Устанавливать везде, но путь не может содержать пробелы.
Убедитесь, что при распаковке файла вы найдете каталоги «bin» и «include»

3. Добавьте путь к libcurl (оканчивающийся на / bin;) в системную PATH переменную
ВНИМАНИЕ: ИСПОЛЬЗОВАТЬ / ВМЕСТО \ в ПУТИ. В пути не должно быть пробелов. Например: C:/curl/curl-7.26.0-devel-mingw32/bin;

4. Установите драгоценный камень
ВНИМАНИЕ: СНОВА, ИСПОЛЬЗОВАТЬ / ВМЕСТО \ в ПУТИ. Смотри выше.

Пример команды: gem install curb -- --with-curl-lib=C:/curl/curl-7.26.0-devel-mingw32/bin --with-curl-include=C:/curl/curl-7.26.0-devel-mingw32/include


[NB: обратите внимание на отдельную -- до --with-..., это было для меня хитом.]

На данный момент, это должно работать. Это сработало для меня. Если этого не произойдет, вы можете попробовать остальные инструкции:


Если это не работает, скопируйте следующие файлы .dll в каталог ruby ​​/ bin и повторите предыдущую команду.

  • libcurl.dll
  • libssl32.dll
  • libeay32.dll

Также, если это не сработает ... обновите DevKit и снова выполните предыдущую команду. Загрузите последнюю версию и с консоли перейдите в каталог DevKit и запустите ruby dk.rb install --force

0 голосов
/ 12 октября 2011

после долгих затрат времени я сдаюсь ...

Ответы, приведенные выше, не работают для меня, а некоторые ссылки "curl" не работают, я даже не могу скачать их с официального сайта.

То, что я хочу, довольно просто: установить CEMB Gem на Cygwin.

Теперь я переключился на VirtalBox и установил на нем сервер Ubuntu. затем я устанавливаю его за 20 минут без проблем.

Итак, люди, работающие под Cygwin, давайте переключимся на виртуальную машину!

0 голосов
/ 23 сентября 2010

Выполнить команду ниже и ее работы

gem install curb --platform = mswin32

...