web-gelistirme-sc.com

curl: (48) libcurl'a bilinmeyen bir seçenek girildi.

Bu gerçekten sinir bozucu. Standart bir curl komutu çalıştırmaya çalışırken bu hatayı alıyorum:

curl --url https://install.meteor.com | sh
curl: (48) An unknown option was passed in to libcurl

Nasıl düzeltileceğini bilen var mı?

18
Zaheer

Ben sadece bu problemi kendim yaşadım. Biraz araştırma, beni bu hata izci girişine yönlendirdi , ama güncelleme işin yolunda gitmedi. Geçenlerde kaynaktan libcurl dosyasının en yeni sürümünü oluşturdum, bu yüzden dizin yapısının karışmasıyla ilgili bir şey olması gerektiğini düşündüm. Eminim muhtemelen tam olarak aynı durumda değilsindir, ama belki de Mountain Lion, sorunu çözmek için attığım adımların yardımcı olabileceği konusunda yeterince benzer bir hata yaptı.

İlk olarak, ikiliden nereden çağrılacağını belirlemek için which curl komutunu çalıştırın. Ardından locate -r /curl$ komutunu çalıştırarak konumun gerçekten var olduğundan emin olun. Olmazsa (benim durumumda sorun buydu), curl tarafından sağlanan tüm yolları kullanarak locate komutunu çalıştırmayı deneyin, python-pycurl gibi açıkça gereksiz olanları görmezden gelin.

İşe yarayan bir tane bulduğunuzda, bulduğunuz which öğesinden bir bağlantı oluşturabilir veya ikincisini kaldırmanın Shell'in doğru olanı bulmasına izin verip vermeyeceğini kontrol edebilirsiniz. Benim için düzeltme, /usr/local/bin/curl 'yu kaldırmak kadar basitti, which curl' un /usr/bin/curl ve curl 'nin normal işleme geri dönmesiyle doğru şekilde yanıt vermesine neden oldu.

13
andkerosine

Alpine Linux ile tam olarak bu sorunu yaşadım.

Düzeltme curl ek olarak curl-dev yüklemek oldu.

51
rix

Büyük olasılıkla bir veya daha fazla seçenek curl kullanmaya çalışan daha eski bir curl kullanan daha yeni bir libcurl var.

curl -V bunu gösterecek ve ldd [path to curl] size tüm paylaşılan kütüphanelerin kıvrılma kullanımlarını gösterecektir.

14
Daniel Stenberg

Bu, Ubuntu'daki kaynaktan cURL'yi yükledikten sonra aldığım hatadır.

$ curl http://www.google.com
curl: (48) An unknown option was passed in to libcurl

CURL'ın sürümüne bakmak, curl’nin güncellendiğini ancak libcurl’un eski sürümünü kullandığını gösterdi:

