Bug 36322 - Неправильно работает apt-get remove --auto-remove
Summary: Неправильно работает apt-get remove --auto-remove
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: apt (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: darktemplar@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-21 02:14 MSK by obirvalger@altlinux.org
Modified: 2019-04-25 15:09 MSK (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description obirvalger@altlinux.org 2019-03-21 02:14:16 MSK
При запуске команды `apt-get remove --auto-remove bombardier` в Debian происходит удаление пакета и его автоустановленных зависимостей.

У нас при запуске той же команды возникает ошибка:
E: Sense auto is not understood, try true or false.

Если добавить true (`apt-get remove --auto-remove true bombardier`), то пакет будет удалён, но не его автозависимости.

А если добавлять false (`apt-get remove --auto-remove false bombardier`), то возникает интересная ошибка:
E: Packages need to be removed but Remove is disabled.
Comment 1 Aleksei Nikiforov 2019-03-21 09:49:06 MSK
(В ответ на комментарий №0)
> При запуске команды `apt-get remove --auto-remove bombardier` в Debian
> происходит удаление пакета и его автоустановленных зависимостей.
> 
> У нас при запуске той же команды возникает ошибка:
> E: Sense auto is not understood, try true or false.
> 
> Если добавить true (`apt-get remove --auto-remove true bombardier`), то пакет
> будет удалён, но не его автозависимости.
> 
> А если добавлять false (`apt-get remove --auto-remove false bombardier`), то
> возникает интересная ошибка:
> E: Packages need to be removed but Remove is disabled.

В Alt в apt-get на данный момент опции --auto-remove вообще нет. Есть проблема в парсинге опций. В результате этой проблемы apt-get принимает опцию --auto-remove за опцию --remove, она же "APT::Get::Remove".

Для удаления же установленных зависимостей есть отдельная команда "apt-get autoremove", она должна выполняться после удаления пакета, отдельно. Либо можно воспользоваться apt-shell, там удалить пакет, сделать autoremove, посмотреть результат и применить или отказаться.
Comment 2 Aleksei Nikiforov 2019-03-29 11:30:49 MSK
(В ответ на комментарий №0)
> При запуске команды `apt-get remove --auto-remove bombardier` в Debian
> происходит удаление пакета и его автоустановленных зависимостей.
> 
> У нас при запуске той же команды возникает ошибка:
> E: Sense auto is not understood, try true or false.

Посмотрел код apt ещё. Похоже, вызов "apt-get remove --auto-remove bombardier" является аналогичным вызову "apt-get remove --remove auto bombardier" или "apt-get remove --remove=auto bombardier", в связи с чем и появляется такая ошибка ("auto" не является распознаваемой строкой для boolean значений, распознаются, например, строки "yes", "no", "true", "false").

Строка же "apt-get remove --auto-remove true/false bombardier" аналогична "apt-get remove --remove true/false bombardier".

И это является документированным способом обработки данных опций, с учётом  отсутствия опции --auto-remove в данной версии apt.
Comment 3 Aleksei Nikiforov 2019-03-29 16:04:45 MSK
Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в задании #225877, ждёт аппрува.
Comment 4 Anton Farygin 2019-03-29 16:06:55 MSK
Наверное не Глеб, а Иван ?
Comment 5 Dmitry V. Levin 2019-04-24 20:30:42 MSK
(In reply to comment #3)
> Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> задании #225877, ждёт аппрува.

В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и --auto-remove, затесалось ещё какое-то нерелевантное изменение.
Comment 6 Aleksei Nikiforov 2019-04-25 12:24:28 MSK
(In reply to comment #5)
> (In reply to comment #3)
> > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > задании #225877, ждёт аппрува.
> 
> В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> --auto-remove, затесалось ещё какое-то нерелевантное изменение.

Где именно там нерелевантное изменение?
Comment 7 Dmitry V. Levin 2019-04-25 12:31:53 MSK
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #3)
> > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > задании #225877, ждёт аппрува.
> > 
> > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> 
> Где именно там нерелевантное изменение?

find_all_kept_packages
Comment 8 Aleksei Nikiforov 2019-04-25 12:34:40 MSK
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > (In reply to comment #3)
> > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > задании #225877, ждёт аппрува.
> > > 
> > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > 
> > Где именно там нерелевантное изменение?
> 
> find_all_kept_packages

Это изменение вполне релевантное, иначе при удалении пакета через apt-get с опцией --autoremove, зависимости этого пакета не удалятся, если в них больше нет необходимости. Там даже комментарий написан именно об этом.
Comment 9 Dmitry V. Levin 2019-04-25 12:43:47 MSK
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > (In reply to comment #5)
> > > > (In reply to comment #3)
> > > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > > задании #225877, ждёт аппрува.
> > > > 
> > > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > > 
> > > Где именно там нерелевантное изменение?
> > 
> > find_all_kept_packages
> 
> Это изменение вполне релевантное, иначе при удалении пакета через apt-get с
> опцией --autoremove, зависимости этого пакета не удалятся, если в них больше
> нет необходимости. Там даже комментарий написан именно об этом.

Почему тогда "Apt-shell: fix autoremove with pending package removals"?
Comment 10 Aleksei Nikiforov 2019-04-25 12:56:34 MSK
(In reply to comment #9)
> (In reply to comment #8)
> > (In reply to comment #7)
> > > (In reply to comment #6)
> > > > (In reply to comment #5)
> > > > > (In reply to comment #3)
> > > > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > > > задании #225877, ждёт аппрува.
> > > > > 
> > > > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > > > 
> > > > Где именно там нерелевантное изменение?
> > > 
> > > find_all_kept_packages
> > 
> > Это изменение вполне релевантное, иначе при удалении пакета через apt-get с
> > опцией --autoremove, зависимости этого пакета не удалятся, если в них больше
> > нет необходимости. Там даже комментарий написан именно об этом.
> 
> Почему тогда "Apt-shell: fix autoremove with pending package removals"?

Потому что это изменение чинит и такую же проблему в apt-shell заодно. От этого оно менее релевантным не становится.
Comment 11 Dmitry V. Levin 2019-04-25 13:00:28 MSK
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #8)
> > > (In reply to comment #7)
> > > > (In reply to comment #6)
> > > > > (In reply to comment #5)
> > > > > > (In reply to comment #3)
> > > > > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > > > > задании #225877, ждёт аппрува.
> > > > > > 
> > > > > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > > > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > > > > 
> > > > > Где именно там нерелевантное изменение?
> > > > 
> > > > find_all_kept_packages
> > > 
> > > Это изменение вполне релевантное, иначе при удалении пакета через apt-get с
> > > опцией --autoremove, зависимости этого пакета не удалятся, если в них больше
> > > нет необходимости. Там даже комментарий написан именно об этом.
> > 
> > Почему тогда "Apt-shell: fix autoremove with pending package removals"?
> 
> Потому что это изменение чинит и такую же проблему в apt-shell заодно. От этого
> оно менее релевантным не становится.

Новые фичи -- хорошо, фиксы -- замечательно, но, пожалуйста, фиксы -- отдельно, фичи -- отдельно.
Comment 12 Aleksei Nikiforov 2019-04-25 13:17:34 MSK
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #9)
> > > (In reply to comment #8)
> > > > (In reply to comment #7)
> > > > > (In reply to comment #6)
> > > > > > (In reply to comment #5)
> > > > > > > (In reply to comment #3)
> > > > > > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > > > > > задании #225877, ждёт аппрува.
> > > > > > > 
> > > > > > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > > > > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > > > > > 
> > > > > > Где именно там нерелевантное изменение?
> > > > > 
> > > > > find_all_kept_packages
> > > > 
> > > > Это изменение вполне релевантное, иначе при удалении пакета через apt-get с
> > > > опцией --autoremove, зависимости этого пакета не удалятся, если в них больше
> > > > нет необходимости. Там даже комментарий написан именно об этом.
> > > 
> > > Почему тогда "Apt-shell: fix autoremove with pending package removals"?
> > 
> > Потому что это изменение чинит и такую же проблему в apt-shell заодно. От этого
> > оно менее релевантным не становится.
> 
> Новые фичи -- хорошо, фиксы -- замечательно, но, пожалуйста, фиксы -- отдельно,
> фичи -- отдельно.

Это одновременно и изменение для правильной реализации опции --autoremove для apt-get и apt-shell (новая фича), и фикс для apt-shell.
Comment 13 Dmitry V. Levin 2019-04-25 13:25:33 MSK
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > (In reply to comment #9)
> > > > (In reply to comment #8)
> > > > > (In reply to comment #7)
> > > > > > (In reply to comment #6)
> > > > > > > (In reply to comment #5)
> > > > > > > > (In reply to comment #3)
> > > > > > > > > Новая версия apt, с поддержкой опций --autoremove и --auto-remove, находится в
> > > > > > > > > задании #225877, ждёт аппрува.
> > > > > > > > 
> > > > > > > > В коммит 85277801f62a5f46b01605ac56ee12e2d1411362, добавляющий --autoremove и
> > > > > > > > --auto-remove, затесалось ещё какое-то нерелевантное изменение.
> > > > > > > 
> > > > > > > Где именно там нерелевантное изменение?
> > > > > > 
> > > > > > find_all_kept_packages
> > > > > 
> > > > > Это изменение вполне релевантное, иначе при удалении пакета через apt-get с
> > > > > опцией --autoremove, зависимости этого пакета не удалятся, если в них больше
> > > > > нет необходимости. Там даже комментарий написан именно об этом.
> > > > 
> > > > Почему тогда "Apt-shell: fix autoremove with pending package removals"?
> > > 
> > > Потому что это изменение чинит и такую же проблему в apt-shell заодно. От этого
> > > оно менее релевантным не становится.
> > 
> > Новые фичи -- хорошо, фиксы -- замечательно, но, пожалуйста, фиксы -- отдельно,
> > фичи -- отдельно.
> 
> Это одновременно и изменение для правильной реализации опции --autoremove для
> apt-get и apt-shell (новая фича), и фикс для apt-shell.

Несомненно.  Я надеюсь, что вы меня тоже поняли.
Comment 14 Repository Robot 2019-04-25 15:09:13 MSK
apt-0.5.15lorg2-alt62 -> sisyphus:

Fri Mar 29 2019 Aleksei Nikiforov <darktemplar@altlinux> 0.5.15lorg2-alt62
- Implemented --autoremove option for apt-get and apt-shell (Closes: #36322).
- Fixed autoremove in apt-shell to properly process packages with pending removal.