Как решить '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
Ответы
Ответ 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) был:
- Загрузите cURL со следующего URL: https://curl.haxx.se/windows/ (я выбрал 64bit, потому что эта система используется)
- Зайдите в архив и перейдите в
/bin
- Найдите
libcurl_x64.dll
(это может быть просто libcurl.dll
) - Извлечь на свой локальный диск
- Переименуйте его в
libcurl.dll
если он имеет суффикс _x64
- 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