Почему apt-get отмечает пакеты, которые я не хочу напрямую?
Если я попытаюсь установить метапакет apt-get install lubuntu-desktop
а затем увидеть вывод apt-mark showmanual | grep lubuntu
Я вижу гораздо больше, чем просто lubuntu-desktop
:
lubuntu-artwork
lubuntu-core
lubuntu-deskto
Так, apt-get install lubuntu-desktop
помечает как установленный вручную не только пакет lubuntu-desktop
но также это зависимости или что-то. Но мне не нужны эти пакеты напрямую, и это поведение странное и неожиданное.
Есть ли способ настроить apt
пометить как установленные вручную только те пакеты, которые я устанавливаю руками, а не с их зависимостями или что-то в этом роде?
2 ответа
Быстрый поиск по подходящим источникам дал мне (1). Насколько я понимаю, пакеты которые в разделе перечислены в APT::Never-MarkAuto-Sections
, при установке пометьте их непосредственные зависимости как ручные. Таким образом, установка метапакета, для которого требуется, например, браузер, затем удаление метапакета оставляет браузер установленным. Это, кажется, предполагаемое поведение. Должно быть возможно изменить путем очистки по умолчанию APT::Never-MarkAuto-Sections
значение.
(1) http://sources.debian.net/src/apt/1.1.9/apt-pkg/depcache.cc/?hl=849
Из Ubuntu:
Зависимости пакетов
Программы часто используют одни и те же файлы друг с другом. Вместо того, чтобы помещать эти файлы в каждый пакет, можно установить отдельный пакет, чтобы обеспечить их для всех программ, которые в них нуждаются. Таким образом, для установки программы, которой нужен один из этих файлов, также должен быть установлен пакет, содержащий эти файлы. Таким образом, когда пакет зависит от другого, он называется зависимостью пакета. Задавая зависимости, пакеты можно сделать меньше и проще, а дубликаты файлов и программ в основном удаляются.
Когда вы устанавливаете программу, ее зависимости должны быть установлены одновременно. Обычно большинство необходимых зависимостей уже установлено, но может потребоваться и несколько дополнительных функций. Поэтому, когда вы устанавливаете пакет, не удивляйтесь, если будут установлены и другие пакеты - это всего лишь зависимости, которые необходимы для правильной работы выбранного вами пакета.
По вашему вопросу,
lubuntu-desktop
зависит от следующего:
lubuntu-artwork lubuntu-core lubuntu-desktop ...
Таким образом, команда sudo apt-get install lubuntu-desktop
также устанавливает их. Это неизбежно.
РЕДАКТИРОВАТЬ: Из Ubuntu:
кв-знак
apt-mark will change whether a package has been marked as being automatically installed. When you request that a package is installed, and as a result other packages are installed to satisfy its dependencies, the dependencies are marked as being automatically installed. Once these automatically installed packages are no longer depended on by any manually installed packages, they will be removed by e.g. apt-get or aptitude.
showauto
showauto is used to print a list of automatically installed packages with each package on a new line. All automatically installed packages will be listed if no package is given. If packages are given only those which are automatically installed will be shown.
showmanual
showmanual can be used in the same way as showauto except that it will print a list of manually installed packages instead.
На страницах руководства уже сказано, что он также будет включать в себя свои зависимости.