Если всё это делать в одном терминале, то неизбежны: путаница в зависимостях, безуспешное копание в истории ввода и прочие пляски. Можно, конечно, для каждой задачи открывать новую вкладку в терминале или новый терминал, но тут может вмешаться параллельная задача и порядок задач будет нарушен, и открутить его в обратную сторону будет уже очень сложно - опять бардак.
Достаточно давно я выработал для таких случаев очень удобный, на мой взгляд, способ - рекурсивный запуск `bash`. Если для установки или сборки какого-либо приложения требуется установить или собрать что-нибудь другое, то в момент возникновения такой необходимости я запускаю `bash` прямо в этом же терминале. Это можно делать несколько раз, потом выходить из последнего запущенного экземпляра и получать действие, которое потребовало удовлетворить его зависимости предпоследним в истории. Примерно вот так:
lig@host:~/soft/application$ ./configure Failed "dependency" required lig@host:~/soft/application$ bash lig@host:~/soft/application$ sudo aptitude install dependency lig@host:~/soft/application$ exit lig@host:~/soft/application$ ./configure Success lig@host:~/soft/application$ Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/e. Код раскрашен с помощью Paste.NoPHP.ru.
Однако, мне всегда не давало покоя, что я не вижу уровень вложенности `bash`. И вот недавно с небольшой посторонней помощью дошел до решения.
Небольшая добавка в `~/.bashrc`, которая добавляет в приглашение командной строки отображение уровня рекурсии начиная с ноля:
if [ -z $recursion ]; then recursion="0"; export recursion; else recursion=$(($recursion+1)); fi; PS1='$recursion:'$PS1 Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/c. Код раскрашен с помощью Paste.NoPHP.ru.
После добавления этого кода в `~/.bashrc` первый листинг будет выглядеть вот так:
0:lig@host:~/soft/application$ ./configure Failed "dependency" required 0:lig@host:~/soft/application$ bash 1:lig@host:~/soft/application$ sudo aptitude install dependency 1:lig@host:~/soft/application$ exit 0:lig@host:~/soft/application$ ./configure Success 0:lig@host:~/soft/application$ Постоянная ссылка на этот кусок кода: http://paste.nophp.ru/f. Код раскрашен с помощью Paste.NoPHP.ru.
Вот так-то лучше:)

