Думаю, это не сработает.
Самый простой для меня вариант — запустить это дважды, и если во второй раз возникнет ошибка, просто прервать выполнение.
Тем не менее, это не так тривиально, как «запустить дважды»:
- Вы запускаете это в первый раз, перехватывая ошибки для любой конкретной устанавливаемой настройки.
- Во второй раз вы просто запускаете это пакетно и прерываете выполнение, если что-то не удалось.
Если мы уже занимаемся этим хаосом, нам нужно также обрабатывать случаи, когда есть несколько зависимостей.
Также остаётся вопрос о чистом откате, поэтому это вовсе не тривиальная задача.