Ruby on rails 如何解决';libcurl';在Windows上找不到Rails

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

这让我头疼。我正在继续一个在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 '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,如下所示
  • 我下载了
    curl-7.50.1-win32-mingw
    并将其放在“C:/curl”上
  • 我在路径中添加了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
我没有尝试从最新的源代码构建curl/libcurl,因为我已经根据
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
关于这方面的更多详细信息,请参见以下其他问题:

    • 对我有效的答案(W10/Ruby2.6.0)是:

    • 从以下URL下载cURL:(我选择64位,因为这是我正在使用的系统)
    • 进入存档并浏览到
      /bin
    • 找到
      libcurl\u x64.dll
      (它可能只是
      libcurl.dll
    • 提取到本地驱动器
    • 如果具有
      \u x64
      后缀,请将其重命名为
      libcurl.dll
    • 剪切并粘贴文件到Ruby安装的
      /bin
      目录中

    • 这个问题是由错误中提到的缺少库引起的,所以解决方法是在这里下载库:导航到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都无法加载

      然后,我做了以下工作:

    • 创建了一个小型Ruby程序,该程序刚刚尝试加载dll:
    • 由ruby.exe进程和任何包含“dll”的路径运行和筛选
    • 因此,我看到了以下情况:

      C:\Ruby27-x64\bin\libzstd.dll-找不到名称

      这让我觉得我缺少了一种依赖。libzstd.dll文件是mingw-w64-x86_64-zstd包的一部分,但幸运的是,我将它放在了其他驱动器上(作为GIMP安装的一部分)


      我将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)