如何解决 'libcurl' not found with Rails on Windows
How to solve 'libcurl' not found with Rails on Windows
这让我很头疼。我正在继续一个从 Linux 开始的 Rails 项目,当我 运行 Puma 在 Ruby Mine:
上时,我一直得到这个
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,随后 this steps
- 我下载了
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
一起使用
如果您在 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 服务器之后,我想出了我从 https://curl.haxx.se/ 下载的 libcurl.dll(如所有建议的那样)相关帖子)已损坏。
下载了这里提供的 http://www.dlldownloader.com/libcurl-dll/ 中提琴 ffi 能够加载这个。
希望这对面临此问题的其他人有所帮助
我想使用 wpscan,但出现 libcurl 错误
好的,如果你也遇到同样的错误,那么我会以一种非常简单的方式尝试给出解决方案。
如果您的 windows 是 32 位的,只需将 libcurl.dll 文件复制到 system32,
如果你的windows64位复制到syswo64.
祝你好运。
我刚刚在 Windows 7 x64 和 上遇到了同样的问题。 (和你一样,我尝试了很多我认为应该起作用但没有起作用的东西。)
有效的是:
从此处找到的其中一个包中取出一个 libcurl.dll
,https://curl.haxx.se/download.html#Win64,并将其放在 PATH
.
(Link 已更新,但最初指向版本 7.40
)
- 我就放在
\ruby24\bin\
下面
- 也许对你来说是
C:\Ruby24-x64\bin
(以下是我试过但没有用的方法:)
- 换上
PATH
:从当前Curl Download Wizard得到cygcurl-4.dll
- 将上面的
cygcurl-4.dll
重命名为 libcurl.dll
并放在 PATH
- 正在安装
msys2
软件包 libcurl-devel 7.57.0-1
- 将
msys-curl-4.dll
(从在 msys64\usr\bin
找到的 msys2
)重命名为 libcurl.dll
I didn't try building curl / libcurl from the latest source because I already have the latest according to 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
在这些其他问题中有关此的更多详细信息:
Typhoeus Windows installation
Rails Typhoeus Curl Trouble
how to install libcurl on windows 7 64bit
对我有用的答案 (W10/Ruby2.6.0) 是:
- 从以下URL下载cURL:https://curl.haxx.se/windows/(我选择64位,因为这是我使用的系统)
- 进入存档并浏览到
/bin
- 找到
libcurl_x64.dll
(可能只是libcurl.dll
)
- 解压到本地驱动器
- 如果有
_x64
后缀 ,则将其重命名为 libcurl.dll
- 将文件剪切并粘贴到 Ruby 安装的
/bin
目录中
嗯,这个问题是由错误中说的缺少库引起的,所以解决方案是在此处下载库:http://www.dlldownloader.com/libcurl-dll/ 并导航到 bin 下的 ruby 文件夹并拖放它在那里确保将下载的 .dll 文件重命名为这个确切的文件:libcurl.dll 否则即使之后也不会工作。
对于 运行 Ruby 2.5 on Windows 的任何人,我的解决方案与顶级解决方案类似,但是我必须移动它以将文件放在 \bin 文件夹和\bin\ruby_builtin_dlls 文件夹工作。
还有一些是我下载了64位版本,改了名字libcurl.dll。还要确保重新启动 IDE/terminal,然后再次尝试启动服务器。
对我有用的解决方案是下载 dll,保留确切名称 libcurl.dll 并将其复制到 c:\windows\system32
None 的解决方案对我有用 - 无论我尝试什么,libcurl 都无法加载。
然后我做了以下事情:
- 创建了一个刚刚尝试加载 dll 的迷你 Ruby 程序:
require 'ffi'
FFI::DynamicLibrary.open("libcurl", FFI::DynamicLibrary::RTLD_LAZY | FFI::DynamicLibrary::RTLD_LOCAL)
- 运行 procmon 并由 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(从 https://curl.haxx.se/windows 获得)
这让我很头疼。我正在继续一个从 Linux 开始的 Rails 项目,当我 运行 Puma 在 Ruby Mine:
上时,我一直得到这个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,随后 this steps
- 我下载了
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
一起使用如果您在 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 服务器之后,我想出了我从 https://curl.haxx.se/ 下载的 libcurl.dll(如所有建议的那样)相关帖子)已损坏。
下载了这里提供的 http://www.dlldownloader.com/libcurl-dll/ 中提琴 ffi 能够加载这个。
希望这对面临此问题的其他人有所帮助
我想使用 wpscan,但出现 libcurl 错误 好的,如果你也遇到同样的错误,那么我会以一种非常简单的方式尝试给出解决方案。
如果您的 windows 是 32 位的,只需将 libcurl.dll 文件复制到 system32,
如果你的windows64位复制到syswo64.
祝你好运。
我刚刚在 Windows 7 x64 和
有效的是:
从此处找到的其中一个包中取出一个
libcurl.dll
,https://curl.haxx.se/download.html#Win64,并将其放在PATH
.(Link 已更新,但最初指向版本
7.40
)- 我就放在
\ruby24\bin\
下面 - 也许对你来说是
C:\Ruby24-x64\bin
(以下是我试过但没有用的方法:)
- 换上
PATH
:从当前Curl Download Wizard得到cygcurl-4.dll
- 将上面的
cygcurl-4.dll
重命名为libcurl.dll
并放在PATH
- 正在安装
msys2
软件包libcurl-devel 7.57.0-1
- 将
msys-curl-4.dll
(从在msys64\usr\bin
找到的msys2
)重命名为libcurl.dll
I didn't try building curl / libcurl from the latest source because I already have the latest according to
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
在这些其他问题中有关此的更多详细信息:
Typhoeus Windows installation
Rails Typhoeus Curl Trouble
how to install libcurl on windows 7 64bit
对我有用的答案 (W10/Ruby2.6.0) 是:
- 从以下URL下载cURL:https://curl.haxx.se/windows/(我选择64位,因为这是我使用的系统)
- 进入存档并浏览到
/bin
- 找到
libcurl_x64.dll
(可能只是libcurl.dll
) - 解压到本地驱动器
- 如果有
_x64
后缀 ,则将其重命名为 - 将文件剪切并粘贴到 Ruby 安装的
/bin
目录中
libcurl.dll
嗯,这个问题是由错误中说的缺少库引起的,所以解决方案是在此处下载库:http://www.dlldownloader.com/libcurl-dll/ 并导航到 bin 下的 ruby 文件夹并拖放它在那里确保将下载的 .dll 文件重命名为这个确切的文件:libcurl.dll 否则即使之后也不会工作。
对于 运行 Ruby 2.5 on Windows 的任何人,我的解决方案与顶级解决方案类似,但是我必须移动它以将文件放在 \bin 文件夹和\bin\ruby_builtin_dlls 文件夹工作。
还有一些是我下载了64位版本,改了名字libcurl.dll。还要确保重新启动 IDE/terminal,然后再次尝试启动服务器。
对我有用的解决方案是下载 dll,保留确切名称 libcurl.dll 并将其复制到 c:\windows\system32
None 的解决方案对我有用 - 无论我尝试什么,libcurl 都无法加载。
然后我做了以下事情:
- 创建了一个刚刚尝试加载 dll 的迷你 Ruby 程序:
require 'ffi'
FFI::DynamicLibrary.open("libcurl", FFI::DynamicLibrary::RTLD_LAZY | FFI::DynamicLibrary::RTLD_LOCAL)
- 运行 procmon 并由 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(从 https://curl.haxx.se/windows 获得)