私はUbuntuに INetSim をインストールしており、このコマンドを実行してプログラムの署名キーをインストールすると、次のようになります。
Sudo wget -O - http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -
メッセージが表示されます:
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try `wget --help' for more options.
なぜこのエラーが発生するのですか?
質問テキストの wget
コマンドがスクリーンショットのコマンドと一致しません。スクリーンショットのコマンドは次のとおりです。
Sudo wget -O http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -
これがサンプルテキストのコマンドです。 公式のINetSimインストール手順 で使用されているコマンドも確認してください。
Sudo wget -O - http://www.inetsim.org/inetsim.org-archive-signing-key.asc | apt-key add -
微妙な違いに注意してください?失敗しているのは、-
とそれに続くURLの間にSudo wget -O
がありません。 -
で試してみると、問題なく動作するはずです。
何が起こったのか、何が起こっていなかったのかを理解するために、-O
(--output-document
フラグは-
がそのURLのコンテンツを標準出力にストリーミングするようにwget
に指示する必要がありました。次のようなコマンドを実行した場合:
wget http://www.inetsim.org/inetsim.org-archive-signing-key.asc
wget
が行うのは、そのファイルをシステム上でローカルにinetsim.org-archive-signing-key.asc
という名前のファイルに保存することだけです。ただし、-O -
を設定し、そのパイプ(|
)を| apt-key add -
に設定すると、コマンドは基本的に、そのファイルのコンテンツを標準のputにストリーミングし、その出力をapt-key add
にパイプして、キーのコンテンツをapt
に追加できるようにします。リポジトリリスト。
また、スクリーンショットは追加のエラーを示しています。
エラー:このコマンドはrootのみが使用できます。
これは、コマンドにダッシュがないことに直接関係しています。他のすべても失敗します。
コマンドのパイプが壊れていると、コマンド全体が失敗し、Sudo
パスワードの入力を求められるポイントに到達することはありません。しかし、コマンドの残りの部分はとにかくまだ解析されています。
したがって、完全なコマンドが失敗したとしても、それでもapt-key
を実行しようとしています。また、1行のコマンドの残りの部分は基本的に前のSudo
で呼び出されたコマンドの残りの部分から切り離されているため(エラーのためにSudo
として呼び出されることはありません)、実行を試みます。通常のユーザーとしてのapt-key
は、次のように言います。
エラー:このコマンドはrootのみが使用できます。
なぜなら、そうです…apt-key
を通常の/特権のないユーザーとして実行しようとすると、確かにエラーになります。