Что делает apt-get install ...
команда делает?
Когда я вхожу apt-get install ...
команда, существуют некоторые тексты, появляющиеся на экране, но это не имеет достаточной информации для меня. Я хочу знать, создается ли какой-либо файл / отредактированный, любой сервис запускается и другие операции...
Есть ли любой .sh
файл, выполняемый, когда apt-get install ...
выполненный? Если так, как я могу видеть содержание этого sh
файл?
Причина этого вопроса недавно, я пытался установить tomcat7 с apt-get install tomcat7
. Все хорошо работает, пока я не устанавливаю tomcat7-admin
(веб-приложение менеджера), сервер стал безразличным к любому запросу. Я много раз пробовал это, и это всегда происходит.
Главным образом, 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
Существуют некоторые фантастические ответы здесь, которые лучше, чем этот короткий, но что-то, что Вы могли бы рассмотреть, чтобы помочь Вам получить лучшее понимание изменений, внесенных диспетчером пакетов, Докер . Вы можете разность изменения, внесенные в контейнере с помощью docker diff <container>
, и она покажет Вам все изменения. Это особенно полезно для взгляда под капотом для наблюдения то, что apt-get install
делает к системе. Быстрый поиск заставит Вас несколько ресурсы помогать реализовать это.
Короче говоря: apt-get install
делает все, что необходимо, что Ваша система может успешно выполнить новое установленное приложение.
Дольше:
Предварительные выборы:
Все пакеты, требуемые пакетом (пакетами), указанным для установки, будут также получены и установлены.
Те пакеты хранятся на репозитории в сети. Так, apt-get
загрузки все необходимые во временный каталог (/var/cache/apt/archives/
). Они будут загружены с сети - или FTP-сервер. Они указаны в так называемом sources.list
; список репозиториев. С тех пор они установлены один за другим процедурно.
Первые - те, которые не имеют никаких дальнейших зависимостей; таким образом, никакой другой пакет не должен быть установлен для них. Через это другие пакеты (который имел зависимости ранее) не имеют теперь никаких зависимостей больше. Система продолжает делать тот процесс много раз, пока указанные пакеты не установлены.
Каждый пакет подвергается процессу установки.
Установка пакета:
В находящихся в Debian дистрибутивах Linux, как Ubuntu, те пакеты находятся в указанном стандартизированном названном формате: deb - двоичный формат пакета Debian.
Такой пакет содержит файлы, которые будут установлены в системе. Также они содержат файл управления. Тот файл содержит сценарии, которые упаковочная система должна выполнить в определенной ситуации; так называемые обслуживающие сценарии. Те сценарии разделяются в:
preinst
: перед установкой файлов в системы filehierarchypostinst
: после установкиprerm
: перед удалениемpostrm
: после удаленияСуществует интересное изображение, показывая процедуру установки нового пакета:
Существует также больше файлов управления, самые важные следующие:
control
: Список зависимостей и другая полезная информация для идентификации пакетаconffiles
: Список файлов конфигурации (обычно те, которые в /etc
)debian-binary
: содержит deb-версию-пакета, в настоящее время 2.0md5sums
: Список md5sums каждого файла в пакете для проверкиtemplates
: Файл с описаниями ошибок и диалоговыми окнами во время установкиДля фактического материала под капотом необходимо будет захватить источник Кв. Довольно простой, если Вам включили исходные репозитории:
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
но это - глубокое хорошо. Вы могли провести дни, распутывая это.
Исходная документация хороша все же. Вы могли сделать худшие вещи, чем пройти каждый файл и прочитать заголовок для разработки то, что на самом деле происходит.