他のパッケージに依存しない限り、すべての依存パッケージを削除します。

他のパッケージに依存しない限り、すべての依存パッケージを削除します。

packageAが依存する他のすべてのパッケージを削除したいが、依存packageA関係のあるパッケージを削除したいのですが。

$ apt-cache depends packageA
packageA
  Depends: packageB
  Depends: packageC

$ apt-cache depends packageD
  Depends: packageC

$ apt-cache rdepends packageB
  Reverse Depends:
    packageA

$ apt-cache rdepends packageC
  Reverse Depends:
    packageA
    packageD

packageApackageBおよびpackageCpackageD現在インストールされています。を削除したいと思いますpackageApackageBこれが唯一の依存パッケージなので、削除したいとpackageA思います。必須なので、インストールを続ける必要がありますpackageCpackageDを削除したくありませんpackageD

私はそこにいることを知っていますapt autoremove。しかし、apt autoremove実際に使用される「未使用」パッケージがあるので、使用したくありません。しかし、数が多すぎるため、どのパッケージが使用されていないのかわからず、未使用のパッケージをすべてインストールしたくありません。
依存関係は修正されていますが、時間がかかります。今、解決策が必要です。

答え1

適性があなたのためにそうしなければなりません。packageBサイレントインストールとしてマークされている場合

aptitude remove packageA

packageAとを削除しますpackageB。他のパッケージでまだそれを必要とするため、packageC削除されません。

答え2

自動削除などの他のプログラムは見つかりません。私は自動除去を試してみましたが、システムが破損していませんでした。たぶんこれが考慮する価値があるのでしょうか?インストールされているすべてのパッケージのバックアップリストの作成

sudo cp -a /etc/apt/sources.list{,.bak} && sudo apt install apt-clone -y && mkdir ~/mypackages && sudo apt-clone clone ~/mypackages

これで実行できますsudo apt 自動削除問題が発生した場合は復元してください。

sudo apt-clone restore apt-clone-state-ubuntuserver.tar.gz

関連情報