2012-07-26 6 views
12

これは本当にイライラしています。標準のカールコマンドを実行しようとすると、このエラーが発生します。curl:(48)不明なオプションがlibcurlに渡されました

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

誰でも知っていますか?

+1

SuperUserに移動する投票。 – Bruno

+0

設定ファイル( '〜/ .curlrc')に設定がありますか、 – Bruno

+0

そのファイルが見つかりません。私はそれが私のコンピュータ上に存在するとは思わない。ところで、私はOS X Mountain Lionを利用しています – Zaheer

答えて

11

私はこの問題に自分自身を実行しました。ちょっとした研究ではthis bug tracker entryに私が導かれましたが、更新はそのトリックをしませんでした。私は最近、ソースからlibcurlの最新バージョンを作りました。だから、それはディレクトリ構造が混ざり合っていることとは何か関係があります。おそらくまったく同じ状況ではないと確信していますが、おそらくマウンテン・ライオンは、問題を解決するために取った手順が助けになるほどの十分なエラーを導入しました。

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

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

+0

私はどのカールを実行し、指定されたディレクトリが存在しなかったので、locateコマンドを実行しようとしましたが、 dデータベース]パターン... デフォルトデータベース: '/var/db/locate.database 'または$ LOCATE_PATH – Zaheer

+0

ああ、残念ですが、' -r'フラグを使うと正規表現を指定してより良い結果をフィルタリングすることができます。しかし、私は ''カールを見つける(locate curl')を実行して、 "/ curl"で終わるパスを探す必要があるだろうと思います。前と同じように、フルパスを使ってシェルで実行してみてください。あなたはそこから行くことができますまた、 'curl - Daniel Stenbergが 'curl'と' libcurl'のあなたのバージョンが確実に一致しないようにするよう提案しました。 – andkerosine

+1

最後に、ハッキングの束の後、私はそれを修正することができました。すべてのカールファイルを削除し、新しく始めることにしました。私はオンラインからカールをダウンロードし、それを自分でコンパイルしました。次に、私はcurlを実行しようとしたときに '/ usr/bin/curl:error:' /usr/bin/.libs/curl 'が存在しないエラーに遭遇しました。 このスクリプトはカールの単なるラッパーです。 詳細については、libtoolのドキュメントを参照してください。 curlを作成すると、明らかに、 '/ usr/local/bin'ではなく'/usr/bin'に必要なcurlファイルが作成されます。'user/bin'はcurlのmacのデフォルトの場所です(以前は削除していました)。 – Zaheer

-1

--urlパラメータをドロップ:

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

+0

まだ動作しません:( – Zaheer

11

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

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

+0

これは問題の最も簡潔な説明です。 –

1

私は(Ubuntu 12.04では)同様の問題がありました。 I手動usr/local/binのカールをインストールし、I型任意のコマンドが自動的にusr/binのカールを置いている、私はそれがカール(sudo make uninstall)をアンインストールし、apt-getを(sudo apt-get install curl)からそれをインストール固定curl:(48) An unknown option was passed in to libcurl

を与えました。その後、それは働いた!

3

これは代わりに、Ubuntuのようには/ usr/local/binのでは/ usr /ビンにカールを再インストールすることで固定することができ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バージョンを超える-ing安全です。

+0

Ta!これはUbuntu 12.04(sourceから 'curl 7.48.0'をビルドした後)でも私にとってはうまくいきました。 – isomorphismes

6

これは、UbuntuのソースからcURLをインストールした後に得たのと同じエラーです。 cURLののバージョンを見てみると

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

はカールが更新されていたが、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 

を私がダウンロードした最新のカールフォルダから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...] 
+0

libcurl.a libcurl.la libcurl.so libcurl.so.4 libcurl.so.4.4.0を/ usr/local/libにコピーしました。私はまだ新しいcurlで古いlibcurlを持っています。 curl 7.54.0(x86_64-pc-linux-gnu)libcurl/7.38.0 –

1

また、私はこのエラーを得たが、私はマウンテンライオンを実行していないよ、と私は右確かにそれを得るために、シンプルでクリーンな方法を望んでいた - 任意のシステム上で。 (注意#1:古いARMv7のChromebookのcrouton Ubuntu/LXDE chrootにあることになります)(注2:ソースから夜間のリリースをビルドしました。)curlを伝統的な方法でインストールすることは問題ありませんでした(sudo apt-get install curl)。 )

私はそれはカールのために私のブランドの新しいナイトリービルドバージョンを示したバージョン curl -Vを確認

:7.51.1-20161107が、古いのlibcurl:7.22 ...

私は予感していたこれが問題でした。私はシンボリックリンクを使いこなそうとしましたが、それは私にとってはうまくいかず、私は混乱してしまったので、公式のインストールページ:https://curl.haxx.se/docs/install.htmlに相談しました。

To force a static library compile, disable the shared library creation by running configure like:

./configure --disable-shared

だから私は私のカールソースディレクトリから、次を実行しました:

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

を今すぐcurlバージョンはlibcurlバージョンと一致し、動作します。

+0

しかし、あなたはlibcurlでしかカールしていないので、他のライブラリはすべて手に入れません。 –

23

Alpine Linuxでこの問題が発生しました。

カールに加えてcurl-devをインストールするように修正されました。あなたは自分の建てた場合

+0

どのようにしてcurl-devをインストールしなければならなかったのか私はこれをより良いエンジニアに頼んでいます。 :) –

+1

私はカールデベロッパーをインストールしたので、これ以上調べていないので、それは一日CIを壊しました。 – rix

0

ソースからカールし、sudo ldconfigを実行して修正します。

0

;:私はちょうど/ etc/profileを(輸出LD_LIBRARY_PATHの$ LD_LIBRARY_PATH LD_LIBRARY_PATHは=は/ usr/local/libの)でLD_LIBRARY_PATHに/ usr/local/libを追加Ubuntuの16.04 LTSで

0

私は手動でhttpsで動作するようcurlを構築し、1日、私はcygwinセットアップを実行してcurlパッケージを更新し、パッケージを更新しませんでしたまですべてがうまく

を働いていたとき、私は、cygwinに同じ問題に直面しlibcurl4 、同じエラーが発生し始めました。

私は実行することにより、カールバージョン情報をチェックする:

$ 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のは7.54.1にパッケージcurlを更新することを見つけたが、私はそう7.52.1

でまだlibcurlましたパッケージcurllibcurlをアンインストールして再インストールしてから、すべて正常に動作していました。

再度カールバージョン情報をチェック
$ 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 
0

は、パッケージのインストールの上にソースからコンパイルした後、同じ問題になった、configureで正しいフラグとそれを解決:

​​

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

関連する問題