如何解决Windows上的Rails找不到的'libcurl'

问题描述 投票:18回答:5

这让我很头疼。我正在继续一个从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'
[...]

现在,我尝试了什么?

  • 我按照this steps在Windows上成功安装了Puma
  • 我下载了curl-7.50.1-win32-mingw并把它放在“C:/ curl”上
  • 我将C:/ curl / bin和C:/ curl / include添加到PATH中
  • 我用gem install curb --platform=ruby -- --with-curl-lib=C:/curl/bin --with-curl-include=C:/curl/include成功安装了curb gem
  • 我将.dll文件放在Ruby bin文件夹中,将证书安装在curl / bin中,甚至运行curl.exe以防万一。

我重新启动机器,但我一直看到同样的错误。

我不知道该怎么办。如何在Windows上成功安装libcurl以与Rails一起使用

ruby-on-rails windows curl libcurl rubymine
5个回答
7
投票

我在Windows 7 x64和answered about it here上遇到了同样的问题。 (与你类似,我尝试了很多我认为应该工作但却没有的东西。)

有用的是:

  • 从这里找到的一个包装libcurl.dll拿一个https://curl.haxx.se/download.html#Win64,然后把它放在PATH上。 (链接已更新,但最初指向版本7.40
  • 我把它放在\ruby24\bin\
  • 也许对你来说这是C:\Ruby24-x64\bin

(以下是我试过的不起作用的东西:)

  • 穿上PATH:从当前的cygcurl-4.dll获得的Curl Download Wizard
  • 将以上cygcurl-4.dll重命名为libcurl.dlland将其放在PATH
  • 安装msys2libcurl-devel 7.57.0-1
  • msys-curl-4.dll(从msys2发现的msys64\usr\bin)重命名为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

在这些其他问题中有关此问题的更多详情


5
投票

我遇到了同样的问题并尝试了OP列出的相同步骤。打破我的头,诅咒窗口的存在一段时间,几乎说服客户端转移到nix服务器,我想我从https://curl.haxx.se/下载的libcurl.dll(如所有相关帖子中所建议的)已损坏。

下载了这里提供的http://www.dlldownloader.com/libcurl-dll/和中提琴ffi能够加载这一个。

希望这有助于其他任何人面对这个问题


2
投票

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

  1. 从以下URL下载cURL:https://curl.haxx.se/windows/(我选择了64位,因为那是我正在使用的系统)
  2. 进入存档并浏览到/bin
  3. 找到libcurl_x64.dll(它可能只是libcurl.dll
  4. 提取到您的本地驱动器
  5. 如果它有libcurl.dll后缀,则将其重命名为_x64
  6. 将文件剪切并粘贴到Ruby安装的/bin目录中

0
投票

我想使用wpscan,但我得到libcurl错误确定,如果你也得到相同的错误,那么我将以一种非常简单的方式尝试给出解决方案。

如果你的窗口是32位,只需将libcurl.dll文件复制到system32,

如果您的Windows 64位复制到syswow64。

祝好运。


-1
投票

如果您在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

最后我们来到红宝石:

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
© www.soinside.com 2019 - 2024. All rights reserved.