Могу ли я удалить apt с помощью apt?

44

Я знаю, что для удаления программы я могу использовать apt-get remove <package> .

Но apt - это сама программа. Могу ли я использовать apt-get remove apt , чтобы удалить его, или он запутался бы частично?

    
задан Tim 17.01.2016 в 14:57
источник

6 ответов

77

APT позволяет вам имитировать ваши команды, используя опцию -s . Вы можете попробовать это самостоятельно, выдав команду apt-get -s remove apt (не требуется sudo ).

Это дает следующий результат:

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]

Итак, ответ должен быть: да, вы можете.

    
ответ дан cauon 17.01.2016 в 15:13
источник
29

Вы можете ...

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) ...

и будет предупрежден, что вы собираетесь сделать что-то очень разрушительное. Я должен сказать ... список пакетов выглядит ужасным для экономии пространства менее 6000 КБ: D

Он заканчивается, но нет пути назад, используя «apt-get». Ubuntu Software Center больше не будет работать, и вам нужно будет использовать «dpkg» для переустановки диспетчера пакетов (и вручную также необходимо установить все зависимости).

    
ответ дан Rinzwind 17.01.2016 в 15:10
11

Однажды, когда я запустил CoreUbuntu, я установил багги-пакет из источника, который apt решил obsoleted 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 , поэтому все, что мне нужно было сделать, это wget apt 's .deb archive и переустановить, используя dpkg -i .

Как показано в других ответах, если вы удалите apt с apt , у вас будет больше проблем из-за зависимостей, которые он пытается решить.

Мне кажется, что это интересно, но это действительно так (конечно, для Debian и, возможно, Fedora / openSUSE до некоторой степени?) многие современные дистрибутивы определены и построены в значительной степени на инфраструктуре, предоставляемой их менеджером пакетов по выбору.     

ответ дан cat 17.01.2016 в 18:50
5

Технически, apt не может удалить apt ... потому что apt не знает, как удалить, установить или обновить пакеты. Задачи по установке, удалению, обновлению, настройке пакетов оставляются на dpkg. Хотя вы можете сказать apt удалить пакет под названием «apt», то, что он делает, проверяет обратные зависимости apt-пакета, обратите внимание на эти пакеты и заказы dpkg, чтобы удалить их. Это то, что можно увидеть в другом ответы .

Даже без apt вы можете использовать dpkg для установки, удаления или обновления пакетов, просто будет более болезненно отслеживать зависимости и обновления, которые необходимы raison d'être apt.     

ответ дан Braiam 19.01.2016 в 14:41
1

Конечно, вы можете. Apt и dpkg сами являются пакетами, и они должны быть обновлены через них, поэтому есть положения для удаления; в противном случае у /var/lib/dpkg/info/dpkg.prerm и /var/lib/dpkg/info/dpkg.postrm не было бы причин для существования:)

Если вы случайно удалили их таким образом, чтобы вы остались без dpkg, вы все равно могли вручную распаковать архив .deb для dpkg, если бы вы не избавились от binutils, tar, gzip / bzip2.

--purge на любых пакетах, связанных с apt toolchain, может дать вам неприятные проблемы; трудно определить, что принадлежит определенным файлам в /var/lib/dpkg . Если /var/lib/dpkg/status удалено и не было текущей резервной копии, тогда да, менеджер пакетов в этой системе не будет исправлен.

    
ответ дан rackandboneman 20.01.2016 в 12:00
-1

Я клянусь, что недавно видел apt двоичных файлов в /usr/local/bin в системе на основе Ubuntu, но их нет в моей текущей системе Ubuntu MATE 15.04 (они в /usr/bin с большей частью другие двоичные файлы). Если это было в /usr/local/bin , то, вероятно, было бы невозможно удалить его с apt , потому что файлы в /usr/local/bin должны игнорироваться менеджером пакетов. Я должен признать, что положительное значение aptdpkg ) при /usr/local/bin было бы хорошей идеей.

Более интересный вопрос: что произойдет, если вы удалите dpkg ? Конечно, dpkg указана в виде пакета apt , но я не собираюсь сейчас его удалять (на данный момент не установлена ​​виртуальная машина). Теоретически можно также удалить его с помощью dpkg . Я собираюсь принять обоснованное предположение, что единственный способ переустановить его - это сделать это вручную, а затем надеяться, что он подберет существующие файлы конфигурации (так что вам не нужно вручную вручную сообщать системе какие пакеты установлены), а затем сообщите, что пакет dpkg теперь установлен снова.

(Шутка :). Пользовательский эквивалент пользователя # rm -rf / от Debian равен # apt-get purge ".*" .

    
ответ дан Micheal Johnson 19.01.2016 в 19:24