Отключить / Удалить Apt(-get)
Есть ли в любом случае отключить / удалить apt-get на сервере на основе debian. Я предпочитаю использовать aptitude и не хочу, чтобы другие пользователи устанавливали пакеты с помощью apt-get, чтобы избежать проблем с пакетами / базами данных.
5 ответов
Нет проблем с людьми, использующими оба инструмента одновременно. Я часто устанавливаю вещи, используя apt-get или aptitude из командной строки, или использую интерфейс curses для обновления безопасности. И apt-get, и aptitude являются интерфейсом libapt-pkg, который занимается разрешением зависимостей и извлечением пакетов. libapt-pkg, в свою очередь, использует dpkg для фактической установки пакета. И dpkg, и libapt-pkg блокируют в нужном месте, так что если кто-то запускает aptitude, кто-то другой не сможет установить пакет через apt-get, пока aptitude не закроется.
Так как поддержка автозависимостей apt-get не имеет преимуществ у одного инструмента над другим [0]
[0] кроме aptitude не имеет супер коровьей силы.
Есть множество мест, которые Ubuntu официально предлагает использовать apt-get, rgrep apt-get /usr/lib/python2.6/dist-packages/DistUpgrade
чтобы увидеть это. Удаление apt-get или изменение разрешений для него может быть проблематичным для утилит Debian, которые могут сделать относительно безопасное предположение, что они там есть.
Идея о том, что между apt-get и aptitude нет разницы, абсурдна. Да, они имеют дело с одними и теми же хранилищами, но делают это по-разному. Не вдаваясь в подробности, добавление пакетов - это примерно то же самое, но если вы когда-нибудь захотите удалить пакет или что-то изменить, вы не сможете смешать оба пакета и ожидать хороших результатов.
Ищите "aptitude vs apt-get" в своей любимой поисковой системе для подробных статей о различиях.
При этом вы можете добавить это в свой файл /root/.bashrc:
alias apt-get = "echo 'Пожалуйста, используйте aptitude в этой системе.'"
Затем:
источник /root/.bashrc
Существует множество способов сделать это, но тот факт, что ваши пользователи могут устанавливать пакеты, подразумевает, что у них есть доступ на уровне root.
Если у них есть root, вы должны помнить, что все, что может сделать root, root может отменить (в любом случае в этом контексте).
При этом я бы сказал, что самый безопасный способ сделать это - удалить (но сохранить копию) файл sources.list в /etc/apt.
Таким образом, все различные варианты apt-get (например, aptitude и кто знает, что еще) не будут работать. Пользователям также (незначительно) сложнее восстановить это, чем отменить "chmod 0" определенной команды.