Что делает установочный скрипт в apt-get install?

14

Кажется apt-get install, скачает пакет Debian и попробует запустить скрипт установки для:

  • Создать правильный каталог
  • Создать надлежащий аккаунт
  • Копировать двоичные файлы
  • Копировать файлы данных
  • Копировать файлы Conf
  • Скопируйте скрипт init.d
  • Запустить сервис
  • и т.п.

Я действительно заинтересован в этом и хочу выяснить, что происходит, шаг за шагом. Есть ли способ это увидеть? Как команды печати оболочки в режиме «пробного запуска»?

ShenLei
источник

Ответы:

25

Короче говоря : apt-get installделает все необходимое, чтобы ваша система могла успешно выполнить новое установленное программное приложение.

Более длинная версия:

Отборочные:

Из справочной страницы :

Все пакеты, требуемые пакетами, указанными для установки, также будут извлечены и установлены.

Эти пакеты хранятся в хранилище в сети (интернет). Итак, apt-getзагружает все необходимые пакеты во временный каталог ( /var/cache/apt/archives/). Они будут загружены с веб-или FTP-сервера. Они указаны в так называемых sources.list; список репозиториев для менеджера пакетов apt. С тех пор они устанавливаются один за другим процедурно.

Первыми устанавливаются те, которые не имеют дальнейших зависимостей; поэтому для их правильной работы не нужно устанавливать никаких других пакетов. Благодаря этому другие пакеты (которые ранее имели зависимости) больше не имеют зависимостей. Система продолжает делать этот процесс снова и снова, пока не будут установлены указанные пакеты.

Каждый пакет проходит процедуру установки.

Процедура установки пакета:

В дистрибутивах Linux на основе Debian, таких как Ubuntu или Mint, эти пакеты имеют определенный стандартизированный формат: deb -> Формат двоичного пакета Debian .

Такой пакет содержит файлы, которые будут установлены в системе. Также они содержат контрольный файл . Этот файл содержит сценарии, которые система упаковки должна выполнить в конкретной ситуации; так называемые сценарии сопровождающего . Эти сценарии разделены на:

  • preinst: перед установкой файлов в файловую иерархию системы
  • postinst: после установки
  • prerm: до удаления
  • postrm: после удаления

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

Помимо этих сценариев, система пакетов имеет триггеры , предназначенные для определенных событий. Например, восстановление initrds при установке новой версии ядра или ldconfig или man-db. Они активируются одним или несколькими пакетами и запускаются в конце всего процесса установки.

Есть интересная картинка, демонстрирующая процедуру установки нового пакета:

установка

Также есть больше control-файлов, наиболее важными из которых являются следующие:

Если вам интересно, вы можете распаковать пакет deb (после загрузки) вручную и посмотреть, что внутри:

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

Теперь вы видите файл, data.tar.gzсодержащий файлы, и файл, control.tar.gzсодержащий четыре сценария сопровождающего и вышеупомянутые управляющие файлы.

хаос
источник
В настоящее время я считаю, что будет лучше использовать dpkg-deb -x package.debвместо ar x package.deb, так dpkgкак это официальный менеджер пакетов Deb (над которым используется apt-get).
Fanatique