LINUX.ORG.RU

Кто собирал пакеты для Debian? Прошу помощи

 , ,


2

2

Доброго дня, ЛОР!

У кого есть опыт, прошу поделиться: есть ли какая-нибудь деректива в пакете, которая может исполнить bash-сценарий ДО начала установки зависимостей, указанных у этого пакета. Конкретно нужно несколько вызовов debconf-set-selections, чтобы пакеты в зависимостях установились с заранее выбранными ответами без интерактивного окна.

Большое спасибо! Буду очень рад, если такой инструмент имеется :)

★★

Насколько понял вопрос, это уже самих пакетов зависит.

А poistinstall с заменой конфигов этих пакетов - не вариант?

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

Шутка в том, что пре- и пост- интсалл сценарии моего пакета выполняются всегда ПОСЛЕ установки всех упомянутых зависимостей.

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

Да это нормальное поведение ©

Когда-то собирал deb-пакет у которого в зависимостях Х11, но свой .xinit (вроде как, давно было) надо.

Так я пост- скриптом это делал, так как было понятно, что «иксы» уже установились, раз до моего пакета дело дошло.

ololoid ★★★★
()

такое не предусмотрено

Harald ★★★★★
()

можно теоретически сделать другой пакет, который будет делать то, что нужно, и будет иметь в зависимостях твой пакет

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

мне нужно настроить другие до распаковки моего пакета.

Используй мета-пакет поверх своего.

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

Блин. Ты на 100% уверен, что нет возможности раннего исполнения скриптов?

Да даже второй пакет не поможет: apt сначала поставит все зависимости, а потом устанавливаемый пакет.

rmu ★★
() автор топика

Конечно же нет. Что будет если у меня зависимости уже установлены с другими ответами?

slovazap ★★★★★
()

а в чем великая проблема настроить все после установки? а если зависимости у меня уже стоят и настроены не так, как вы задумали? и самое главное - я бы ударил по лицу мейнтейнера пакета, который взял и переписал мне мои конфиги. нормальные люди либо все преднастроенное в докер пакуют, либо дают скрипт install.sh, который администратор локалхоста запустит, если захочет.

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

Ясно. Благодарю за ответы. Помечаю как решённая.

rmu ★★
() автор топика

если это вообще unattended install, то все селекшены ты можешь прописать в preseed файл.

если в уже установленной ОС, то либо руками до установки пакета, либо никак.

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

Я тебя понял: в моём случае только руками, либо, как посоветовал комрад @biglpfan, сопроводить установочным сценарием.

rmu ★★
() автор топика

Вообще, это дело пакетов что-то спрашивать. Твой пакет не хозяин пакетам зависимостей. Можно отключить интерактивный режим во время установки:

Что-то вроде такого:

DEBIAN_FRONTEND=noninteractive apt-get install...

Но это, сам понимаешь, надо специально просить пользователя так ставить. Или отключать глобально для всей системы (снова пользователя просить). См. в разделе ENVIRONMENT. https://manpages.debian.org/testing/debconf-doc/debconf.7.en.html Еще есть DEBCONF_NONINTERACTIVE_SEEN.

Zubok ★★★★★
()
Ответ на: комментарий от Zubok
DEBIAN_FRONTEND=noninteractive apt-get install...

Привет! Это немного не то, что нужно. Так зависимости поставятся с параметрами по умолчанию, а в моём случае при установке пакета нужно подстроить зависимости под конкретную задачу. Видимо, только установочный самописный сценарий поможет.

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

Твой пакет не хозяин пакетам зависимостей.

Золотые слова™

Вот от этого правила и нужно плясать при проектировании своего пакета.

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

Таким косолапым способом лезть в базу данных debconf... Ты почитай, кстати, man выше. Там как раз описан сценарий, когда надо обновить систему, чтобы она не задавала вопросов, но чтобы настройки прописались такие, какие тебе нужны. Но там на примере обновления множества машин, а база настроек через LDAP (раздел Unattended Package Installation). Но это опять не то, что ты спрашиваешь, так как не изнутри пакета работает, а на уровне apt.

Unattended Package Installation

If you have many machines to manage you will sometimes find yourself in the position of needing to perform an unattended installation or upgrade of packages on many systems, when the default answers to some configuration questions are not acceptable. There are many ways to approach this; all involve setting up a database and making debconf use it to get the answers you want.

Видимо, только установочный самописный сценарий поможет.

Если надо перед конфигурацией пакетов что-то выполнить, то это надо пихать в preinst.

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