この質問は、エラーメッセージの理由に関するものです。 sources.list
などの構成ファイル内の重複するエントリは、自動的に修正するのがかなり簡単で、かなり簡単にスクリプト化できるように思えます、IMHO。
このエラーメッセージに関する正規の質問について Anwarの回答 によれば、
Sources.listに次のような行がある場合
deb http://archive.ubuntu.com/ubuntu precise universe
次に、以下のような別の行を含めることはできません(ファイルにあります)
deb http://archive.ubuntu.com/ubuntu precise main universe
これは解決するのがかなり簡単なことのようです-行をトークンに分割し、2つをマージします。
それでも、Ask Ubuntuの複数の投稿で実際にapt-get
を実行しようとするとエラーが表示されますが、You may want to run apt-get update to correct these problems
は明示的にユーザーにapt-get update
を伝えます。
apt-get
がこれらを自動的に解決しない特別な理由はありますか?これを手動で修正することが実際に望ましい何らかの設計概念/推論はありますか?
それでも、
apt-get
は明示的にユーザーに伝えますYou may want to run apt-get update to correct these problems
でも、Ask Ubuntuの複数の投稿で、実際に実行しようとするとエラーが表示されますapt-get update
。
ただし、このエラーが表示されるのはそれだけではありません。ほとんどの人がapt-get update
ソースに変更を加えた後、これは完全に問題ありませんが、これは他のapt操作でも発生する可能性があります。
$ Sudo vim /etc/apt/sources.list
[Sudo] password for muru:
$ Sudo apt install vim-gnome
Reading package lists... Done
Building dependency tree
Reading state information... Done
vim-gnome is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
W: Duplicate sources.list entry http://jp.archive.ubuntu.com/ubuntu/ trusty/main AMD64 Packages (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-AMD64_Packages)
W: Duplicate sources.list entry http://jp.archive.ubuntu.com/ubuntu/ trusty/main i386 Packages (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_trusty_main_binary-i386_Packages)
W: You may want to run apt-get update to correct these problems
ここでの問題は、2つの警告がいくぶん独立して生成されることです。
W: You may want to run apt-get update to correct these problems
は、aptキャッシュの構築中にエラーが発生した場合に出力されます。これはすべてを網羅する一般的なソリューションです。これを出力するコードは、発生したエラーを知りません(または気にしません)が、キャッシュを構築し、新しいパッケージをフェッチするときに発生する可能性のあるほとんどのエラーを想定することは合理的だと思いますリストは解決策かもしれません。 (誰かが走ったので私たちが見たすべての適切な問題を考えてくださいapt-get install
またはapt-get upgrade
を実行せずにapt-get update
。)
しかし、開発者はそれが素晴らしい提案ではないことを知っています。見る - apt-pkg/cachefile.cc
:
/* This sux, remove it someday */
if (_error->PendingError() == true)
_error->Warning(_("You may want to run apt-get update to correct these problems"));
(いつものように、パッチは歓迎されるべきです。)
では、apt-getがこれらを自動的に解決しない特別な理由はありますか?
なぜなら、私見では、これは常にPEBCAKの結果だからです。 add-apt-repository
は、重複するエントリを追加しないように十分にスマートです。したがって、このエラーは常に誰かがソースを手動で編集したときに発生します。また、人間には興味深いエラーが発生する可能性が無限にあるため、自動的に修正するのは安全ではありません。