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ı?
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.
Alpine Linux ile tam olarak bu sorunu yaşadım.
Düzeltme curl ek olarak curl-dev yüklemek oldu.
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.
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/22.214.171.124 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/126.96.36.199 $ curl -I http://www.google.com HTTP/1.1 302 Found [...snip...]
Curl'unuzu kaynağından yeni oluşturduysanız, düzeltmek için
Sudo ldconfig komutunu çalıştırın.
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.
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ı!
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:
Sudo make uninstall
./configure --disable-shared
makename__
Sudo make install
Şimdi curl sürümü libcurl sürümüyle eşleşiyor ve çalışıyor.
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
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;
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.
bunu macos'ta buldum, bir şekilde kıvrılma homebrew'den kuruldu ve bağlandı, çözüm şuydu:
which curl(benim durumumda
/usr/local/bin/curl)
rm /usr/local/bin/curl.
şimdi
which curl verecek _
/usr/bin/curl