Вопрос или проблема
Как я могу временно установить некоторые пакеты и легко удалить их, если они станут ненужными через несколько месяцев или лет? Причина в том, что я люблю тщательно тестировать программное обеспечение, прежде чем решить, стоит ли его оставить или удалить.
Например, я могу установить пакеты для графического дизайна с помощью:
apt-get install inkscape gimp
и пакеты для математики с помощью:
apt-get install texlive-full gnuplot
Я мог бы использовать виртуальные машины для каждого набора пакетов (math
или design
), но это кажется излишним (мне не нужны дополнительные затраты на безопасность/вычисления).
Я также мог бы использовать apt list --installed
и удалить ненужные пакеты с помощью (например) apt-get purge texlive-full gnuplot
(но это требует, чтобы я помнил, какие наборы пакетов я установил – я всегда удаляю весь набор сразу и никогда не удаляю индивидуальные пакеты в наборе).
Это зависит от причины “удаления” пакета/пакетов.
Вы можете хотеть: (1) чистую среду, (2) сэкономить место (, (3) и т.д.?)
Если вас интересует (1), я перечисляю несколько альтернатив, которые я использовал в разной степени (включая ни одну):
-
Пакет Environment Modules предоставляет возможность динамической модификации среды пользователя с помощью файлов модуля.
Модули полезны для управления разными версиями приложений. Модули могут также быть объединены в метамодули, которые будут загружать весь набор различных приложений.
Существует множество инструментов, основанных на модулях, которые перечислены также ниже. -
Flavours – это оболочка, построенная на базе C-версии Modules для упрощения организации и представления программного обеспечения, требующего нескольких сборок с использованием различных компиляторов, библиотек MPI, архитектур процессоров и т.д.
-
Software Collections – это проект Red Hat, который позволяет вам строить и одновременно устанавливать несколько версий RPM одних и тех же компонентов на вашу систему, не влияя на системные версии RPM пакетов, установленных из вашего дистрибутива. Как только программная коллекция установлена, она активируется с помощью команды scl, которая полагается на Modules для настройки пользовательской среды.
Поскольку вы упоминаетеapt
, это может быть для вас бесполезно.
Я немного погуглил, и похоже, что это недоступно для Debian.
https://lists.debian.org/debian-user/2017/02/msg00461.html -
Проект OSCAR Cluster Project использует модули вместе с инструментом под названием switcher.
Я не уверен в текущем состоянии разработки и поддержки.
Смотрите также https://github.com/oscar-cluster -
Flatpak, но, согласно этому, я не знаю, является ли он таким гибким, как Software Collections.
Если вас интересует (2), что, я полагаю, не так, поскольку вашей возражением против виртуальной машины было то, что она является избыточной, а не занятое место, я полагаю, вы обязаны устанавливать/удалять.
Я не знаю никакого пакета, который бы администрировал установку/удаление пакетов в пакетных наборах.
apt-get autoremove
удалит пакеты, которые были установлены автоматически для удовлетворения зависимостей другого пакета, ЕСЛИ на них не зависят установленные пакеты.
Например:
# apt-get install inkscape gimp
установит inkscape и gimp и все библиотеки и другие пакеты, которые указаны у них в строках Depends:
или Recommends:
(*).
# apt-get remove inkscape gimp
# apt-get autoremove
удалит оба этих пакета и все автоматически установленные зависимости (если только другой пакет, который вы установили позже, также не зависит от них). Он удалит ВСЕ автоматически установленные пакеты, которые больше не нужны для удовлетворения зависимости, а не только те, которые были автоматически установлены для inkscape или gimp.
или, чтобы полностью удалить их вместо простого удаления:
# apt-get purge inkscape gimp
# apt-get --purge autoremove
Если вы хотите сохранить пакет, который был автоматически установлен, вы можете использовать apt-mark
для его пометки как вручную установленного. Например:
# apt-mark manual some-package(s)
Вы также можете пометить пакет, который был установлен вручную, как автоматический с помощью:
# apt-mark auto some-package(s)
(*) По умолчанию apt автоматически устанавливает пакеты, которые указаны в строках Depends:
или Recommends:
, но автоматическая установка рекомендуемых пакетов может быть отключена, установив APT { Install-Recommends "False";};
в /etc/apt/apt.conf
или в файле в /etc/apt/apt.conf.d/
.
.
Ответ или решение
В мире IT часто возникает необходимость временной установки программного обеспечения с целью его тестирования перед окончательным решением о его постоянной установке или удалении. Это особенно актуально для пользователей, которые занимаются графическим дизайном или математическими вычислениями и стремятся выявить, какие инструменты наиболее подходят для их нужд. В данном контексте важен продуманный подход к управлению пакетами, чтобы избежать захламленности системы и сохранить её производительность.
Теоретическая основа:
При управлении пакетами в Linux-системах, таких как Debian или Ubuntu, основное место занимает пакетный менеджер APT (Advanced Package Tool). APT предоставляет широкий функционал для установки, удаления и управления программным обеспечением. Основная проблема, с которой мы сталкиваемся при временной установке — это необходимость не только установить пакеты, но и предусмотреть способ их лёгкого удаления вместе с ненужными зависимостями.
APT в этом контексте предоставляет несколько команд, которые могут быть полезны. Например, apt-get install
используется для установки пакетов, а apt-get remove
и apt-get purge
— для их удаления. Если программы были установлены с использованием автоматических зависимостей, то apt-get autoremove
может быть полезной командой для удаления этих зависимостей, если они больше не нужны другим программам.
Пример использования:
Рассмотрим типичную ситуацию. Вы устанавливаете пакеты для графического дизайна:
apt-get install inkscape gimp
И для математических вычислений:
apt-get install texlive-full gnuplot
Через некоторое время вы решаете, что эти пакеты вам больше не нужны. Вы планируете их удаление, но хотите быть уверены, что также удалите все связанные с ними зависимости, чтобы сэкономить дисковое пространство и сохранить систему чистой.
Для этого вы можете использовать следующие команды:
apt-get remove inkscape gimp
apt-get autoremove
Эти команды удалят упомянутые программы вместе со всеми автозависимостями, которые не требуются другим программам. Для полного удаления конфигурационных файлов используйте:
apt-get purge inkscape gimp
apt-get --purge autoremove
Если у вас возникнет необходимость сохранить какое-либо из зависимостей, вы можете обозначить его как установленное вручную, воспользовавшись apt-mark
:
apt-mark manual <пакет>
Это предотвратит автоматическое удаление пакета командой autoremove
.
Применение и контекст:
Ваша задача — тестирование софта, предполагающее временную установку с последующим легким удалением. Поэтому подход через APT и использование стратегий управления зависимостями кажутся наилучшим решением в вашем случае.
Также стоит рассмотреть альтернативные подходы, такие как использование контейнеров или специальных инструментов для управления средами, например, Flatpak или Docker, которые создают изолированные окружения. Это позволяет довольно быстро устанавливать и удалять пакеты без воздействия на основную систему. Однако, в отличие от виртуальных машин, они обладают меньшими ресурсными затратами. Однако стоит учесть, что освоение этих инструментов может потребовать дополнительного времени и усилий.
Таким образом, подход к временной установке программного обеспечения зависит от ваших конкретных нужд и инфраструктуры. Если вы хотите сохранить систему чистой и избежать лишних ресурсов, то использование возможностей APT в сочетании с пониманием того, как работают зависимости, обеспечит вам нужный результат.