aptでaptを削除できますか?


45

apt-get remove <package>プログラムの削除に使用できることを知っています。

しかしapt、プログラム自体です。apt-get remove aptそれを削除するために使用できますか、それとも途中で混乱しますか?


2
それは実際の質問ですか、それとも単なる仮説的な質問ですか?ケース1:試してみてください。それ以外の場合:コンポーネントを削除した後、どのコンポーネントも起動しようとしない場合、自身をパージできるはずです。すでに開いているファイルは問題なく削除できます。
バイトコマンダー

@ByteCommanderそれは両方ですが、私は今それを実際に試すことはできません。
ティム

13
できます、おそらくすべきではありません。Linuxは、ユーザーが自分の足を撃ちたい理由を尋ねることはめったにありません。正当な理由があると仮定し、トリガーを引くことができます
...-Shadur

1
完全を期すために、Fedorasのdnfではそれを許可していません。# dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.
-Davidmh

それはなんと興味深い悪の質問でしょう!論理的なフォローアップは、それから回復できますか、それとも完全な再インストールが必要ですか?
KlaymenDK

回答:


78

APTでは、オプションを使用してコマンドをシミュレートできます-s。これを自分で試して、コマンドを発行できますapt-get -s remove aptsudo不要)。

これにより、次の出力が生成されます。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

したがって、答えは「はい、できます」です。


8
aptのシミュレートモードがこのようなものの完全なフォールアウトをカバーするかどうかはわかりません。確かに、これはコードが対処する場合としない場合のエッジケースです。
スパラフーク

12
これは必要ありませんsudo-sモードは変更を行いません)。したがって、予防策なしで 実行することsudoをお勧めします。
フェイクネーム

3
Aptは、aptを削除する方法を決定できる可能性があります。しかし、実際にそれを行うことはできますか?後で依存するファイルを削除して、インストールを一貫性のない状態のままにしてしまう可能性があることは容易に想像できます。
user253751

1
@immibis dpkgを削除することについてもっと心配します。Apt自体はdpkgに何をすべきかを伝えるだけで、dpkgは実際に(アン)インストールを実行します。
Random832

1
aptがdpkgに何をすべきかを指示した場合、dpkgを削除するとどうなりますか... lol
SuperSluether

30

あなたはできる...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

非常に破壊的なことをしようとしていることが警告されます。私は言わなければならない...パッケージのリストは6000kb以下の省スペースのために恐ろしいように見える:D

終了しますが、「apt-get」を使用して戻る方法はありません。Ubuntu Software Centerは動作しなくなり、「dpkg」を使用してパッケージマネージャーを再インストールする必要があります(また、すべての依存関係も手動でインストールする必要があります)。


12
"dpkg"を使用してパッケージマネージャーを再インストールする必要があります(手動ですべての依存関係もインストールする必要があります)、つまりsudo apt-get remember-what-2002-was-like
user1717828

それでは、Live CDを起動して、Arch chrootapt-get同じようにできませんでしたか?
スパラフーク

1
@Sparhawkあなたが何を目指しているのか分かりません。chrootを実行すると、通常のシステムのルートに移動し、そこで削除したapt-getを探します。apt-get(またはdpkgかもしれません)が代替ルートディレクトリを指定できると思いますが、どうやってそれを行うかをすばやく見つけることができないようです。
CVn

削除するパッケージは、もちろんapt自体を除いて、特に「怖い」IMOではありません。
Random832

@MichaelKjörling手動パスを実行apt-getして新しい「ルート」にインストールできると考えていましたが、すべてのconfig / cacheファイルも必要であることを忘れていました。あなたの可能な提案は確かにきれいになります(そのオプションがある場合)。
スパラフーク

12

以前、CoreUbuntuを実行したときに、apt廃止されたと判断したソースからバグのあるパッケージをインストールしましたapt。次回走ったときapt autoremove、私は実際に削除されるソフトウェアのリストを見なかっaptたし、リストにいました。

次に入力apt install <package-name>したときの驚きを想像してくださいThe program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt

