DebianベースのディストリビューションであるLinux Mintを実行しています。逆の依存関係を削除せずにパッケージを削除したいと思います。または、何も削除せずに1つのパッケージの削除をターゲットにしたい。
例:PACKAGE_Aを削除したいのですが、(PACKAGE_X、PACKAGE_Y、PACKAGE_Z)がPACKAGE_Aに依存しており、自動的に削除されます。 X、Y、Zをインストールしたままにし、Aのみを削除する必要があります。残念ながら、X、Y、Zを再インストールすると、PACKAGE_Aも再インストールされます。
削除したい特定のパッケージには、約20の依存関係があり、一部の依存関係は適切なGUI機能にとって重要であると思われます。
Arch Linuxでは、 pacmanのドキュメント は次のように述べています。
依存パッケージを削除せずに、別のパッケージに必要なパッケージを削除するには:
pacman -Rdd package_name
Debianベースのディストリビューションではpacmanを使用していないので、apt-get、Aptitude、またはMint Software Managerで同じ機能を実現するにはどうすればよいですか?
編集:Faheem Mithaの答えは、まさに私が探していたものでした。
dpkg -r --force-depends foo
これにより、依存関係apt-getを削除せずに問題のパッケージが削除され、Mint Software Managerは不満を言いました。ありがとうございました!
私があなたを正しく理解しているなら、他のパッケージも削除せずに、他のパッケージが依存しているパッケージを削除したいでしょう。これは良い考えではないかもしれないことを念頭に置いて、あなたはこれを行うことができます。
dpkg -r --force-depends foo
パッケージの削除用(confファイルは削除されません)。
dpkg -P --force-depends foo
パッケージのパージ用(confファイルare削除)。
使用例:
root@orwell:/home/faheem# dpkg -P --force-depends gcc-4.6-base:AMD64
dpkg: gcc-4.6-base:AMD64: dependency problems, but removing anyway as you requested:
gcc-4.6 depends on gcc-4.6-base (= 4.6.3-14).
libstdc++6-4.6-dev depends on gcc-4.6-base (= 4.6.3-14).
g++-4.6 depends on gcc-4.6-base (= 4.6.3-14).
cpp-4.6 depends on gcc-4.6-base (= 4.6.3-14).
(Reading database ... 454279 files and directories currently installed.)
Removing gcc-4.6-base:AMD64 ...
Processing triggers for ccache ...
Updating symlinks in /usr/lib/ccache ...
このようなアクションを実行すると便利な場合があります。もちろん、システムをこの壊れた/一貫性のない状態にしておくことは、非常に望ましくありません。ただし、機会があれば、aptは次のようにしてそのバランスを宇宙に戻します。
root@orwell:/home/faheem# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
libavdevice53 libavfilter2 libglade2-dev python-cairo-dbg python-cairo-dev python-gnupginterface python-gobject-2-dev
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
gcc-4.6-base
The following NEW packages will be installed:
gcc-4.6-base
0 upgraded, 1 newly installed, 0 to remove and 62 not upgraded.
Need to get 142 kB of archives.
After this operation, 159 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Get:1 http://debian.lcs.mit.edu/debian/ wheezy/main gcc-4.6-base AMD64 4.6.3-14 [142 kB]
Fetched 142 kB in 7s (19.1 kB/s)
Selecting previously unselected package gcc-4.6-base:AMD64.
(Reading database ... 454274 files and directories currently installed.)
Unpacking gcc-4.6-base:AMD64 (from .../gcc-4.6-base_4.6.3-14_AMD64.deb) ...
Processing triggers for ccache ...
Updating symlinks in /usr/lib/ccache ...
Setting up gcc-4.6-base:AMD64 (4.6.3-14) ...