Рейтинг:3

Как перехватить коды выхода из файла preinst при установке пакета Debian?

флаг cn

Я пытаюсь установить пакет Debian на свой компьютер через сценарий оболочки, т.е. в сценарии оболочки я даю дпкг -я команда . Внутри есть преинст файл, который используется. Теперь в этом файле одно из условий не выполняется, скажем, когда х=0 я выхожу с выход 2

Я хочу, чтобы любой код выхода, с которым завершается файл preinst, я мог бы перехватить этот код выхода, и в моем файле install.sh я сделаю оператор печати на его основе.

Проблема в том, когда я делаю эхо $? он всегда дает мне 1, заявляя, что установка dpkg не удалась, но этот код возврата я не получаю. Есть ли способ сделать это, заранее спасибо

Рейтинг:1
флаг cn

Я предполагаю, что в файле preinst пакета deb не выполняется какое-то условие. Я думаю, что было бы лучше перенести проверки из preinst в скрипт-оболочку, т.е. файл install.sh.

например:

#!/бин/баш

если [ "$x" -eq "0" ]; тогда
   эхо Проверить x = 0 не удалось
   выход 1;
фи
#Поместите сюда все остальные подобные проверки...

dpkg -i пакет.deb

Предполагается, что вы можете изменить preinst и installer.sh!

Этот блог на обертке установки - хорошее чтение 10-15 минут!

Ключевой момент из блога:

Установочные оболочки обычно требуются по одной из следующих причин (не ограничиваясь перечисленными):

  1. Предварительные/пост-реквизиты
  2. Сценарий до/после, например: удалить файл/ярлык, создать раздел реестра
  3. Проверка условий перед установкой, например: правильная ОС, правильное имя компьютера (или часть имени)
  4. Проверьте версию установленного предварительного компонента, например: версию MS Office.
  5. Проверьте, вошел ли пользователь в систему
  6. Проверьте, используется ли программа пользователем, например: в случае обновления
ThunderBird avatar
флаг ru
Однажды могут возникнуть проблемы со связью между этим сайтом и блогом, который вы упомянули в своем ответе. Не могли бы вы выделить здесь жизненно важные шаги, если не все?
Atharva Ranade avatar
флаг cn
Спасибо за предложение!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.