CLI はインストールしましたkeybase
が、keybase
残念ながらパッケージには libadwaita、GTK、その他多数の巨大な GUI を必要とする GUI クライアントも含まれているため、インストールしたパッケージの数と WSL が使用するディスク容量が大幅に増加します。このため、GUI の依存関係をすべて持ち込まないように手動でインストールしkeybase
、dpkg -i
余分なものを一切使用せずに CLI を使用できるようにしました。
しかし、それが原因apt
で が動作しなくなりました。 とはまったく関係のない他のパッケージをインストールしようとするとkeybase
、次のエラー メッセージが表示されます。
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
keybase : Depends: libappindicator1 but it is not going to be installed or
libayatana-appindicator1 but it is not going to be installed
Depends: libgconf-2-4 but it is not going to be installed
Depends: libgtk-3-0 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
私が見つけた唯一の解決策は、keybase
で を一時的に削除し、 コマンドdpkg
を実行しapt
てから再インストールすることですkeybase
。 しかし、私はこの解決策が好きではありませんkeybase
。 をシステムに残しておきたいのです。 これらの満たされていない依存関係を無視する方法はありますかapt
? あるいは、 を壊さずに、システム上で満たされていない依存関係を保持する方法はありますかapt
?
答え1
システム上で満たされていない依存関係がある場合、apt を使用してソフトウェアをアップグレードまたはインストールすることはできません。
- 「アップグレードには使用できません「セキュリティパッケージのアップグレードが含まれます。依存関係が満たされていないシステムはないセキュリティアップデートを受け取れません。そのため、ほとんどのユーザーにとって、システムをこの状態のままにしておくのは賢明ではありません。
ほとんどのUbuntuユーザーにとって、満たされていない依存関係Ubuntu 以外のソフトウェアや間違ったバージョンのソフトウェアをインストールした場合に発生します。Ubuntu 以外のパッケージや間違ったバージョンのパッケージをアンインストールすると、問題は解決します。
勇敢な上級ユーザー向け、apt および dpkg には、限定的なオーバーライドを許可するオプションがあります--force
(を参照man dpkg
)。これらは Ubuntu 以前の時代の名残であり、現在ではほとんど使用されていませんが、探しているものかもしれません。たとえば、--force-depends-version
:
depends-version: 依存関係をチェックするときにバージョンを気にしません。これは Pre-Depends フィールドと Depends フィールドに影響します。
警告: 強制は、上流リリースで依存関係の問題が解決されるまで、慎重に、そして一時的にのみ使用する必要があります。apt と dpkg は、間違ったバージョンのパッケージについて激しく (そして正しく!) 文句を言い続ける可能性があります。その他の副作用が発生する場合があります。
- 強制パッケージを恒久的な解決策として使用しないでください。それは悲惨な結末を迎え、システムが壊れることになります。永続的な非 deb パッケージ ソリューションが必要な場合は、ソースからのビルド、代替アプリケーション、代替パッケージ方法などを検討してください。強制パッケージがインストールされているシステムをリリース アップグレードしないでください。これらのパッケージが原因でリリース アップグレードが著しく失敗する可能性があります。