Что делает apt-get install ...
команда?
Когда я ввожу apt-get install ...
команду, на экране появляются тексты, но мне не хватает информации. Я хочу знать, если какой-либо файл создан / отредактирован, любой сервис запущен и другие действия ...
Есть ли .sh
исполняемый файл при apt-get install ...
запуске? Если так, как я могу увидеть содержимое этого sh
файла?
Причина этого вопроса в том, что я недавно пытался установить tomcat7 apt-get install tomcat7
. Все отлично работает, пока я не установлю tomcat7-admin
(менеджер веб-приложений), сервер стал не отвечать на любые запросы. Я пробовал это много раз, и это всегда происходит.
apt
software-installation
TrungDQ
источник
источник
apt-get
заменяетсяapt
. Замена не завершена, но она работаетinstall
,upgrade
иdist-upgrade
среди других.Ответы:
Главным образом,
apt-get
делает следующие вещи:dpkg
установить его.dpkg
будем:preinst
,postinst
(иprerm
,postrm
прежде , чем они, если пакет модернизируется)Возможно, вас заинтересуют сценарии сопровождающего, которые обычно находятся по адресу
/var/lib/dpkg/info/<package-name>.{pre,post}{rm,inst}
. Обычно это сценарии оболочки, но нет строгого правила. Например:источник
Короче говоря :
apt-get install
делает все необходимое, чтобы ваша система могла успешно выполнить новое установленное программное приложение.Longer:
Отборочные:
Из справочной страницы :
Эти пакеты хранятся в хранилище в сети. Итак,
apt-get
загружает все необходимые файлы во временную директорию (/var/cache/apt/archives/
). Они будут загружены с веб- или ftp-сервера. Они указаны в так называемыхsources.list
; список репозиториев. С тех пор они устанавливаются один за другим процедурно.Первые - те, у которых нет дальнейших зависимостей; поэтому никакой другой пакет не должен быть установлен для них. Благодаря этому другие пакеты (которые ранее имели зависимости) теперь больше не имеют зависимостей. Система продолжает делать этот процесс снова и снова, пока не будут установлены указанные пакеты.
Каждый пакет проходит процедуру установки.
Установка пакета:
В дистрибутивах Linux на основе Debian, таких как Ubuntu, эти пакеты имеют определенный стандартизированный формат: deb - формат двоичных пакетов Debian .
Такой пакет содержит файлы, которые будут установлены в системе. Также они содержат контрольный файл . Этот файл содержит сценарии, которые система упаковки должна выполнить в конкретной ситуации; так называемые сценарии сопровождающего . Эти сценарии разделены на:
preinst
: перед установкой файлов в файловую иерархию системыpostinst
: после установкиprerm
: до удаленияpostrm
: после удаленияЕсть интересная картинка, демонстрирующая процедуру установки нового пакета:
Также есть больше control-файлов, наиболее важными из которых являются следующие:
control
: Список зависимостей и другая полезная информация для идентификации пакетаconffiles
: Список конфигурационных файлов (обычно в/etc
)debian-binary
: содержит версию deb-пакета, в настоящее время 2.0md5sums
: Список md5 сумм каждого файла в пакете для проверкиtemplates
: Файл с описаниями ошибок и диалогами во время установкиисточник
Для того, чтобы по-настоящему скрыться, вам нужно взять источник Apt. Довольно просто, если у вас включены репозитории исходного кода:
Сама
apt-get
команда живет вcmdline/apt-get.cc
. Это тяжело читать, но большинствоapt-get
действий там довольно подробно изложены. Установка, однако, отображается черезDoInstall
функцию, которая живет вapt-private/private-install.{cc,h}
.Вы должны помнить, что apt-get - это всего лишь одна сторона медали.
dpkg
обрабатывает фактическую установку, ноDoInstall
не знаетdpkg
напрямую.apt-get
на самом деле на удивление агностик менеджера пакетов. Вся функциональность абстрагируется отapt-pkg/package-manager.cc
Я только смотрю кратко, но даже там я не вижу, где это на самом деле подключается к
dpkg
системам. Некоторое из этого, кажется, автоматически настроено,apt-pkg/aptconfiguration.cc
но это глубокий колодец. Вы могли бы провести дни, разгадывая это.Хотя исходная документация хороша. Вы можете сделать что-то худшее, чем просмотреть каждый файл и прочитать заголовок, чтобы понять, что на самом деле происходит.
источник
Здесь есть несколько фантастических ответов, которые лучше, чем этот короткий, но что-то, что вы могли бы рассмотреть, чтобы помочь вам лучше понять изменения, внесенные менеджером пакетов, - это Docker . Вы можете изменить изменения, сделанные в контейнере, используя,
docker diff <container>
и он покажет вам все изменения. Это особенно полезно для того, чтобы заглянуть под капот, чтобы увидеть, чтоapt-get install
делает с системой. Быстрый поиск даст вам несколько ресурсов, чтобы помочь реализовать это.источник