web-dev-qa-db-ja.com

WindowsではRailsで見つからない 'libcurl'を解決する方法

これは頭​​痛の種です。私はRailsプロジェクトを継続していて、PumaをRuby鉱山で実行すると、これを続けます:

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をPATHに追加しました
  • 縁石をgem install curb --platform=Ruby -- --with-curl-lib=C:/curl/bin --with-curl-include=C:/curl/includeで正常にインストールしました
  • .dllファイルをRuby binフォルダーに配置し、証明書をcurl/binにインストールし、念のためcurl.exeを実行しました。

マシンを再起動しましたが、同じエラーが繰り返し表示されます。

私は何をすべきかわかりません。 Railsで使用するためにlibcurlをWindowsに正常にインストールする方法

23
JStriedinger

私のために働いた答え(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ディレクトリにファイルをカットアンドペーストします
9
Richard Peck

Windows 7 x64で同じ問題が発生しました ここで回答 。 (あなたと同じように、私はうまくいくはずだと思ったがうまくいかないことをたくさん試しました。

何が働いたでした:

  • ここにあるパッケージの1つからlibcurl.dllを取得するには、 https://curl.haxx.se/download.html#Win64PATH

    リンクが更新されましたが、最初はバージョン7.40を指しています)

  • \Ruby24\bin\の下に置きます
  • 多分あなたのためですC:\Ruby24-x64\bin

(これがうまくいかなかった私が試したものです:)

  • PATHを使用:現在の Curlダウンロードウィザード から取得したcygcurl-4.dll
  • 上記のcygcurl-4.dllの名前をlibcurl.dllに変更し、PATHに配置する
  • msys2パッケージlibcurl-devel 7.57.0-1のインストール
  • msys-curl-4.dllmsys2にあるmsys64\usr\binから)をlibcurl.dllに名前変更

pacman -Ss libcurlによると、最新のものをすでに持っているため、最新のソースからcurl/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

これらのその他の質問でこれに関する詳細:

8
TT--

私は同じ問題を抱えており、OPに記載されているのと同じ手順を試しました。私の頭を骨折し、しばらくの間ウィンドウの存在を呪い、クライアントをnixサーバーにシフトするようにほとんど説得しました https://curl.haxx.se/ からダウンロードしたlibcurl.dllを見つけました=(関連するすべての投稿で提案されているように)破損していました。

ここで提供されているものをダウンロードしました http://www.dlldownloader.com/libcurl-dll/ とviola ffiはこれをロードできました。

これがこの問題に直面している他の人を助けることを願っています

5
ZX12R

WindowsでRuby 2.5を実行している人にとって、私の解決策は上位の解決策と似ていましたが、\ binフォルダーと\ bin\Ruby_builtin_dllsフォルダーの両方にファイルを配置して機能させるには、移動する必要がありました。

その他、64ビットバージョンをダウンロードして、その名前をlibcurl.dllに変更しました。また、IDE /ターミナルを再起動してから、サーバーを再起動してください。

1
Marcus Salinas

Wpscanを使用したいのですが、libcurlエラーが表示されます。同じエラーが表示される場合は、非常に簡単な方法で解決策を提供します。

Windowsが32ビットの場合、libcurl.dllファイルをsystem32にコピーするだけです。

Windows 64ビットがsyswo64にコピーされた場合。

幸運を。

0
0px

まあ、問題はエラーで述べられているように欠落しているlibが原因です。解決策はここにlibをダウンロードすることです http://www.dlldownloader.com/libcurl-dll/ そしてナビゲートRubyフォルダーの下のフォルダーにドロップして、ダウンロードした.dllファイルの名前をこのファイルと正確に一致させます。libcurl.dllを使用しないと、その後も機能しません。

0
Newtoxton

私のために働いた解決策は、dllをダウンロードし、正確な名前libcurl.dllを保持してc:\ windows\system32にコピーすることでした

0
Luar Faria