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

1

Desculpe se algo assim já existe, mas na minha pesquisa não encontrei nenhuma evidência de que isso aconteceu.

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

Eu quero fazer isso porque sou um programador, e configurar o ambiente de programação para um novo idioma pode ser bugado (ou cheio de erros de usuário). Por exemplo ir lang me deu problemas, mas ruby / rails foi bastante indolor, etc

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

Minha pergunta: Como devo realizar isso com mais eficiência, sendo a velocidade e a lógica uma prioridade?

Todas as formas (até aparentemente ruins) que encontrei para implementar:

- inotifywait: inconcebível para uso em todo o sistema, poderia se aplicar apenas a diretórios 'populares', mas teria arquivos escorregando pelas rachaduras

- diff: o mesmo que acima, basicamente.

- git: use git para salvar uma "imagem" que pode ser revertida para. As mesmas questões acima, mas em menor grau (na minha opinião. Por favor, corrija-me caso contrário)

- Registra os nomes dos pacotes instalados (de alguma forma) / simplesmente conta o número de pacotes instalados, depois entra em / var / cache / apt e usa o apt-get remove etc. Alguma coisa passaria por aqui (normalmente)?

Eu listei as idéias na ordem em que as tive, em conjunto com minha pesquisa, então, como você pode ver, elas evoluíram para soluções mais razoáveis.

Então, basicamente eu venho aqui pedir conselhos, porque eu estou completamente confortável escrevendo um roteiro de bash, mas eu nunca precisei de um antes, então eu busco um conselho mais sábio. E para ser honesto isso é divertido e também aprender.

Obrigado!

    
por Trés DuBiel 12.06.2015 / 07:35

1 resposta

1

Para qualquer pessoa com objetivos semelhantes,

Acabei salvando o /var/log/apt/history.log em dois arquivos de texto, um antes e outro depois da instalação "session". Além disso, para permitir uma possível extensão, salvei a saída do diff em um arquivo, que era unicamente o nome dos pacotes recém-instalados (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, corte, cauda, xargs e o uso de > e > > para enviar saída para arquivos. E bash scripting básico.

    
por Trés DuBiel 13.06.2015 / 01:12