LINUX.ORG.RU

Суть установки приложений.


0

1

Установка, в принципе, заключается в рассовывании файлов по нужным каталогам. deb-пакет это, грубо говоря, архив, с которым умеет работать пакетный менеджер. Например, dpkg. Установщик реализуется на уровне кода самой программы? Менеджер должен знать как и куда устанавливать, так? Должен быть какой-то стандарт, по идее.

> deb-пакет это, грубо говоря, архив
+ набор скриптов, выполняющийся до/после установки/удаления
+ информация о зависимостях
+ информация о конфигурационных файлах

Менеджер должен знать как и куда устанавливать, так?

Не понял.

Должен быть какой-то стандарт, по идее.

Вы про Debian Policy, что-ли?

AITap ★★★★★ ()
Ответ на: комментарий от AITap

> набор скриптов, выполняющийся до/после установки/удаления
Скрипты на shell? По идее, они должны быть с определенными названиями, чтобы установщик знал какой запускать.

информация о зависимостях

Что она из себя представляет?

Phaser ()

>Должен быть какой-то стандарт, по идее.

man dpkg

anonymous ()

А в случае компиляции исходников, как файлы раскидываются по каталогам? И как подготовить тарболл для компиляции?

Phaser ()
Ответ на: комментарий от Phaser

На основе мейкфайла, таргет install. Мейкфайл гененируется с помощью automake на основе predefined конфигурации (это я сейчас про классические autotools).

leave ★★★★★ ()
Ответ на: комментарий от Phaser

Если точнее, то там не жестко заданная изначальная конфигурация каталогов, ее можно изменить путем задания параметров скрипта configure. В общем, google://autotools

leave ★★★★★ ()
Ответ на: комментарий от Phaser

> Скрипты на shell? По идее, они должны быть с определенными названиями, чтобы установщик знал какой запускать.
Естественно. preinst, postinst, prerm, postrm, configure. Возможно, какие-то ещё.

информация о зависимостях

Что она из себя представляет?

Прочитайте Debian Policy. Там есть ответы на все Ваши вопросы.
http://www.debian.org/doc/debian-policy/

AITap ★★★★★ ()
Ответ на: комментарий от Phaser

А ещё deb'ы можно расковыривать при помощи архиватора ar:

[15:46:07][aitap@Tarkus ~/deadbeef]> file deadbeef_0.5.1_i386.deb
deadbeef_0.5.1_i386.deb: Debian binary package (format 2.0)
[15:46:15][aitap@Tarkus ~/deadbeef]> ar t deadbeef_0.5.1_i386.deb
debian-binary
control.tar.gz
data.tar.gz
[15:46:44][aitap@Tarkus ~/deadbeef]> ar x deadbeef_0.5.1_i386.deb
[15:46:53][aitap@Tarkus ~/deadbeef]> tar tf control.tar.gz
./
./control
./shlibs
./postrm
./postinst
./md5sums
[15:47:00][aitap@Tarkus ~/deadbeef]> tar tf data.tar.gz | head
./
./usr/
./usr/bin/
./usr/bin/deadbeef
./usr/include/
./usr/include/deadbeef/
./usr/include/deadbeef/deadbeef.h
./usr/include/deadbeef/gtkui_api.h
./usr/lib/
./usr/lib/deadbeef/
[15:47:11][aitap@Tarkus ~/deadbeef]>

AITap ★★★★★ ()
Ответ на: комментарий от whiiteliites

> он просто в корень распаковывает
Понятно. Каталоги в архивах уже разбиты по иерархии: /etc/..., /usr/share/... .

Phaser ()
Ответ на: комментарий от Phaser

Файлы должны раскидываться в соответствии с FHS. Подробнее - смотри в Makefile интересующего тебя исходника программы

Pinkbyte ★★★★★ ()
Ответ на: комментарий от whiiteliites

>он просто в корень распаковывает

в специальных случаях пакетному менеджеру можно намекнуть что корень находится в другом месте :)

Pinkbyte ★★★★★ ()

Как правило да, просто архив с файлами, плюс бывают скрипты для инициализации.

К примеру обновление кэша линкера, обновление кэша иконок, инициализация БД для СУБД, etc (хотя последнее бывает часто мануально).

tensai_cirno ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.