Что делает склонный - добираются, установка делают под капотом?

Что делает apt-get install ... команда делает?

Когда я вхожу apt-get install ... команда, существуют некоторые тексты, появляющиеся на экране, но это не имеет достаточной информации для меня. Я хочу знать, создается ли какой-либо файл / отредактированный, любой сервис запускается и другие операции...

Есть ли любой .sh файл, выполняемый, когда apt-get install ... выполненный? Если так, как я могу видеть содержание этого sh файл?

Причина этого вопроса недавно, я пытался установить tomcat7 с apt-get install tomcat7. Все хорошо работает, пока я не устанавливаю tomcat7-admin (веб-приложение менеджера), сервер стал безразличным к любому запросу. Я много раз пробовал это, и это всегда происходит.

60
задан 25 October 2014 в 16:24

4 ответа

Главным образом, apt-get делает следующие вещи:

  • проверки на зависимости (и просит устанавливать их),
  • загружает пакет, проверяет его и затем говорит dpkg устанавливать его.

dpkg будет:

  • извлеките пакет и скопируйте содержание в правильное местоположение и проверьте на существующие ранее файлы и модификации на них,
  • запустите скрипты специалиста по обслуживанию пакета: preinst, postinst, (и prerm, postrm перед ними, если пакет обновляется),
  • выполните некоторые действия на основе триггеров

Вы могли бы интересоваться обслуживающими сценариями, которые обычно располагаются в /var/lib/dpkg/info/<package-name>.{pre,post}{rm,inst}. Это обычно сценарии оболочки, но нет никакого твердого правила. Например:

$ ls /var/lib/dpkg/info/xml-core.{pre,post}{rm,inst}
/var/lib/dpkg/info/xml-core.postinst
/var/lib/dpkg/info/xml-core.postrm
/var/lib/dpkg/info/xml-core.preinst
/var/lib/dpkg/info/xml-core.prerm
49
ответ дан 22 November 2019 в 23:39

Существуют некоторые фантастические ответы здесь, которые лучше, чем этот короткий, но что-то, что Вы могли бы рассмотреть, чтобы помочь Вам получить лучшее понимание изменений, внесенных диспетчером пакетов, Докер . Вы можете разность изменения, внесенные в контейнере с помощью docker diff <container>, и она покажет Вам все изменения. Это особенно полезно для взгляда под капотом для наблюдения то, что apt-get install делает к системе. Быстрый поиск заставит Вас несколько ресурсы помогать реализовать это.

6
ответ дан 22 November 2019 в 23:39

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

Дольше:

Предварительные выборы:

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

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

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

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

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

Установка пакета:

В находящихся в Debian дистрибутивах Linux, как Ubuntu, те пакеты находятся в указанном стандартизированном названном формате: deb - двоичный формат пакета Debian.

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

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

Существует интересное изображение, показывая процедуру установки нового пакета:

installation

Существует также больше файлов управления, самые важные следующие:

30
ответ дан 22 November 2019 в 23:39

Для фактического материала под капотом необходимо будет захватить источник Кв. Довольно простой, если Вам включили исходные репозитории:

apt-get source apt

apt-get сама команда живет в cmdline/apt-get.cc. Это - боль для прочтения только большая часть apt-getдействия разъяснены вполне экстенсивно там. Установка однако, отображается через a DoInstall функция, которая живет в apt-private/private-install.{cc,h}.

Необходимо помнить, что склонный - добираются, просто одна сторона монеты.
dpkg обрабатывает фактическую установку, но DoInstall не знает о dpkg непосредственно. apt-get агностик на самом деле удивительно диспетчера пакетов. Вся функциональность абстрагирована через apt-pkg/package-manager.cc

Я только смотрю кратко, но даже там я не вижу, где это на самом деле присоединяет к dpkg системы. Часть этого, кажется, автоматически сконфигурирована через apt-pkg/aptconfiguration.cc но это - глубокое хорошо. Вы могли провести дни, распутывая это.

Исходная документация хороша все же. Вы могли сделать худшие вещи, чем пройти каждый файл и прочитать заголовок для разработки то, что на самом деле происходит.

11
ответ дан 22 November 2019 в 23:39

Другие вопросы по тегам:

Похожие вопросы: