
apt-get install <package>
またはを介してパッケージをインストールしaptitude install <package>
てからを使用して削除すると、apt-get purge <package>; apt-get autoremove --purge
システムは以前と同じ状態ではありません。まだ別のパッケージがインストールされています。
追加パッケージは、図のようにサイレントインストールとして表示されますapt-mark showauto
。
つまり、これはUbuntu 18.04 g++-8
、awayで発生しますcpp-8 gcc-8 libasan5:amd64 libcc1-0:amd64 libgcc-8-dev:amd64 libisl19:amd64 libmpc3:amd64 libmpfr6:amd64 libstdc++-8-dev:amd64 libubsan1:amd64
。 APT出力を解析せずにこれを防ぐためのきちんとした方法はありますか?
答え1
autoremove
期待どおりに削除されない理由は、インストールされたパッケージがインストールされている他のパッケージへの弱い依存関係を自動的に満たすためです。お客様の場合はdpkg-dev
仮想パッケージをお勧めしますので、自動依存関係で既にインストールされており、c-compiler
提供されたパッケージはc-compiler
インストール後も維持されます。
つまり、パッケージAがインストールされており、パッケージBへの依存性は弱いが、パッケージBはまだインストールされていない。後でパッケージCをインストールし、パッケージBへの依存関係がある場合(強力または弱いがパッケージBの構成を考慮するapt
)、パッケージBもインストールされ、サイレントインストールとしてマークされます。ただし、パッケージCを削除してもパッケージAは「興味深い」ままになるため、パッケージBは自動削除の対象とは見なされませんapt
。
あなたできる弱い依存関係を無視する必要がありますがautoremove
(デフォルトで推奨されている)、これは予想または望むよりも多くのパッケージが移植可能になる可能性があります。
私はこれに対する良い解決策を知りません。aptitude
自動削除の面ではより積極的ですが、すべての状況を処理することはできません。
バラよりapt-get dist-upgradeとapt-get autoremoveと対話する方法に関する推奨事項と提案は何ですか?そして「apt-get autoremove」が機能しないのはなぜですか?これについて詳しく学んでください。