Desculpe se algo assim já existe, mas em minha pesquisa não encontrei nenhuma evidência de que existisse.
o que eu quero: um script do tipo "monitor" que eu possa escrever, que eu "ativaria" antes de o apt-get instalar um ou mais pacotes (ênfase em mais) e depois "desativaria" quando terminar. Ele irá 'registrar' tudo o que estiver 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.
Quero fazer isso porque sou um programador, e configurar o ambiente de programação para uma nova linguagem pode estar repleto de bugs (ou repleto de erros do meu próprio usuário). Por exemplo, go lang me deu problemas, mas Ruby/Rails foi bastante indolor, etc.
agora, entendo que apt-get purge e autoremove fazem um bom trabalho ao limpar o 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 de forma mais eficaz, sendo a velocidade e a lógica uma prioridade.
Todas as maneiras (mesmo aparentemente ruins) que encontrei para implementar:
--inotifywait: inconcebível para uso em todo o sistema, poderia ser aplicado apenas a diretórios 'populares', mas faria com que os arquivos escapassem pelas rachaduras
--diff: igual ao anterior, basicamente.
--git: use o git para salvar uma "imagem" que pode ser revertida. Os mesmos problemas acima, mas em menor grau (na minha opinião. Corrija-me se for o contrário)
--Registre os nomes dos pacotes instalados (de alguma forma)/simplesmente conte o número de pacotes instalados, então vá para /var/cache/apt e use apt-get remove etc. Alguma coisa escaparia aqui (geralmente)?
Listei as ideias na ordem em que as tive, em conjunto com minha pesquisa, para que, como vocês possam ver, elas evoluíram para soluções mais razoáveis.
Então, essencialmente, venho aqui em busca de conselhos, porque me sinto completamente confortável escrevendo um script bash, mas nunca precisei de um antes, então procuro conselhos mais sábios. E para ser sincero, isso é para se divertir e também para aprender.
Obrigado!
Responder1
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 "sessão" de instalação. Além disso, para permitir uma possível extensão, salvei a saída do diff em um arquivo, que era apenas os nomes dos pacotes recém-instalados (isso poderia permitir uma opção de linha de comando interativa, que percorreria cada pacote com um (S/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 saída para arquivos. E scripts bash básicos.