Рейтинг:2

`apt-mark showmanual` показывает почти все пакеты. запутался?

флаг in

apt-mark showmanual перечисляет много пакетов для меня:

root@hcompneu:~# apt-mark showmanual | туалет -л
4013
root@hcompneu:~# apt-mark showmanual | главный
a11y-профиль-менеджер-индикатор
короткое слово
Абиворд-общий
abiword-плагин-грамматика
аккаунт-плагин-facebook
аккаунт-плагин-flickr
аккаунт-плагин-google
учетная запись-плагин-идентичность
аккаунт-плагин-твиттер
бухгалтерская служба
root@hcompneu:~# apt-mark showmanual | хвост
визг-xsl
дух времени
ядро духа времени
датахаб духа времени
рассудительность
зенитно-общий
молния
zlib1g
zlib1g-dev
zlib1g: i386

Насколько я понимаю, в нем должны быть перечислены только те пакеты, которые я установил вручную. Я уже не помню в каждом случае, но я почти уверен, что не устанавливал все это вручную. На самом деле, я редко устанавливал на эту систему какой-либо софт, несмотря на Chrome, OpenOffice и некоторые другие весьма элементарные вещи. Так что я ожидаю список из 10-100 пакетов, но не больше. Возможно, он также включает ubuntu-desktop, grub и linux или около того из базовой установки Ubuntu.

Возможно, в прошлом я написал несколько сценариев для исправления сломанной системы путем автоматического вызова apt-получить установку XXX на различных упаковках. Или, может быть, я сделал другие вещи. Я действительно больше не помню.

Может быть здесь дело в этом? Значит я как-то напутал? Если это так, что бы вы предложили? Отметьте все для автоматической установки, а затем вручную добавьте некоторые выбранные пакеты, такие как ubuntu-desktop?

Или такой вывод правильный и я его неправильно понимаю? Я читаю это и я не уверен. Получается, что получить список установленных вручную пакетов гораздо сложнее? Или почему ответ такой сложный?

Или apt-mark showmanual багги?


root@hcompneu:~# ls -ld /var/log/installer/
drwxr-xr-x 2 root root 4096 27 декабря 11:27 /var/log/installer/
root@hcompneu:~# grep -r cdrom /etc/apt/ --include=*.list
root@hcompneu:~# dpkg -l | grep ^ ii | туалет -л
3812
nobody avatar
флаг gh
Есть ли шанс, что вы используете этот апплет обновления (я никогда не знаю названия) для обновления вашей системы?
N0rbert avatar
флаг zw
Сколько лет вашей системе? Пожалуйста, покажите вывод из `ls -ld /var/log/installer/` и `grep -r cdrom /etc/apt/ --include=*.list` и `dpkg -l | grep ^ ii | wc -l`. В моей 7-летней системе у меня вручную установлено 3953 пакета из 5680; в моей 11-летней системе у меня 3947 установленных вручную пакетов из 6395 всего. Некоторые из них были установлены мной, некоторые - как зависимости. Так что нет причин бояться.
флаг in
@N0rbert Но те, которые установлены как зависимости, не должны быть в этом списке. Только те, которые вы установили напрямую через `apt-get install XXX`, а не зависимости. Или на самом деле это мой вопрос, если это так. Это мое понимание по крайней мере.
N0rbert avatar
флаг zw
Я ошибся насчет зависимостей, они не помечены как установленные вручную. Но вы не отвечаете на вопросы и не предоставляете запрошенный вывод команды. Мы оба любим Gentoo, но, пожалуйста, предоставьте дополнительную информацию.
флаг in
@N0rbert N0rbert Я добавил выходные данные команд. Я действительно не знаю, сколько лет системе, но я думаю, что она старая. Возможно, я начал с Ubuntu 8 или около того и прошел через 10, 12, 14 и 16, а недавно обновился до 18.Однако, несмотря на Chrome, OpenOffice и некоторые другие очень простые вещи, я никогда ничего не устанавливал вручную. Так что определенно большинство вещей в списке не были установлены мной вручную. Так что, может быть, ответ на мой вопрос просто *да, он запутался*?
Рейтинг:4
флаг zw

