Подтвердить что ты не робот

Как решить 'libcurl', не найденный с Rails в Windows

Это дает мне головную боль. Я продолжаю проект Rails, который начался в Linux, и я продолжаю получать это, когда я запускаю 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'
[...]

Теперь, что я пробовал?

  • Я установил Puma успешно в Windows после этих шагов
  • Я загрузил curl-7.50.1-win32-mingw и надел его на "C:/curl"
  • Я добавил C:/curl/bin и C:/curl/include в PATH
  • Я успешно установил gem с ограничениями gem install curb --platform=ruby -- --with-curl-lib=C:/curl/bin --with-curl-include=C:/curl/include
  • Я поместил файлы .dll в папку Ruby bin, установил сертификат в curl/bin и даже запустил curl.exe на всякий случай.

Я перезагрузил машину, но я все еще вижу ту же ошибку.

Я не знаю, что делать. Как успешно установить libcurl в Windows для использования с Rails

4b9b3361

Ответ 1

У меня была такая же проблема на Windows 7 x64, и ответил об этом здесь. (Как и вы, я пробовал много вещей, которые, по моему мнению, должны работать, но не помогали.)

Что сработало :

  • Чтобы взять libcurl.dll из одного из найденных здесь пакетов, https://curl.haxx.se/download.html#Win64, и поместить его в PATH.

    (Ссылка была обновлена, но изначально указывала на версию 7.40)

  • Я просто поместил его под \ruby24\bin\
  • Может быть, для вас это C:\Ruby24-x64\bin

(Вот вещи, которые я пробовал, но они не работали :)

  • Включение PATH: cygcurl-4.dll, полученное из текущего мастера загрузки локонов
  • Переименование вышеупомянутого cygcurl-4.dll в libcurl.dll и помещение его в PATH
  • Установка пакета msys2 libcurl-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

Подробнее об этом в других вопросах:

Ответ 2

У меня возникла та же проблема, и я попробовал те же шаги, что и OP. После того, как я сломал голову, проклял существование окон на некоторое время и почти убедил клиента перейти на nix-сервер, я понял, что libcurl.dll, которую я скачал с https://curl.haxx.se/ (как это было предложено во всех связанных сообщения) был поврежден.

Скачал предоставленный здесь http://www.dlldownloader.com/libcurl-dll/ и альфа файл смог загрузить этот.

Надеюсь, что это помогает всем, кто сталкивается с этой проблемой

Ответ 3

Ответ, который работал для меня (W10/Ruby2.6.0) был:

  1. Загрузите cURL со следующего URL: https://curl.haxx.se/windows/ (я выбрал 64bit, потому что эта система используется)
  2. Зайдите в архив и перейдите в /bin
  3. Найдите libcurl_x64.dll (это может быть просто libcurl.dll)
  4. Извлечь на свой локальный диск
  5. Переименуйте его в libcurl.dll если он имеет суффикс _x64
  6. Cut + вставьте файл в каталог /bin вашей установки Ruby

Ответ 4

Я хочу использовать wpscan, но я получаю ошибку libcurl Хорошо, если вы также получите ту же ошибку, то очень простым способом я попытаюсь дать решение.

Просто скопируйте файл libcurl.dll в system32, если ваши окна 32 бит,

Если ваши 64-битные файлы Windows копируются в syswo64.

Удачи.

Ответ 5

Что ж, проблема вызвана отсутствующей библиотекой, как сказано в сообщении об ошибке, поэтому решение заключается в том, чтобы скачать библиотеку здесь: http://www.dlldownloader.com/libcurl-dll/ и перейти к папке ruby в папке bin и поместить ее туда, не забудьте переименовать загруженный файл DLL. точно так: libcurl.dll еще не будет работать даже после.

Ответ 6

Для любого, кто запускал Ruby 2.5 в Windows, мое решение было похоже на лучшие решения, однако мне пришлось переместить его, чтобы поместить файл в папку \bin и папку \bin\ruby_builtin_dlls для работы.

Некоторые другие вещи - то, что я загрузил 64-битную версию и изменил ее имя на libcurl.dll. Также обязательно перезапустите IDE/терминал и попробуйте снова запустить сервер.

Ответ 7

Если вы используете WSL в Windows 10 (обязательно обновите 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