curl: (48) une option inconnue a été passée à libcurl

C'est vraiment frustrant. Je n'arrête pas de recevoir cette erreur en essayant d'exécuter une commande curl standard:

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

Quelqu'un sait comment le réparer?

16
demandé sur Zaheer 2012-07-27 01:09:07

12 réponses

j'ai moi-même rencontré ce problème. Un peu de recherche rapide m'a conduit à ce bug tracker entrée, mais la mise à jour n'a pas fait l'affaire. J'ai récemment construit la nouvelle version de libcurl à partir de la source, donc j'ai pensé que ça devait être en rapport avec la structure du répertoire qui se mélange. Je suis sûr que vous n'êtes pas exactement dans la même situation, mais peut-être que Mountain Lion a introduit une erreur assez similaire que les mesures que j'ai prises pour résoudre le problème pourrait être en mesure de aider.

tout d'Abord, exécutez which curl pour déterminer d'où le binaire est appelé. Assurez-vous que l'emplacement existe réellement en exécutant locate -r /curl$. Si ce n'est pas le cas (c'était le problème dans mon cas), essayez de lancer curl en utilisant tous les chemins complets fournis par locate, ignorant les évidemment superflus comme python-pycurl.

une Fois que vous avez trouvé un qui fonctionne, vous pouvez créer un lien symbolique à partir de l'un which trouvé, ou bien vérifiez si vous retirez ce dernier permettra à l'interpréteur de commandes de trouver seul le bon. Pour moi, la solution était aussi simple que de retirer /usr/local/bin/curl, provoquant which curl répondre correctement /usr/bin/curl et curl de revenir à un fonctionnement normal.

11
répondu andkerosine 2012-07-27 01:53:23

je viens d'avoir ce problème avec Alpine Linux.

La solution était d'installer curl-dev en plus de roulage.

44
répondu rix 2017-01-14 15:00:18

vous avez probablement un nouveau curl qui utilise un ancien libcurl qui ne sait pas d'une ou de plusieurs options curl essaie d'utiliser.

curl -V et ldd [path to curl] va vous montrer toutes les bibliothèques partagées.

14
répondu Daniel Stenberg 2016-05-09 17:01:14

C'est la même erreur que j'ai eue après avoir installé cURL depuis la source sur Ubuntu.

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

en regardant la version de cURL a montré que curl avait mis à jour mais utilisait l'ancienne version de libcurl:

$ 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

Pour résoudre mon problème, j'ai copié libcurl.so et d'autres du dernier dossier curl que j'ai téléchargé et surligné ceux déjà sur ma machine.

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

Cela a réglé mon problème.

$ 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
répondu ethicalhack3r 2015-04-17 14:21:09

si vous venez de construire votre boucle à partir de la source, exécutez sudo ldconfig pour le fixer.

4
répondu Kevin Murda 2017-07-20 22:15:41

cela peut être corrigé en réinstallant cURL dans /usr / bin au lieu de /usr/local/bin car Ubuntu 12.04 se comporte bizarrement lorsque vous installez à des endroits différents

Aussi, cela peut être une solution possible, mais attention

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

cela signifie, le binaire dans /usr/local/bin n'est pas vraiment celui que le système recherche ou est dépassé ou ne peut pas fonctionner correctement. Un simple lien symbolique est nécessaire.


Pour être sûr que vous pourriez aussi bien

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

avant ln -s-ing /usr/bin/curl fin de la version.

3
répondu Vijay Kumar Kanta 2016-05-09 17:07:06

j'ai eu un problème similaire (Ubuntu 12.04). J'ai installé manuellement curl usr/local/bin et de toute commande de type I a été de donner curl:(48) An unknown option was passed in to libcurl

j'ai corrigé la désinstallation de boucle (sudo make uninstall) et l'installer à partir d'apt-get (sudo apt-get install curl), qui place automatiquement curl dans usr/bin. Puis il a travaillé!

1
répondu PGreen 2013-05-13 13:06:38

j'ai aussi eu cette erreur, mais je ne Cours pas le Mountain Lion, et je voulais un moyen simple et propre pour l'obtenir correctement pour sûr - sur n'importe quel système. (Note n ° 1: il m'arrive d'être dans un crouton Ubuntu/LXDE chroot sur un vieux ARMv7 Chromebook.) (Note #2: j'ai construit la sortie nocturne à partir de la source. Je n'ai eu aucun problème à installer curl de la manière traditionnelle, i.e. sudo apt-get install curl.)

quand j'ai coché la version curl -V il a montré ma toute nouvelle version de construction nocturne pour curl: 7.51.1-20161107, mais une ancienne libcurl: 7.22...

j'ai eu une intuition que c'était le problème. J'ai essayé de jouer avec des liens symboliques, mais ça ne marchait pas pour moi et je faisais juste un désordre, donc j'ai consulté la page d'installation officielle: https://curl.haxx.se/docs/install.html.

pour forcer une compilation de bibliothèque statique, désactiver la création de bibliothèque partagée en exécutant configure comme:

./ configure --disable-shared

alors j'ai fait les recherches suivantes À partir de mon curl répertoire source:

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

maintenant la version curl correspond à la version libcurl, et cela fonctionne.

1
répondu another anonymous 2016-11-07 04:53:21

On Ubuntu 16.04 LTS I just added / usr/local / lib to the LD_LIBRARY_PATH in / etc / profile (LD_LIBRARY_PATH= / usr/local / lib: $ LD_LIBRARY_PATH; export LD_LIBRARY_PATH)

0
répondu user4638415 2017-03-30 07:41:36

j'ai fait face à la même question sur cygwin, quand j'ai construit manuellement curlhttps et tout fonctionnait bien

jusqu'au jour où j'ai mis à jour l' curl colis en cours d'exécution cygwin installation et de ne pas mettre à jour le paquet libcurl4, et a commencé à avoir la même erreur.

j'ai vérifié les informations de la version curl en exécutant:

$ 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

alors j'ai trouvé que cygwin a mis à jour le paquet curl 7.54.1 mais libcurl était encore 7.52.1

alors j'ai désinstallé le paquet curl et libcurl et réinstallé puis tout allait bien à nouveau.

$ 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

Vérifié curl informations de version de nouveau:

$ 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
répondu AbhiNickz 2017-08-01 12:00:03

est entré dans le même problème après avoir compilé à partir de la source sur une installation packagée, résolu avec les bons drapeaux avec configure:

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

Sans --libdir= option, mine installait une version mise à jour de libcurl en /usr/lib au lieu de /usr/lib64 et la curl le binaire accédait encore aux anciennes bibliothèques, ce qui conduisait à une incompatibilité.

0
répondu Hoggins 2017-12-26 13:40:02

Chute de l' --url paramètre:

curl https://install.meteor.com | /bin/sh

-1
répondu Pierre De Wilde 2012-07-27 04:11:58