apt-getがパッケージの問題を特定できないインストールを検出した場合、エラーで続行します


11

次を実行すると:

sudo apt-get install vim abcde php5-cli

予想される動作である次のメッセージで失敗します。

E:パッケージabcdeが見つかりません `。

私はそれをインストールしたいのですvimが、パッケージabcdeをインストールし続けるだけでエラーが発生した場合でもphp5-cliapt-get一部のパッケージが見つからない場合でも、リストを下に移動したいと考えています。

私はもう試した:

sudo apt-get install --ignore-missing vim abcde php5-cli

回答:


9

短い答え:実際にはこれを望まない可能性があります。

何故ですか? この特定の機能については多くの議論がありました。その1つは、この(重複する)バグレポートと、リンクされているバグレポートです。

バグレポートでの議論では、「-ignore-missing」が当てはまるのは、「apt-get」の情報によって存在するはずのパッケージのダウンロードに問題がある場合に限られることも説明されています。これは、ここドキュメントでも説明されています。

回避策はありますか?

以前のソースを読んだ後でもこれを実行することが非常に確かである場合は、一方で、ユーザー「Aleksandr Levchuk」によって指定されたもののような(準最適だがかなり安全な)オプションがここにあります

for i in package1 package2 package3; do
  sudo apt-get install $i
done

または、必要に応じて、最小限の変更を加えたワンライナー:

for i in package1 package2 package3; do sudo apt-get install $i; done

パッケージがたくさんある場合は、-y確認を繰り返し求めないように追加できます。

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

または:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

お役に立てれば。


ちなみに、Bashの代わりにFishを使用している私のような人は、シェルを切り替えるために、まず「bash」と入力する必要があります。次に、何らかの理由でFishシェルが機能しないため、コマンドをコピーして貼り付けます。Bashで正常に動作します。
Ev- 2016

1

これを回避する1つの方法は、パッケージごとに apt-getを1回呼び出すことです。

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

または関数として

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

install_ignore_fail package1 package2 package3
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.