Ruby on rails 如何解决';libcurl';在Windows上找不到Rails
这让我头疼。我正在继续一个在Linux上启动的Rails项目,当我在Ruby Mine上运行Puma时,我一直得到这个信息:Ruby on rails 如何解决';libcurl';在Windows上找不到Rails,ruby-on-rails,windows,curl,libcurl,rubymine,Ruby On Rails,Windows,Curl,Libcurl,Rubymine,这让我头疼。我正在继续一个在Linux上启动的Rails项目,当我在Ruby Mine上运行Puma时,我一直得到这个信息: Error:[rake --tasks] DL is deprecated, please use Fiddle rake aborted! LoadError: Could not open library 'libcurl': The specified module could not be found. Could not open library 'libcur
Error:[rake --tasks] DL is deprecated, please use Fiddle
rake aborted!
LoadError: Could not open library 'libcurl': The specified module could not be found.
Could not open library 'libcurl.dll': The specified module could not be found.
Could not open library 'libcurl.so.4': The specified module could not be found.
Could not open library 'libcurl.so.4.dll': The specified module could not be found.
C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/ffi-1.9.14-x86-mingw32/lib/ffi/library.rb:147:in `block in ffi_lib'
[...]
现在,我尝试了什么?
- 我在Windows上成功安装了Puma,如下所示
- 我下载了
并将其放在“C:/curl”上curl-7.50.1-win32-mingw
- 我在路径中添加了C:/curl/bin和C:/curl/include
- 我使用
gem安装corb--platform=ruby--with curl lib=C:/curl/bin--with curl include=C:/curl/include成功安装了路缘gem
- 我将.dll文件放在Ruby bin文件夹中,将证书安装在curl/bin中,甚至运行curl.exe以防万一
我不知道该怎么办如何在Windows上成功安装libcurl以与Rails一起使用如果您在Windows 10上使用WSL(请确保更新到Ubuntu 16.04),以下说明对我来说非常有效。但是,您可能需要完全擦除已安装的内容。 在bash中:
sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev postgresql-client-common postgresql-client libpq-dev
然后为rbenv构建路径和插件目录:
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL
最后我们来看看ruby:
rbenv install 2.4.1
rbenv global 2.4.1
然后绑定器:
gem install bundler
rbenv rehash
现在我们的先决条件是:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
最后是Rails:
gem install rails
rbenv rehash
我遇到了同样的问题,并尝试了OP列出的相同步骤。在打破我的头脑,咒骂windows存在了一段时间,几乎说服客户端转移到nix服务器之后,我发现我下载的libcurl.dll(正如所有相关文章中所建议的)已经损坏了 下载了这里提供的一个,外国金融机构viola能够加载这个
希望这能帮助其他面临此问题的人我想使用wpscan,但我得到了libcurl错误 好的,如果你也得到同样的错误,那么我将以一种非常简单的方式尝试给出解决方案 如果windows是32位的,只需将libcurl.dll文件复制到system32 如果您的windows 64位复制到syswo64
祝你好运。我刚刚在Windows7 x64和上遇到了同样的问题。(和你一样,我尝试了很多我认为应该奏效但没有成功的事情。) 有效的方法是:
- 从此处找到的某个包中获取
,并将其放在libcurl.dll
路径上 (链接已更新,但最初指向版本
)7.40
- 我只是把它放在
\ruby24\bin\
- 也许对你来说是
C:\Ruby24-x64\bin
- 放在
:从当前路径上
- 将上述
重命名为cygcurl-4.dll
,并将其置于libcurl.dll
路径
- 安装
软件包msys2
libcurl-devel 7.57.0-1
- 将
msys-curl-4.dll(从
找到的msys64\usr\bin
重命名为msys2
libcurl.dll
pacman-Ss libcurl
获得了最新的源代码:
msys/libcurl 7.57.0-1 (libraries) [installed]
Multi-protocol file transfer library (runtime)
msys/libcurl-devel 7.57.0-1 (development) [installed]
Libcurl headers and libraries
关于这方面的更多详细信息,请参见以下其他问题:
- 从以下URL下载cURL:(我选择64位,因为这是我正在使用的系统)
- 进入存档并浏览到
/bin
- 找到
(它可能只是libcurl\u x64.dll
)libcurl.dll
- 提取到本地驱动器
- 如果具有
后缀,请将其重命名为\u x64
libcurl.dll
- 剪切并粘贴文件到Ruby安装的
目录中/bin
- 创建了一个小型Ruby程序,该程序刚刚尝试加载dll:
- 由ruby.exe进程和任何包含“dll”的路径运行和筛选 因此,我看到了以下情况: C:\Ruby27-x64\bin\libzstd.dll-找不到名称 这让我觉得我缺少了一种依赖。libzstd.dll文件是mingw-w64-x86_64-zstd包的一部分,但幸运的是,我将它放在了其他驱动器上(作为GIMP安装的一部分)
- 对我有效的答案(W10/Ruby2.6.0)是:
这个问题是由错误中提到的缺少库引起的,所以解决方法是在这里下载库:导航到bin下的ruby文件夹并将其放到那里,确保将下载的.dll文件重命名为这个文件:libcurl.dll,否则即使在Windows上运行ruby 2.5,也无法工作。,我的解决方案与顶级解决方案类似,但我必须将其移动到\bin文件夹和\bin\ruby\u builtin\u dll文件夹中才能工作
另外,我下载了64位版本,并将其名称更改为libcurl.dll。还要确保重新启动IDE/终端,然后再次尝试启动服务器 对我有效的解决方案是下载dll,保留确切的名称libcurl.dll并将其复制到c:\windows\system32没有一个解决方案对我有效-无论我尝试了什么,libcurl都无法加载 然后,我做了以下工作:
我将libzstd.dll复制到C:\Ruby27-x64\bin,问题就解决了。当然,我的路径中已经有libcurl.dll(从中获得)您使用的是哪个版本的Windows?同样的问题。Win10,Ruby23这对我来说很有用。只需将下载的dll文件复制到RubyX文件夹
require 'ffi'
FFI::DynamicLibrary.open("libcurl", FFI::DynamicLibrary::RTLD_LAZY | FFI::DynamicLibrary::RTLD_LOCAL)