在Windows XP中安装Ruby Curb gem
我正在尝试使用ruby 1.8进行文件上传,它似乎没有很好的开箱即用解决方案。他们似乎都需要某个项目的第三方补丁或分支才能工作。我会使用机械化,但我实际上需要与xml API进行接口,并且机械化似乎专门用于直接处理网页。我已经尝试了RestClient,但它没有为多部分表单开箱即用的功能,您必须使用项目的分支才能使其工作。对于Net似乎也有类似的情况:HTTP 我在想,因为我可能想要使用multicurl来处理其他一些我计划要做的事情,所以我认为应该是路由器。但是,在我的Windows机器上,我似乎无法安装路边宝石。 gem install curb给出了一个错误,说我需要指定curl库在哪里居住..我试过将选项传递给extconf,但目前为止没有运气。 这里是宝石的输出路边安装不带任何选项在Windows XP中安装Ruby Curb gem
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
任何想法如何,我能得到这个工作?
正如我已经发表了评论,我发现这是简单地使用在github上的宝石提供.. 创业板安装其他客户端 将完成这项工作,其余客户端的解决方案。 从那里你可以做一个多部分文章,其中可以包含1个或多个文件..它具有休息客户端可能需要的所有灵活性。 请参阅此处的文档:http://rdoc.info/projects/archiloque/rest-client 有关如何使用它的示例。
我发现它没有正确执行的唯一的事情是解析cookie。我公司使用的cookie在值中可以有相同的标志,并且不会正确解析它们。为了解决这个问题,我采取了一些措施,但最终还是回来咬我。所以就在前几天我开始分析来自Mechanize/WEBrick的代码,并且能够利用Mechanize中的CookieJar来管理来自其余客户端的cookie。希望我可以让剩下的客户端的作者将此功能构建到其余客户端,以便其他人不会有同样的问题,我有..
当你说你将配置选项传递给extconf.rb时,你的意思是在gem install命令中吗?
如果不是这样,我相信这将是沿着
宝石的安装路缘线的东西 - --with卷曲-DIR = DIR
这可能是一个不同的配置选项,但 - - 是否需要通过配置选项?
自述文件说要传递这样的选项: rake install EXTCONF_OPTS =' - with-curl-dir =/path/to/libcurl --prefix =/what/ever' 因此我做了类似的事情: rake install EXTCONF_OPTS =' - with-curl-dir = c:/ curl' 我尝试了一些该语法/引号的变体,并尝试明确指定使用with-curl-dir/with-curl-include字段而不是with -curl-dir 没有运气,也没有出现很多人在网上运行ruby,所以它可能不是一个好的选择(不幸的是) – 2009-10-06 19:01:49
看看你正试图解决的潜在问题。我之前正在寻找一个多客户端客户端,并花了很多时间尝试不同的宝石/工具。 我发现工作满意的唯一一个是尼克西格斯multipart-post gem
这是非常直接的使用,我强烈推荐它。
下面是示例代码中,我为我的测试
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
我不认为这将允许在单个请求中上传多个文件会吗。否则,它看起来像上传请求中的单个文件的好方法 – 2009-10-06 18:57:52
马特,
我已经收到您在Windows路边宝石了事发经过。在试图看看其他人如何解决这个问题时,我遇到了很多问题,而且没有很多解决方案。今晚我不得不再次这样做,我决定记录下我的步骤并发布结果: http://beginrescue.blogspot.com/2010/07/installing-curb-with-ruby-191-in.html
对不起博客垃圾,希望对某人有用。
皮特
执行以下命令及其作品
创业板安装路边--platform = mswin32
,我放弃了...
上面给出的答案对我不起作用,并且一些“卷曲”链接被打破,我c甚至不会从官方网站下载。
我想要的很简单:在cygwin上安装curb gem。
现在我切换到VirtalBox,并在其上安装了Ubuntu服务器。然后,我在20分钟内安装它,没有任何问题。
所以,在cygwin下工作的人们,让我们切换到虚拟机!
在虚拟机上工作在我的机器上太慢了。 :)学习Powershell并使用本地Ruby代替。 – 2012-03-30 21:46:15
最终,与红宝石WIN7 1.9.1对我下面的工作(其中的路径需要进行更新,以反映您的卷曲版本的位置(和版本)(可通过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"
这确实需要几分钟时间来处理,所以请耐心等待。
我得到错误“无效的选项:--with-curl-lib”。可能是你现在如何解决它? – demas 2012-11-13 18:36:09
这个错误似乎来自省略最初的' - '... – 2013-01-09 18:35:32
我用埃文的安装配置在他的回答与向导正确的libcurl二进制:http://curl.haxx.se/dlwiz/
创业板安装路边 - --with-卷曲LIB =“C:/curl/curl-7.21 .1 devel的-mingw32的/ bin中” --with-卷曲包括= “C:/curl/curl-7.21.1-devel-mingw32/include”
这为我工作在Win XP 64位。
请确保选择libcurl,其中包含有关作为libcurl软件开发的二进制文件的说明。
我试过以上所有的解决方案,没有任何工作,我放弃了,但幸运的是我后来偶然发现了这个职位http://jooglar.com/edely/content/installing-libcurl-ruby-windows和那里的指示完美。
这里有方向,万一网站开始倒闭了:
1.下载 “的libcurl” 版本的库
从http://curl.haxx.se/dlwiz/?type=lib
2.安装的地方,但路径不能有空格。
确保当你解压缩文件,你会发现目录中的“bin”和“包括”
3。添加的libcurl路径(在/ bin中结束)到系统PATH
可变
警告: USE /
INSTEAD OF \
在PATH。路径中不允许有空格。例如: C:/curl/curl-7.26.0-devel-mingw32/bin;
4.安装宝石
警告: AGAIN,在路径中使用/
INSTEAD OF \
。往上看。
示例命令: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
[注:请注意独立--
--with-...
之前,这对我来说是疑难杂症]
在这一点上,它应该工作。它为我工作。如果没有,你可以尝试的其他说明:
如果它不工作,以下.dll
文件复制到红宝石/ bin目录,然后再次运行前面的命令。
libcurl.dll
libssl32.dll
libeay32.dll
而且,如果还是不行...更新的devkit,并再次运行前面的命令。下载最新版本,并从一个控制台去到的devkit目录并运行 ruby dk.rb install --force
对于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
而且它几乎安装。现在有 “未定义参考” 警告/错误
请参见http:/ /curl.haxx.se/docs/faq.html#Link_errors_when_building_libcur – rupweb 2013-09-10 10:30:18
这工作过,在Windows 10 64:
创业板安装路边 - --with-卷曲LIB =“C:/用户/ WindowsVM/binaries/curl-7.40.0-devel-mingw64/lib64“--with-curl-include =”C:/Users/WindowsVM/binaries/curl-7.40.0-devel-mingw64/include“
My最终的解决方案就是使用ruby rest-client,它完全支持文件上传。为了得到这个,只需将http://gems.github.com添加到你的源代码(如果你还没有的话),然后执行gem install rest-client 从那里你可以用你想要的多个字段/文件做多部分文章。 。这里的例子:http://rdoc.info/projects/archiloque/rest-client 这个客户端很棒,强烈推荐它。 – 2010-07-06 18:32:55