curl:(48) Se pasó una opción desconocida a libcurl
install meteor (12)
Esto es realmente frustrante. Sigo recibiendo este error cuando intento ejecutar un comando curl estándar:
curl --url https://install.meteor.com | sh
curl: (48) An unknown option was passed in to libcurl
¿Alguien sabe como arreglarlo?
Acabo de encontrarme con este problema. Un poco de investigación superficial me llevó a esta entrada de rastreador de errores , pero la actualización no funcionó. Sin embargo, recientemente construí la versión más nueva de libcurl
desde la fuente, así que pensé que debía ser algo que ver con la estructura del directorio que se mezcla. Estoy seguro de que probablemente no estés exactamente en la misma situación, pero tal vez Mountain Lion haya introducido un error lo suficientemente similar a lo que los pasos que tomé para solucionar el problema podrían ayudarte.
En primer lugar, ejecute which curl
para determinar desde dónde se llama el binario. Luego, asegúrate de que la ubicación exista realmente ejecutando locate -r /curl$
. Si no es así (este fue el problema en mi caso), intente ejecutar curl
utilizando todas las rutas completas que proporciona la locate
, ignorando las que obviamente son superfluas como python-pycurl
.
Una vez que haya encontrado uno que funcione, puede crear un enlace simbólico desde el which
encuentra o verificar si este último permite que el shell encuentre el correcto por sí mismo. Para mí, la solución fue tan simple como eliminar /usr/local/bin/curl
, lo which curl
provocó which curl
respondiera correctamente con /usr/bin/curl
y la curl
volviera al funcionamiento normal.
Acabo de tener este problema exacto con Alpine Linux.
La solución era instalar curl-dev además de curl.
En Ubuntu 16.04 LTS acabo de agregar / usr / local / lib a LD_LIBRARY_PATH en / etc / profile (LD_LIBRARY_PATH = / usr / local / lib: $ LD_LIBRARY_PATH; export LD_LIBRARY_PATH)
Este es el mismo error que estaba recibiendo después de instalar cURL desde la fuente en Ubuntu.
$ curl http://www.google.com
curl: (48) An unknown option was passed in to libcurl
Mirar la versión de cURL mostró que curl se había actualizado pero estaba usando la versión antigua 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
Para resolver mi problema, copié libcurl.so
y otros de la última carpeta de rizos que descargué y sobrescribí los que ya estaban en mi máquina.
cp /tmp/curl-7.41.0/lib/.libs/libcurl.so* /usr/local/lib/
Esto solucionó mi problema.
$ 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...]
Esto puede solucionarse reinstalando cURL en / usr / bin en lugar de / usr / local / bin, ya que Ubuntu 12.04 se comporta de forma extraña cuando instala en diferentes lugares
Además, esto puede ser una posible solución, pero tenga cuidado
ln -s /usr/bin/curl /usr/local/bin/curl
Esto significa que el binario en /usr/local/bin
no es realmente el que el sistema está buscando o está desactualizado o no puede funcionar correctamente. Se requiere un enlace simbólico simple.
Para estar seguro, usted también podría
mv /usr/local/bin/curl /usr/local/bin/curl.bak
Antes de ln -s
-ing finaliza la versión /usr/bin/curl
.
Lo más probable es que tengas un curl
más nuevo que use un libcurl
más antiguo que no conozca una o más opciones que el rizo intenta usar.
curl -V
mostrará esto y ldd [path to curl]
le mostrará todos los usos de curl de bibliotecas compartidas.
Me enfrenté al mismo problema en cygwin
, cuando construí manualmente curl
para trabajar con https
y todo funcionaba bien
hasta que un día actualicé el paquete curl
ejecutando la configuración de cygwin
y no actualicé el paquete libcurl4
, y comencé a recibir el mismo error.
He comprobado la información de la versión curl ejecutando:
$ 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
Así que encontré que cygwin actualizó el paquete curl
a 7.54.1 pero libcurl
todavía estaba en 7.52.1
Así que desinstalé el paquete curl
y libcurl
y reinstalé, entonces todo estaba funcionando bien otra vez.
$ 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
Comprobé la información de la versión del rizo otra vez:
$ 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
Se metió en el mismo problema después de haber compilado desde el origen sobre una instalación empaquetada, lo resolvió con las marcas correctas con configure
:
./configure --prefix=/usr --libdir=/usr/lib64
Sin la opción --libdir=
, el mío estaba instalando una versión actualizada de libcurl en /usr/lib
lugar de /usr/lib64
y el nuevo binario curl
todavía estaba accediendo a las bibliotecas antiguas, lo que /usr/lib64
lugar a incompatibilidad.
Si acabas de construir tu rizo desde la fuente, ejecuta sudo ldconfig
para arreglarlo.
Suelte el parámetro --url
:
curl https://install.meteor.com | /bin/sh
También recibí este error, pero no estoy ejecutando Mountain Lion, y quería una forma simple y clara de hacerlo bien en cualquier sistema. (Nota # 1: resulta que estoy en un chroot de Ubuntu / LXDE en un viejo Chromebook ARMv7). (Nota # 2: Construí el lanzamiento nocturno desde la fuente. No tuve ningún problema con la instalación de rizos de la manera tradicional, es decir, sudo apt-get install curl
.
Cuando verifiqué la versión curl -V
mostró mi nueva versión de compilación nocturna para curl: 7.51.1-20161107, pero una versión antigua de libcurl: 7.22 ...
Tuve un presentimiento de que este era el problema. Intenté jugar con enlaces simbólicos, pero no me funcionó y solo estaba haciendo un lío, así que consulté la página de instalación oficial: https://curl.haxx.se/docs/install.html .
Para forzar la compilación de una biblioteca estática, deshabilite la creación de la biblioteca compartida ejecutando configure como:
./configure --disable-shared
Así que ejecuté lo siguiente desde mi directorio de fuentes curl:
-
sudo make uninstall
-
./configure --disable-shared
-
make
-
sudo make install
Ahora la versión de rizo coincide con la versión de libcurl, y funciona.
Tuve un problema similar (en Ubuntu 12.04). Instalé manualmente curl en usr/local/bin
y cualquier comando que escribí estaba dando curl:(48) An unknown option was passed in to libcurl
Lo arreglé desinstalando curl ( sudo make uninstall
) e instalándolo desde apt-get ( sudo apt-get install curl
), que colocaba automáticamente curl en usr/bin
. Entonces funcionó!