curl:(48)一个未知的选项被传递给libcurl

Zah*_*eer 24 curl install libcurl meteor

这真令人沮丧.尝试运行标准curl命令时,我不断收到此错误:

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

谁知道怎么修它?

rix*_*rix 54

刚刚与Alpine Linux有这个问题.

修复是除了curl之外还安装curl-dev.

  • 阿尔卑斯山在这里,但对我们来说是一个`更新; apk upgrade`解决了这个问题.谢谢你的分享. (4认同)
  • 这对我来说也是一个解决方案.这与AbhiNickz关于libcurl版本的答案有关.当你安装curl-dev时,它还会安装libcurl的更新版本,现在它将与curl的版本相匹配.之前,他们不匹配. (2认同)

Dan*_*erg 18

很可能你有一个更新的curl,使用较旧的libcurl,不知道curl尝试使用的一个或多个选项.

curl -V将显示此信息ldd [path to curl]并将显示curl使用的所有共享库.


小智 14

我自己也遇到过这个问题.一些粗略的研究让我进入了这个bug跟踪器条目,但更新并没有成功.我最近构建了libcurl源代码的最新版本,所以我认为它必须与目录结构混淆有关.我敢肯定你可能不是完全相同的情况,但也许Mountain Lion引入了类似的错误,我采取的解决问题的步骤可能会有所帮助.

首先,运行which curl以确定从哪里调用二进制文件.然后通过运行确保该位置确实存在locate -r /curl$.如果没有(这是我的问题),尝试curl使用提供的所有完整路径运行locate,忽略明显多余的路径python-pycurl.

一旦你找到一个有效的符号链接,你可以从which找到的符号链接创建符号链接,或者检查删除后者是否允许shell自己找到正确的符号链接.对我来说,修复就像删除一样简单/usr/local/bin/curl,导致which curl正确响应/usr/bin/curl并且curl自身恢复正常操作.

  • ...继续我最终将curl文件从`usr/local/bin`复制到`usr/bin`并且它有效!什么样的恶梦.我希望这篇文章可以帮助别人. (2认同)

eth*_*k3r 8

这是我在Ubuntu上从源安装cURL后得到的同样错误.

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

查看cURL的版本显示curl已更新,但使用的是旧版本的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
Run Code Online (Sandbox Code Playgroud)

为了解决我的问题,我libcurl.so从我下载的最新curl文件夹中复制了其他文件,并覆盖了我机器上已有的文件夹.

cp /tmp/curl-7.41.0/lib/.libs/libcurl.so* /usr/local/lib/
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.

$ 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...]
Run Code Online (Sandbox Code Playgroud)


小智 7

如果您只是从源代码构建卷发,请运行sudo ldconfig以进行修复。