$ curl --version
curl 7.41.0 (x86_64-unknown-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3

Sorunumu çözmek için, indirdiğim en yeni curl klasöründen libcurl.so ve diğerlerini kopyaladım ve makinemdekilerin üzerine yazdım.

cp /tmp/curl-7.41.0/lib/.libs/libcurl.so* /usr/local/lib/

Bu sorunumu çözdü.

$ curl --version
curl 7.41.0 (x86_64-unknown-linux-gnu) libcurl/7.41.0 OpenSSL/1.0.1 zlib/1.2.3.4

$ curl -I http://www.google.com
HTTP/1.1 302 Found
[...snip...]
6
ethicalhack3r

Curl'unuzu kaynağından yeni oluşturduysanız, düzeltmek için Sudo ldconfig komutunu çalıştırın.

4
Kevin Murda

Bu, cURL'yi/usr/local/bin yerine/usr/bin yerine/usr/bin dizinine yeniden yükleyerek düzeltilebilir.

Ayrıca, bu olası bir düzeltme olabilir, ancak dikkatli olun

ln -s /usr/bin/curl /usr/local/bin/curl

Bu, /usr/local/bin içindeki ikili sistemin gerçekten aradığı, modası geçmiş olduğu veya düzgün çalışamadığı bir sistem olmadığı anlamına gelir. Basit bir sembolik link gereklidir.


Güvende olmak için olabilir

mv /usr/local/bin/curl /usr/local/bin/curl.bak

ln -s- _ _ _ /usr/bin/curl versiyonunun bitmesinden önce.

3

Benzer bir problemim vardı (Ubuntu 12.04'te). Curl usr/local/bin içinde el ile kurdum ve yazdığım herhangi bir komut curl:(48) An unknown option was passed in to libcurl veriyordu

Curl'i (Sudo make uninstall) kaldırmayı ve otomatik olarak Sudo apt-get install curl içine curl yerleştiren apt-get (usr/bin) öğesinden kurdum. Sonra işe yaradı!

1
PGreen

Ayrıca bu hatayı aldım, ancak Mountain Lion'u çalıştırmıyorum ve herhangi bir sistemde kesin olarak doğru bulmanın basit ve temiz bir yolunu istedim. (Not # 1: Eski bir ARMv7 Chromebook'ta Ubuntu/LXDE chrootu oldum.) (Not # 2: Gece yayınını kaynağından yaptım. Geleneksel yoldan kıvrım kurmakta sorun yaşamadım, yani Sudo apt-get install curl. )

curl -V versiyonunu kontrol ettiğimde curl: 7.51.1-20161107 için yeni bir sürüm oluşturduktan sonra, eski bir libcurl: 7.22 ...

Bir sorun vardı, sorun buydu. Sembolik bağlantılarla uğraşmayı denedim ama benim için işe yaramadı ve sadece bir karışıklık yaratıyordum, bu nedenle resmi kurulum sayfasına baktım: https://curl.haxx.se/docs/install.html .

Statik bir kütüphane derlemesini zorlamak için, config gibi çalışarak paylaşılan kütüphane oluşumunu Devre dışı bırakın:

./configure --disable-shared

Böylece curl kaynak dizininden aşağıdakini koştum:

  1. Sudo make uninstall
  2. ./configure --disable-shared
  3. makename__
  4. Sudo make install

Şimdi curl sürümü libcurl sürümüyle eşleşiyor ve çalışıyor.

1

cygwin üzerinde aynı sorunu gördüm, curl ile çalışmak için https öğesini manuel olarak oluşturduğumda ve her şey yolunda giderse 

bir güne kadar curl setup komutunu çalıştırarak cygwin paketini güncelledim ve libcurl4 paketini güncellemedi ve aynı hatayı almaya başladım.

Curl sürüm bilgisini çalıştırarak kontrol ettim:

$ curl -V
curl 7.54.1 (i686-pc-cygwin) libcurl/7.52.1 OpenSSL/1.0.2j zlib/1.2.8 libidn2/2.0.2 libpsl/0.17.0 (+libidn2/0.11) libssh2/1.7.0 nghttp2/1.14.0
Release-Date: 2017-06-14
Protocols: dict file ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: Debug IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy Metalink PSL

Böylece, cygwin'in curl paketini 7.54.1 olarak güncellediğini buldum, ancak libcurl hala 7.52.1

Bu yüzden curl ve libcurl paketlerini kaldırdım ve yeniden yükledim, sonra her şey yeniden düzgün çalışıyordu.

$ apt-cyg remove libcurl4 curl
Removing libcurl4
Package libcurl4 removed
Removing curl
Package curl removed

apt-cyg install curl libcurl4
Installing curl
curl-7.54.1-1.tar.xz: OK
Unpacking...
Package curl requires the following packages, installing:
cygwin libcurl4 libmetalink3 libopenssl100 zlib0
Package cygwin is already installed, skipping
Installing libcurl4
libcurl4-7.54.1-1.tar.xz: OK
Unpacking...
Package libcurl4 requires the following packages, installing:
ca-certificates cygwin libgcc1 libgssapi_krb5_2 libidn2_0 libnghttp2_14 libopenldap2_4_2 libopenssl100 libpsl5 libssh2_1 zlib0
Package ca-certificates is already installed, skipping
Package cygwin is already installed, skipping
Package libgcc1 is already installed, skipping
Package libgssapi_krb5_2 is already installed, skipping
Package libidn2_0 is already installed, skipping
Package libnghttp2_14 is already installed, skipping
Package libopenldap2_4_2 is already installed, skipping
Package libopenssl100 is already installed, skipping
Package libpsl5 is already installed, skipping
Package libssh2_1 is already installed, skipping
Package zlib0 is already installed, skipping
Package libmetalink3 is already installed, skipping
Package libopenssl100 is already installed, skipping
Package zlib0 is already installed, skipping
Package curl installed
Package libcurl4 is already installed, skipping

Curl versiyon bilgisi tekrar kontrol edildi:

$ curl -V
curl 7.54.1 (i686-pc-cygwin) libcurl/7.54.1 OpenSSL/1.0.2j zlib/1.2.8 libidn2/2.0.2 libpsl/0.17.0 (+libidn2/0.11) libssh2/1.7.0 nghttp2/1.14.0
Release-Date: 2017-06-14
Protocols: dict file ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS Debug IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy Metalink PSL
0
AbhiNickz

Ubuntu 16.04 LTS'de,/etc/profile içindeki LD_LIBRARY_PATH’e/usr/local/lib dosyasını yeni ekledim (LD_LIBRARY_PATH =/usr/local/lib: $ LD_LIBRARY_PATH;

0
user4638415

Paketli bir kurulum üzerinden kaynaktan derlendikten sonra aynı problemle karşılaştım, configureile doğru bayraklarla çözdüm:

./configure --prefix=/usr --libdir=/usr/lib64

--libdir= seçeneği olmadan benimki, libcurl 'nin /usr/lib yerine /usr/lib64' a güncellenmiş bir versiyonunu kuruyordu ve yeni curlbinary hala eski kütüphanelere erişiyor ve uyumsuzluğa yol açıyordu.

0
Hoggins

bunu macos'ta buldum, bir şekilde kıvrılma homebrew'den kuruldu ve bağlandı, çözüm şuydu:

  • kıvrılmayı bul: which curl (benim durumumda /usr/local/bin/curl)
  • çıkarın (eğer zaten/usr/bin biri değilse): rm /usr/local/bin/curl.

şimdi which curl verecek _ /usr/bin/curl

0
localhostdotdev