TL;DR Нет, ваша система не испорчена. Более того, вы можете оставить все как есть, то есть в текущем состоянии.

Рассмотрим три системы:

Текущая система Установочный носитель Возраст дпкг -л | grep ^ ii | туалет -л apt-mark showmanual | туалет -л
Ubuntu 18.04.6 LTS с рабочим столом MATE(*) Убунту 12.04.4 ЛТС 7 лет 5680 3953
Ubuntu 18.04.6 LTS с рабочим столом MATE(*) Убунту 10.04 ЛТС 11 лет 6395 3947
Ваша Ubuntu 18.04 LTS (**) ~ Убунту 8.04 ЛТС ~13 лет 3812 4013

Примечания:

  • (*) мои системы изначально были установлены с установочных дисков Ubuntu для настольных ПК, поэтому поставлялись с GNOME и/или Unity (не вариант). Затем я установил рабочий стол MATE, используя официальные PPA для 12.04 ЛТС, 14.04 ЛТС и их метапакеты; затем, когда было выпущено 16.04 LTS, я переустановил рабочий стол MATE как пакет задач, используя такие команды, как sudo apt-get установить ubuntu-mate-desktop^. Эта установка пакета задач приводит к тому, что все такие пакеты помечаются как установленные вручную и таким образом защищают их от удаления. Все остальное программное обеспечение устанавливалось вручную в течение срока службы обеих систем.
  • (**) странная вещь в вашей системе заключается в том, что у вас общее количество установленных пакетов 3812 меньше, чем установленных вручную пакетов 4013. Вы должны исследовать это с помощью Synaptic.

Я попытался провести некоторые исследования со свежими установками старых и новых систем. Ниже приведена таблица о чистых установках обычных ISO-образов рабочего стола Ubuntu.

Версия Ubuntu дпкг -л | grep ^ ii | туалет -л поиск способностей '~i!~M' | туалет -л apt-mark showmanual Synaptic: Статус — Установлено (вручную)
6.06 ЛТС 1046 1046 н/д н/д
8.04 ЛТС 1102 1087 н/д н/д
10.04 ЛТС 1296 1286 н/д 1286
12.04 ЛТС 1392 1367 1367 1342
14.04 ЛТС 1722 1690 1690 1666
16.04 ЛТС 1745 220 220 195
18.04 ЛТС 1602 1557 1557 1529
20.04 ЛТС 1607 49 49 49
22.04 LTS (разработка) 1700 44 44 31

Здесь мы можем понять, что функциональность установщика Ubiquity и APT сама по себе со временем меняется.

Из приведенной выше таблицы видно, что старые системы имеют огромное количество установленных вручную пакетов с нулевого дня их установки.
Более новые версии Ubuntu имеют меньшие номера, что упрощает их обслуживание.Вероятно, у них установлено больше метапакетов, которые предотвращают удаление пакетов из-за зависимостей.

Еще один эксперимент, который я провел: я обновил новую установку Ubuntu с 8.04 LTS до 10.04 LTS – 12.04 LTS – 14.04 LTS – 18.04 LTS – 20.04 LTS, и в полученной системе 20.04.3 LTS у меня есть 1867 вручную. установленных пакетов всего 2913 пакетов.

Статус «ручной» установки пакета предотвращает его удаление, поэтому вам не следует устанавливать пакет как автоматически устанавливаемый.


Хорошие ресурсы для чтения:

  • Глава 2. Управление пакетами Debian в Debian Reference.

  • человек локально или онлайн, приведенная ниже цитата имеет важное значение:

    метка - показывать, устанавливать и сбрасывать различные настройки для пакета
    [...]
    шоумануал можно использовать так же, как шоуавто за исключением того, что вместо этого он распечатает список установленных вручную пакетов.

