Script Bash para registrar todas as instalações e locais recentes do apt-get

1

Desculpe se algo assim já existe, mas em minha pesquisa não encontrei nenhuma evidência disso.

o que eu quero: um script do tipo "monitor" que eu possa escrever, que eu "ative" antes de o apt-get instalar um ou mais (ênfase em mais) pacotes e, em seguida, "o desative" quando terminar. Ele registrará tudo o que está instalado e, se eu não estiver satisfeito com a instalação, removerá todos os vestígios de todas as instalações com um comando.

Eu quero fazer isso porque sou programador e a configuração do ambiente de programação para um novo idioma pode ser corrigida por erros (ou repleta de erros do meu próprio usuário). Por exemplo, go lang me deu problemas, mas ruby ​​/ rails era bastante indolor, etc.

agora, entendo que o apt-get purge e o autoremove fazem um bom trabalho de limpeza do sistema de um pacote, mas gostaria de pensar que minha ideia ainda é útil ao instalar muitos pacotes em sucessão.

Minha pergunta: como devo fazer isso com mais eficiência, velocidade e lógica são uma prioridade.

Todas as maneiras (mesmo aparentemente ruins) que eu encontrei para implementar:

--inotifywait: inconcebível para uso em todo o sistema, poderia se aplicar apenas a diretórios 'populares', mas faria com que os arquivos passassem despercebidos

--diff: o mesmo que acima, praticamente.

--git: use git para salvar uma "imagem" que pode ser revertida para. Mesmas questões acima, mas em menor grau (na minha opinião. Corrija-me se não)

--Log os nomes dos pacotes instalados (de alguma forma) / simplesmente conte o número de pacotes instalados, entre em / var / cache / apt e use o apt-get remove etc.

Listei as idéias na ordem em que as tive, em conjunto com minha pesquisa, para que você possa ver que elas evoluíram para soluções mais razoáveis.

Então, essencialmente, eu vim aqui para pedir conselhos, porque me sinto completamente à vontade para escrever um script básico, mas nunca precisei de um antes, então busco conselhos mais sábios. E para ser sincero, isso é divertido e também para aprender.

Obrigado!

Trés DuBiel
fonte
1
apt-getarmazena os logins /var/log/apt/, se isso ajudar você. veja askubuntu.com/questions/21657/... e askubuntu.com/questions/425809/where-are-the-logs-for-apt-get
Ron
Ei! Isso funcionou como um encanto. Este pequeno projeto é ótimo para aprender alguns comandos interessantes da CLI (se alguém estiver lendo isso).
Trés DuBiel

Respostas:

1

Para qualquer pessoa com objetivos semelhantes,

Acabei salvando o /var/log/apt/history.log em dois arquivos de texto, um antes e outro após a instalação "sessão". Além disso, para permitir uma possível extensão, salvei a saída do diff em um arquivo, que era apenas o nome dos pacotes instalados recentemente (isso poderia permitir uma opção de linha de comando interativa, que passaria por cada pacote com um (Y / n ) opção de exclusão, em vez de remoção em massa)

Para colocar outras pessoas no caminho certo: sed / grep, diff, cut, tail, xargs e o uso de> e >> para enviar a saída para os arquivos. E scripts básicos do bash.

Trés DuBiel
fonte
1
Aqui está a fonte, se alguém quiser: github.com/dubielt1/Imploder
Trés DuBiel