27

これは本当にイライラします。標準のcurlコマンドを実行しようとすると、このエラーが発生し続けます。

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

誰もがそれを修正する方法を知っていますか?

4

13 に答える 13

55

AlpineLinuxでこの正確な問題が発生しました。

修正は、curlに加えてcurl-devをインストールすることでした。

于 2017-01-14T15:00:18.080 に答える
18

ほとんどの場合、curlが使用しようとしている1つ以上のオプションを知らないcurl古いものを使用する新しいものがあります。libcurl

curl -Vこれが表示され、 ldd [path to curl]curlが使用するすべての共有ライブラリが表示されます。

于 2012-07-27T18:51:40.450 に答える
15

私はちょうどこの問題に自分で遭遇しました。少し大雑把な調査を行った結果、このバグトラッカーのエントリが見つかりましたが、更新してもうまくいきませんでした。ただし、最近、ソースからの最新バージョンをlibcurl作成したので、ディレクトリ構造が混同されていることに関係しているに違いないと思いました。おそらくまったく同じ状況ではないと思いますが、Mountain Lionが同様のエラーを発生させたため、問題を修正するために行った手順で問題が解決する可能性があります。

まず、実行which curlして、バイナリがどこから呼び出されているかを判別します。次に、を実行して、場所が実際に存在することを確認しますlocate -r /curl$。そうでない場合(私の場合はこれが問題でした)、のような明らかに不要なcurlパスを無視して、によって提供されるすべてのフルパスを使用して実行してみてください。locatepython-pycurl

動作するものを見つけたら、見つかったものからシンボリックリンクを作成するwhichか、後者を削除するとシェルが正しいものを自分で見つけることができるかどうかを確認できます。私にとって、修正は削除するのと同じくらい簡単で、/usr/local/bin/curl正しくwhich curl応答し/usr/bin/curlcurlそれ自体が通常の操作に戻りました。

于 2012-07-27T01:53:23.337 に答える
11

ソースからカールを作成したばかりの場合は、実行sudo ldconfigして修正します。

于 2017-07-20T22:15:41.563 に答える
8

これは、UbuntuにソースからcURLをインストールした後に発生したエラーと同じです。

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

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

問題を解決するために、ダウンロードした最新のcurlフォルダーから他のフォルダーをコピーlibcurl.soして、既にマシンにあるものを上書きしました。

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

これで私の問題は修正されました。

$ 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...]
于 2015-04-17T14:21:09.983 に答える
3

これは、cURLを/ usr / local/binではなく/usr/ binに再インストールすることで修正できます。これは、Ubuntu 12.04を別の場所にインストールすると、動作がおかしくなるためです。

また、これは可能な修正である可能性がありますが、注意してください

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

つまり、のバイナリは、/usr/local/bin実際にはシステムが探しているものではないか、古くなっているか、正しく機能できません。単純なシンボリックリンクが必要です。


安全のためにあなたも

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

バージョンをln -s変更する前に。/usr/bin/curl

于 2013-12-18T13:16:46.953 に答える
3

このエラーも発生しましたが、Mountain Lionを実行していないため、どのシステムでも確実に正しく処理するためのシンプルでクリーンな方法が必要でした。(注1:古いARMv7ChromebookのクルトンUbuntu/ LXDE chrootを使用しています。)(注2:ソースから夜間リリースをビルドしました。従来の方法でcurlをインストールしても問題はありませんでしたsudo apt-get install curl。)

バージョンを確認するとcurl -V、curlの新しいナイトリービルドバージョン:7.51.1-20161107が表示されましたが、古いlibcurl:7.22 ...

私はこれが問題だったという予感がありました。シンボリックリンクをいじってみましたが、うまくいかず、めちゃくちゃになっていたので、公式インストールページhttps://curl.haxx.se/docs/install.htmlを参照しました。

静的ライブラリのコンパイルを強制するには、次のようにconfigureを実行して共有ライブラリの作成を無効にします。

./configure --disable-shared

そこで、curlソースディレクトリから次のコマンドを実行しました。

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

これで、curlバージョンがlibcurlバージョンと一致し、機能します。

于 2016-11-07T04:53:21.477 に答える
1

同様の問題が発生しました(Ubuntu 12.04)。私は手動でcurlをインストールしusr/local/bin、入力したコマンドはすべて与えていましたcurl:(48) An unknown option was passed in to libcurl

sudo make uninstallcurl( )をアンインストールし、apt-get( )からインストールすることで修正しました。sudo apt-get install curlこれにより、curlが自動的にに配置されusr/binます。それからそれはうまくいきました!

于 2013-05-13T13:06:38.280 に答える
1

cygwinで動作するように手動でビルドcurlhttps、すべてが正常に動作していたときに、同じ問題に直面しました

ある日まで、セットアップをcurl実行してパッケージを更新しましたが、パッケージを更新cygwinしなかったlibcurl4ため、同じエラーが発生し始めました。

次のコマンドを実行して、curlのバージョン情報を確認しました。

$ 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

そのため、cygwinがパッケージcurl7.54.1libcurlに更新したが、それでも7.52.1であったことがわかりました。

そのため、パッケージをアンインストールしてcurl再インストールするとlibcurl、すべてが正常に実行されました。

$ 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 -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
于 2017-08-01T12:00:03.853 に答える
1

これをmacosで入手し、どういうわけかcurlを自作からインストールしてリンクしました。解決策は次のとおりです。

  • カールを見つける:(which curl/usr/local/bin/curlの場合)
  • それを削除します(すでに/ usr / binのものでない限り)rm /usr/local/bin/curl:。

which curl与える/usr/bin/curl

于 2019-05-11T12:52:31.430 に答える
0

Ubuntu 16.04 LTSでは、/ etc/profileのLD_LIBRARY_PATHに/usr/ local / libを追加しました(LD_LIBRARY_PATH = / usr / local / lib:$ LD_LIBRARY_PATH; export LD_LIBRARY_PATH)

于 2017-03-30T07:41:36.953 に答える
0

パッケージ化されたインストールを介してソースからコンパイルした後、同じ問題が発生し、次の正しいフラグで解決しましたconfigure

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

--libdir=オプションがない場合、私の代わりにlibcurlの更新バージョンをインストールしていましたが、新しいバイナリはまだ古いライブラリにアクセスしていたため、互換性がありませんでした。/usr/lib/usr/lib64curl

于 2017-12-26T13:40:02.463 に答える
-1

--urlパラメータを削除します。

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

于 2012-07-26T21:55:13.040 に答える