флаг in
Интересно, вы действительно вручную устанавливали все эти почти 4k пакеты? Или, может быть, это тоже перепуталось в вашем случае? Как было сказано ранее, зависимостей не должно быть в этом списке.
N0rbert avatar
флаг zw
Я провел несколько экспериментов на свежей ежедневной виртуальной машине Ubuntu MATE 22.04 LTS — она имеет следующие номера: `apt-mark showmanual | wc -l` возвращает 30 (я полагаю, что эти пакеты были установлены Ubiquity для поддержки необходимых локалей и т. д.), а общее количество пакетов равно 1971. Установка каждого следующего пакета увеличивает список установленных вручную пакетов на 1 (как и ожидалось ). Для версии 18.04 LTS требуется дальнейшее исследование.
Someone avatar
флаг my
@Albert Да, можно установить более 4 тыс. пакетов вручную.Например: - Если N0rbert установит рабочий стол kde (или любой другой рабочий стол), он также установит с ним различные приложения (около 100!), И все эти приложения также будут отображаться в списке установленных вручную. Таким образом, это не означает, что наличие 4k установленных вручную пакетов означает, что вы запустили `apt install` 4k раз! (Предлагаемые пакеты приложений и другие дополнительные пакеты (не включая зависимости) также устанавливаются вручную;)
Someone avatar
флаг my
@N0rbert Как вы установили Ubuntu Mate 22.04? Это выпущено?
N0rbert avatar
флаг zw
@someone Я установил Ubuntu MATE 22.04 LTS для тестирования с http://cdimage.ubuntu.com/ubuntu-mate/daily-live/current/, используя ежедневный ISO.
флаг in
@someone Нет, если вы сделаете `apt-get install kubuntu-desktop`, это установит много пакетов, но только один пакет будет добавлен в ручной список, а именно `kubuntu-desktop`. Все остальные будут помечены как автоматические, так как являются только зависимостями.
Someone avatar
флаг my
@Albert Является ли Konsole зависимостью для рабочего стола Kubuntu?
флаг in
@someone: я действительно не знаю. Почему это актуально? См. [здесь] (https://packages.ubuntu.com/focal/kubuntu-desktop) для прямых зависимостей, но косвенных зависимостей гораздо больше. Например, это зависимость от пакета [`kde-full`](https://packages.ubuntu.com/focal/kde-full).
Someone avatar
флаг my
@N0rbert Можете посмотреть https://askubuntu.com/a/1384019/1460940. Это правда? Пожалуйста, смотрите также комментарии. Я что-то пропустил? Разве не все пакеты, установленные во время установки ОС, помечены установщиком как «неавтоматически» или «вручную», чтобы они не были удалены с помощью `sudo apt autoremove`?
N0rbert avatar
флаг zw
Во время установки Ubuntu 18.04 LTS многие пакеты помечаются как ручные. В более новых версиях только куча помечена как ручная. Мне кажется, что за последние 3 года во внутренностях APT произошли некоторые изменения.
флаг in
Теперь вы немного изменили ответ и изменили смысл. Судя по вашему описанию, система испорчена, но каким-то образом вы пришли к выводу, что она не испорчена? Это также выглядит как свежая установка Ubuntu
флаг in
Чтобы добавить, я только что нашел [это] (https://askubuntu.com/questions/12279/why-are-almost-all-packages-marked-as-manually-installed), и действительно есть отчет об ошибке об этом поведение, [ошибка/424643](https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/424643).
N0rbert avatar
флаг zw
Я провел всесторонний анализ, чтобы понять, почему так происходит. Я использую такую ​​запутанную систему в течение многих лет. Нет причин для беспокойства.
флаг in
Что ж, весь смысл этой функциональности в том, что `autoremove` работает, в том числе в случае дальнейших обновлений, когда некоторым пакетам больше не нужны какие-то другие зависимости.Итак, вы говорите, меня не должно волновать, что `автоматическое удаление` не будет работать, по крайней мере, для тех пакетов, которые устанавливаются базовой установкой? Кроме того, я боюсь, что позже это может привести к поломке некоторых обновлений дистрибутива. У меня уже было несколько проблем из-за пакетов, у которых были проблемы с обновлением, которое мне совсем не нужно. Например, он хотел иметь `upstart` вместе с `systemd`.
N0rbert avatar
флаг zw
Затем вы должны сначала описать точные «проблемы в обновлении». Upstart и Systemd могут оставаться в системе, если от них зависят пакеты. Вы можете запустить `aptitude Why upstart`, чтобы понять, почему этот пакет установлен. В настоящее время я не понимаю точной проблемы в вашей системе.
флаг in
Upstart также остается в системе, когда он ошибочно помечен как ручной, что и имело место, и это именно та проблема, которую я здесь описываю. Только потому, что Ubuntu 8 или что-то еще, помеченное **все** пакеты как установленные вручную, не делает это правильным или не испорченным.
Рейтинг:1
флаг cc

Вывод опции showmaual включает в себя любой пакет, который когда-либо получал обновления, так что это не совсем то, что вам нужно. Приведенную ниже команду я скопировал из какого-то другого ответа (не помню, где, иначе я бы его атрибутировал) и сравнивает вывод с исходным списком установки, создавая пакеты, которые вы установили самостоятельно.Поместите его в файл в области корзины для удобства.

comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)  

В первый раз, когда я запускал apt-mark showmanual, я знал, что список слишком велик, потому что в него были включены такие вещи, как «tar», которые, как я знал, я никогда не трогал вручную. Однако к «tar» было применено обновление, которое привело к его выводу. Поскольку «tar» был включен в исходные системные пакеты, он удаляется сценарием, оставляя только то, что «обнаружилось» после первоначальной установки системы.

флаг in
«Опция showmaual включает любой пакет, который когда-либо получал обновления» - я не очень понимаю, что это значит. Насколько я понял, он попадает в этот список ровно тогда, когда я сделал «apt install X», что, таким образом, именно то, что я хочу.
Рейтинг:0
флаг me

Система не "накосячила", а в основном ваше понимание того, что установлен вручную значит неверно. Пакет никогда на самом деле не помечен как ручной или неручной. Он может быть отмечен только как автоматический или неавтоматический.

Пакет помечен автоматически, если он устанавливается автоматически для удовлетворения зависимости.. Это означает, что его можно (и подразумевает, что он должен) удалять автоматически, когда от него больше не зависит никакой другой пакет.

В обычной настольной системе большинство пакетов устанавливаются при первой установке ОС установщиком. Эти пакеты должны быть установлены неавтоматически, иначе они будут удалены, потому что от них ничего не зависит.

Возьмем, к примеру, слово «abiword» в верхней части списка. Это текстовый процессор, который, вероятно, вполне нормально установить на настольную систему. Я предполагаю, что вы использовали одну из многих разновидностей настольных установщиков. Вероятно, он не спрашивал вас конкретно, хотите ли вы abiword. Вы, вероятно, не устанавливали abiword сами по имени. Вы по-прежнему выбрали его, выбрав установочный носитель, который вы использовали.

Поскольку в вашей системе нет другого пакета, работа которого зависит от наличия у вас установленного abiword, он не может быть помечен автоматически, иначе он будет удален. Это означает, что он не помечен автоматически. apt-mark showmanual перечисляет пакеты, которые не помечены автоматически.

Также обратите внимание, что многие установщики устанавливают все не автоматически, даже если они могут пометить их автоматически, потому что от них что-то зависит. Даже важные базовые пакеты, от которых зависят сотни вещей, помечаются как неавтоматические. В этом смысле, возможно, установщик "накосячил", но в вашей системе нет ничего особенного.

Моя лучшая попытка получить список вещей, которые я, возможно, установил сам:

aptitude search -F '%p' --disable-columns '~i !~M !~E !~обязательно !~важно !~pstandard !~tminimal !~tstandard'

Чтобы исключить пакеты, от которых зависят, используйте:

aptitude search -F '%p' --disable-columns '~i !~M !~R~i !~E !~prequired !~pimportant !~pstandard !~tminimal !~tstandard'
флаг in
Я не совсем понимаю. Ваше описание совпадает с моим пониманием. Да, `abiword` в этом списке, возможно, я установил вручную. Однако определенно не `abiword-common`, `yelp-xsl` или `zeitgeist` или что-то в этом роде. Все они должны быть помечены как автоматические, потому что они, вероятно, были установлены для удовлетворения зависимости.
Tom V avatar
флаг me
Я имею в виду, что если вы запустите apt-mark showmanual в совершенно новой, только что установленной системе, в ней будут перечислены многие сотни пакетов, потому что системный установочный носитель помечает все как неавтоматический, чтобы он не был удален.
флаг in
Нет, это не правда. При новой установке showmanual перечисляет только около 30 пакетов, не больше. Больше не нужно. Вам просто нужен ubuntu-desktop, linux и некоторые другие. Все остальные являются зависимостями.
Someone avatar
флаг my
@ Альберт Нет, это неправда. На новой виртуальной машине Ubuntu 21.10 я вижу почти 150 пакетов. Кроме того, в списке есть все приложения, такие как firefox и gedit. Итак, предустановленные приложения также устанавливаются вручную. Согласен с ТомВ. +1
Tom V avatar
флаг me
150 это не 4000, я ожидал большего. Возможно, это зависит от версии установщика. Реальный вопрос: есть ли в этой системе какие-либо пакеты с пометкой auto?
Someone avatar
флаг my
@TomV Нет... Конечно, нет. Количество пакетов зависит от минимальной и полной установки (я говорил о минимальной установке). Если пакеты были помечены как автоматические, то простое `apt autoremove` удалит всю систему!
флаг in
Конечно, при новой установке есть много пакетов, помеченных как автоматические. Гораздо больше, чем те, которые отмечены как ручные. Число 30 ручных пакетов взято из комментария N0rberts выше для новой ежедневной виртуальной машины Ubuntu MATE 22.04 LTS. Я все еще не совсем понимаю обсуждение здесь. В моем исходном сообщении я совершенно уверен, что есть пакеты, которые я никогда не устанавливал вручную и которые также не помечены как ручные при любой новой установке.
Tom V avatar
флаг me
В последний раз, когда я запускал установщик выпуска (ubuntu 21.04 mate), каждый пакет помечен как важный или важный, и каждый пакет с приоритетом выше, чем необязательный, был помечен установщиком как неавтоматический, даже библиотеки, которые не имеют смысла, если вы не устанавливаете что-то, что от них зависит . Кроме того, пакеты mate gui тоже не были автоматическими. showmanual перечислил много-много сотен пакетов.
флаг in
@TomV Я только что нашел [это] (https://askubuntu.com/questions/12279/why-are-almost-all-packages-marked-as-manually-installed), и есть отчет об ошибке, в котором говорится, что это неправильное и ошибочное поведение, [bug/424643](https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/424643). Кроме того, см. [ответ выше] (https://askubuntu.com/a/1384000/6878), который указывает, что это больше не проблема в Ubuntu 20 и 22?
Tom V avatar
флаг me
Этому вопросу и отчету об ошибке более 10 лет (но я думаю, вы сказали, что ваша система тоже очень старая). Я определенно видел это гораздо позже в Debian и Ubuntu.
Рейтинг:0
флаг es

Согласно справочной странице метка все зависимости мета-пакетов отмечены как руководство. Таким образом, вы можете бежать

apt-mark свернуть вручную

чтобы пометить все эти пакеты как auto. После этого,

apt-mark шоу-мануал

показывает меньше пакетов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.