Як попросити apt-get пропустити всі етапи конфігурації після встановлення?


11

Під час встановлення деяких пакетів (наприклад, RabbitMQ) на машинах Debian / Ubuntu, post-installкрок за замовчуванням починає роботу служби.

Хоча це чудово у більшості випадків, у деяких випадках (наприклад, коли у вас вже є служба, що працює на потрібному порту), це не вдається, і це повністю виходить з apt-getладу.

Чи є спосіб сказати apt-getпропустити всі ці post-installкроки, щоб він все-таки міг правильно встановитись?

Примітка. Це не стосується питань під час встановлення, навіть в інтерактивних сесіях ці встановлення не вдається, тому що post-installкрок не вдається помилка не обробляється правильно




1
Це питання схоже, але різне. Йдеться про пропуск усіх кроків, а не лише інтерактивних. Деякі завдання автоматично виконують сценарії, які не завжди потрібні.
Вольф

Відповіді:


8

Як попросити apt-get пропустити будь-які інтерактивні кроки конфігурації після встановлення?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

Edit : Так, це було для пропуску (ну, автоматизація) після установки на питання , правда - вибачте.

Немає можливості пропустити сценарії після встановлення . Офіційна політика Debian полягає в редагуванні сценарію, щоб повернути нетермінальну помилку або виправити сценарій. Див. Http://www.debian-administration.org/articles/251

Здається, ви автоматизуєте це для багатьох серверів, і, напевно, вам, мабуть, захочеться зробити власну версію пакету та розгорнути її. Інший варіант - надіслати електронною поштою технічну підтримку пакета та обговорити, чи невдача при запуску має бути термінальною помилкою після встановлення (наприклад, я не вірю, що це стосується інших пакетів, таких як apache або lighttpd, але я можу помилитися .)


Це просто пропустити інтерактивні кроки. Тут не проблема, це неінтерактивні post-installкроки, які виходять з ладу, якщо щось подібне service rabbitmq-server startне вдається.
Вольф

Оновлено. Чи допомагає це?
Бретт Дікеман

так, краще знати, що це не можливо, ніж цікавитись, чи це :) Дякую за допомогу.
Вольф

Якщо ви використовуєте sudo, експорт змінної середовища не працюватиме, але ви можете це зробити так:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich

4

Можливо, ви хочете зробити щось із політикою-rc.d . Див. Головну сторінку для invoke-rc.d. Ви можете встановити політику, щоб послуги не запускалися автоматично.


Це спосіб подолати це, але я вважаю це тимчасовим заходом? Принаймні ... Я думаю, що таким чином ви б глобально відключили всі запуски послуг.
Вольф

2

це має працювати

echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d

Трохи хакіт і дуже специфічний для цього випадку, але він дуже допомагає! Дякую :)
Wolph
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.