Próbuję zainstalować środowiska Rails na Ubuntu 11.04. Po uruchomieniu polecenia rvm install 1.9.2 --with-openssl-dir=/usr/local
pojawia się następujący błąd:
curl : (1) Protocol https not supported or disabled in libcurl
Jak można to rozwiązać?
ruby-on-rails
curl
openssl
libcurl
ubuntu-11.04
Giuseppe Di Federico
źródło
źródło
--with-openssl-dir=/usr/local
(tj. Po prosturvm install 1.9.2
)?sudo apt-get install curl
). Spróbujcurl -o "google.html" https://google.com
sprawdzić, czy obsługiwany jest protokół HTTPS.RCurl
.Odpowiedzi:
Mam odpowiedź TUTAJ dla okien, jest tam napisane, że:
Ups, najpierw spróbuj i już błąd:
Przyczyna tego błędu jest trochę głupia, system Windows nie lubi tego, gdy używasz apostrofów dla poleceń . Więc poprawne polecenie to:
źródło
curl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary "{ \"name\":\"Curler\", \"text\": \"Hello from the command line\" }"
zamiastcurl "http://localhost:3030/messages/" -H "Content-Type: application/json" --data-binary '{ "name":"Curler", "text": "Hello from the command line" }'
... zwróć uwagę na pojedyncze i niezmienione podwójne cytaty ze złej części.new_url=$( echo $url | tr -d \" )
Natknąłem się na ten problem i okazało się, że jest spacja przed tym,
https
który był przyczyną problemu." https://"
vs"https://"
źródło
Wygląda na to, że jest już tak wiele odpowiedzi, ale problem, z jakim się spotkałem, dotyczył podwójnych cudzysłowów. Istnieje różnica pomiędzy:
i
Zmiana pierwszego podwójnego cudzysłowu na drugi działała dla mnie, poniżej znajduje się przykładowe zawinięcie:
źródło
Napotkałem ten sam problem podczas próby zainstalowania rvm dla ruby. znalazłem rozwiązanie: po wypakowaniu curl (tar) w folderze pobierania w katalogu głównym.
źródło
źródło
Rozwiązano ten problem za pomocą flag --with-darwinssl
Przejdź do folderu z kodem źródłowym curl
Pobierz go tutaj https://curl.haxx.se/download.html
zrestartuj konsolę i gotowe!
źródło
Jest to szczególnie wspomniane we wpisie FAQ libcurl „ Protokół xxx nie jest obsługiwany lub wyłączony w libcurl ”.
Dla Twojej przyjemności zamieszczam tutaj również wyjaśnienie:
źródło
W moim przypadku protokół HTTPS nie był w pierwszej kolejności obsługiwany przez libcurl. Aby dowiedzieć się, które protokoły są obsługiwane, a które nie, sprawdziłem wersję curl za pomocą polecenia:
curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5
Zawierał następujące informacje: Protokoły: dict plik ftp ftps gopher http imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Funkcje: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSocketsgdzie protokół https nie jest obsługiwany.
Następnie ponownie zainstalowałem curl i zainstalowałem go za pomocą następujących poleceń (po rozpakowaniu):
Po kilku minutach pracy problemy zostały rozwiązane!
Następnie ponownie uruchomiłem polecenie curl version, pokazało:
curl 7.50.3 (x86_64-apple-darwin15.6.0) libcurl/7.50.3 SecureTransport zlib/1.2.5
Protokoły: dict plik ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Funkcje: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSocketsPojawił się protokół HTTPS!
Wreszcie przydatna witryna, do której można się odnieść, gdy napotkasz problemy z podkręcaniem.
https://curl.haxx.se/docs/install.html
źródło
Rozwiązuję to po prostu zmieniając się
'http://webname...'
na"http://webname..."
Zwróć uwagę na cytat. Powinien być double (
"
) zamiast single ('
).źródło
Mój problem wynikał z niewyświetlanego symbolu UTF. Skopiowałem link ze ścieżki nginx i otrzymałem następny w schowku:
Symbolem problemu jest
0xe2 0x80 0x8b
ZERO WIDTH JOINER , który poprzedza https.źródło
Ten sam błąd występuje podczas używania curl w witrynie https, takiej jak
jak wskazał ganesh , było to spowodowane tym, że moja wersja curl nie była obsługiwana przez SSL. wrócił i pobrał wersję z ssl i działało dobrze.
źródło
Właśnie ponownie skompilowałem curl z opcjami konfiguracji wskazującymi na folder biblioteki openssl 1.0.2g i folder include, i nadal otrzymuję tę wiadomość. Kiedy robię ldd na curl, nie pokazuje, że używa albo
libcrypt.so
albolibssl.so
, więc zakładam, że musi to oznaczać, że chociażmake
imake install
powiodło się bez błędów, to jednak curl nie ma obsługi HTTPS? Konfiguracja i wykonanie wyglądały następująco:Powinienem wspomnieć, że
libssl.so.1
jest w/local/scratch/PACKAGES/local/lib
. Nie jest jasne, czy--with-ssl
opcja powinna wskazywać tam, czy też do katalogu, w którym instalacja openssl umieściła plik openssl.cnf. Wybrałem to drugie. Ale jeśli miałby to być pierwszy, program powinien zakończyć się niepowodzeniem z błędem polegającym na tym, że nie mógł znaleźć biblioteki.źródło
Określenie protokołu w adresie URL może rozwiązać problem.
Miałem podobny problem (podczas korzystania z klienta php curl):
Przekazywałem domenę.com zamiast sftp: //domain.com, co prowadzi do tego mylącego błędu:
źródło