web-dev-qa-db-ja.com

依存関係を削除せずにdebianベースのシステムでパッケージを削除する方法は?

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は不満を言いました。ありがとうございました!

6
CauselessEffect

私があなたを正しく理解しているなら、他のパッケージも削除せずに、他のパッケージが依存しているパッケージを削除したいでしょう。これは良い考えではないかもしれないことを念頭に置いて、あなたはこれを行うことができます。

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) ...
16
Faheem Mitha