Що робить сценарій установки в програмі apt-get install?


14

Здається apt-get install, завантажте пакет Debian і спробуйте запустити інсталяційний сценарій для:

  • Створіть відповідний каталог
  • Створіть належний рахунок
  • Скопіюйте двійкові файли
  • Скопіюйте файли даних
  • Скопіюйте файли Conf
  • Скопіюйте сценарій init.d
  • Початок обслуговування
  • тощо.

Мені це справді цікаво і хочу розібратися, що відбувається покроково. Чи є якийсь спосіб, щоб це побачити? Як команди оболонки друку в режимі "сухого виконання"?

Відповіді:


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. Вони активуються одним або декількома пакетами і запускаються в кінці всього процесу встановлення.

Є цікава картинка, що демонструє процедуру установки нового пакету:

установка

Також є більше файлів управління, найважливішими є такі:

Якщо ви зацікавлені, ви можете розпакувати пакет дебютування (після завантаження) вручну і подивитися, що знаходиться всередині:

# 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це офіційний менеджер дебютних пакетів (над яким використовується apt-get).
Фанатик
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.