Как предотвратить сбой подпроцесса во время установки пакета Debian, приводящий к немедленному завершению установки

Он говорит, что нажимайте мышь курсор , а не нажимайте мышь. Вам нужно переместить курсор мыши к краю экрана или к горячему углу. Вы должны быть достаточно точны, если вы немного отклонитесь от угла, он может не активироваться, или если вы будете двигать его очень медленно, он не сработает, поэтому нет никакого способа гарантировать 100% успех.

1
15.09.2019, 15:01
1 ответ

Я полагаю, что это находится в вашем посте -inst script или вызывается из него.

Соглашение об упаковке Debian состоит в том, чтобы запускать скрипты оболочки post -inst и т. д. с set -e, которые завершаются с ошибкой при любом незахваченном не-нулевом коде выхода. Вы можете «зафиксировать» статус выхода, например, ||или &&, или if/ elif, whileили until. Подробнее см. man bash(найдите-e.*Exit).

напр.

ping_count=0
until ping hostname || [ "$ping_count" -gt 5 ]; do
  sleep 1 # or whatever
  ping_count+=1   # non-posix. won't work with dash.
done

Попробуйте set +eперед ping (или любой другой командой, которая может вернуть код ошибки, который, как вы знаете, вас не волнует ), а затем вернитесь к set -e.

ПРИМЕЧАНИЕ. :Я настоятельно не рекомендую просто полностью избавиться от set -e. Если какая-либо другая программа в сообщении -inst возвращает код ошибки, вы (и тот, кто устанавливает пакет ), действительно хотите знать об этом, и вы хотите dpkgзнать, что установка не удалась..

2
27.01.2020, 23:30

Теги

Похожие вопросы