幸いなことに、何らかの理由で、autoremove任意の除去しなかったapt「私がしなければならなかったすべてだったので、sの依存関係をwget apts」を.debアーカイブして使用して再インストールしてくださいdpkg -i


他の回答に示されているように、で削除するapt apt、解決しようとする依存関係があるため、さらにトラブルになります。

興味深いと思いますが、確かに(確かにDebian、そしておそらくFedora / openSUSE向けですか?)多くの現代のディストリビューションは、選択したパッケージマネージャによって提供されるインフラストラクチャ上で主に定義および構築されています。


5
apt依存関係を削除しなかった理由は、インストールしたバグのあるパッケージが必要に応じてそれらをリストしたからだと思います。そのパッケージが代替品として意図されていた場合に意味があります。
ドミトリーグリゴリエフ

5

技術的には、aptはパッケージを削除、インストール、またはアップグレードする方法を知らないため、aptはaptを削除できません。パッケージのインストール、削除、アップグレード、構成のタスクはdpkgに任されています。「apt」と呼ばれるパッケージを削除するようにaptに指示することはできますが、aptパッケージの逆依存関係をチェックし、それらのパッケージに注意して、dpkgに削除を指示します。他の 答えで見られるものです。

aptがなくても、dpkgを使用してパッケージのインストール、削除、またはアップグレードを行うことができますが、必要な依存関係とアップグレードを追跡する方が苦痛になります。これがaptの存在理由です。


ええ、aptは本当にシンプルなフロントエンドでありdpkg、削除するとdpkgUbuntuになりますか?

@catパッケージの削除や/var/lib/dpkg/statusファイルの削除を行わない限り、これからもそうだと思います。必要であればdpkgを回復することもできます。
Braiam

1

もちろんできます。Aptとdpkgはそれ自体がパッケージであり、それらはそれ自体を介して更新できるようになっているため、削除の規定があります。そうでなければ/var/lib/dpkg/info/dpkg.prerm/var/lib/dpkg/info/dpkg.postrm存在する理由がないでしょう:)

dpkgを使用せずに誤って削除した場合でも、binutils、tar、gzip / bzip2を削除しない限り、dpkgの.debアーカイブを手動でアンパックできます。

--purgeただし、aptツールチェーンに関連するパッケージでは、厄介な問題が発生する可能性があります。で特定のファイルの所有者を特定するのは難しい/var/lib/dpkg/var/lib/dpkg/status削除され、現在のバックアップがなかった場合、はい、パッケージマネージャーはそのシステムで修復できません。


-1

私は、Ubuntuベースのシステム上でaptバイナリを確認したことを誓い/usr/local/binますが、現在のUbuntu MATE 15.04システム上にはありません(/usr/bin他のほとんどのバイナリと同じです)。含まれている場合は、パッケージマネージャーによってファイルが無視されることになっているので、/usr/local/binおそらくそれをアンインストールすることはできません。下に置くことは(また同様に)良い考えであることを認めなければなりません。apt/usr/local/binaptdpkg/usr/local/bin

さらに興味深い質問は、アンインストールするとどうなりますdpkgか?案の定dpkg、パッケージとしてリストされていますがapt、今はアンインストールしようとはしていません(現時点では仮想マシンをセットアップしていません)。理論的には、dpkgそれ自体をアンインストールすることもできます。再インストールする唯一の方法は手動で行うことであるという知識に基づいた推測を行い、既存の構成ファイルを取得することを望みます(したがって、システムにもう一度手動で指示する必要はありません)どのパッケージがインストールされているか)、パッケージdpkgが再びインストールされたことを伝えます。


(冗談:) Debianユーザーに相当するの# rm -rf /# apt-get purge ".*"です。


公式の配布パッケージからのものが/ usr / local / binにある場合は、そのパッケージに対してバグを報告してください。
rackandboneman

問題は、パッケージからのものではないということです。「apt-get remove apt」および「apt-get remove dpkg」の問題を回避するという明確な目的で、パッケージマネージャーとは別にインストールされました。実際にメインシステムとして使用していたのは、実際にはLinux Mintだったと思います。
マイケルジョンソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.