Извините, если что-то подобное уже существует, но в ходе своих исследований я не нашел никаких доказательств этого.
что я хочу: скрипт типа "монитор", который я могу написать, который я бы "активировал" перед установкой apt-get одного или нескольких (акцент на большем) пакетов, а затем "деактивировал" его, когда закончу. Он будет "журналировать" все установленное, и если я не удовлетворен установкой, удалит все следы всех установок одной командой.
Я хочу это сделать, потому что я программист, а настройка среды программирования для нового языка может быть связана с ошибками (или ошибками моего собственного пользователя). Например, go lang вызвал у меня проблемы, но ruby/rails был довольно безболезненным и т. д.
Насколько я понимаю, apt-get purge и autoremove довольно хорошо очищают систему от пакета, но мне хотелось бы думать, что моя идея все еще полезна при последовательной установке множества пакетов.
Мой вопрос: как мне сделать это наиболее эффективно, учитывая скорость и логичность?
Все (даже, казалось бы, плохие) способы, которые я нашел для реализации:
--inotifywait: немыслимо для использования в масштабах всей системы, может применяться только к «популярным» каталогам, но файлы будут ускользать от внимания
--diff: то же самое, что и выше, в принципе.
--git: использовать git для сохранения "картинки", к которой можно будет вернуться. Те же проблемы, что и выше, но в меньшей степени (по моему мнению. Пожалуйста, поправьте меня, если это не так)
--Записывать имена установленных пакетов (каким-то образом)/просто подсчитывать количество установленных пакетов, затем переходить в /var/cache/apt и использовать apt-get remove и т. д. Может ли что-то ускользнуть здесь (обычно)?
Я перечислил идеи в том порядке, в котором они у меня возникали, в соответствии с моими исследованиями, так что, как вы видите, они эволюционировали в более разумные решения.
Так что по сути я пришел сюда за советом, потому что я полностью уверен в написании bash-скрипта, но у меня никогда не было такой необходимости, поэтому я ищу более мудрого совета. И честно говоря, это для развлечения и обучения тоже.
Спасибо!
решение1
Всем, у кого схожие цели,
В итоге я сохранил /var/log/apt/history.log в двух текстовых файлах, один до и один после "сеанса" установки. Также, чтобы разрешить возможное расширение, я сохранил вывод diff в файл, который содержал только имена пакетов недавно установленных пакетов (это могло бы позволить интерактивную опцию командной строки, которая бы циклически проходила по каждому пакету с опцией удаления (Y/n), вместо массового удаления)
Чтобы направить других людей на правильный путь: sed/grep, diff, cut, tail, xargs и использование > и >> для отправки вывода в файлы. И базовые скрипты bash.