Lo siento si algo como esto ya existe, pero en mi investigación no encontré evidencia de que existiera.
lo que quiero: un script de tipo "monitor" que pueda escribir, que "activaría" antes de que apt-get instale uno o más (énfasis en más) paquetes, y luego lo "desactivaría" cuando haya terminado. 'Registrará' todo lo instalado y, si no estoy satisfecho con la instalación, eliminará todos los rastros de todas las instalaciones con un solo comando.
Quiero hacer esto porque soy programador y configurar el entorno de programación para un nuevo lenguaje puede estar plagado de errores (o plagado de mi propio error de usuario). Por ejemplo, ir lang me dio problemas, pero Ruby/rails fue bastante indoloro, etc.
Ahora, tengo entendido que apt-get purge y autoremove hacen un trabajo bastante bueno al limpiar el sistema de un paquete, pero me gustaría pensar que mi idea sigue siendo útil al instalar muchos paquetes seguidos.
Mi pregunta: ¿Cómo debería lograr esto de manera más efectiva, siendo la velocidad y la lógica una prioridad?
Todas las formas (incluso aparentemente malas) que he encontrado para implementar:
--inotifywait: inconcebible para uso en todo el sistema, podría aplicarse sólo a directorios "populares", pero haría que los archivos se escaparan
--diff: igual que el anterior, más o menos.
--git: usa git para guardar una "imagen" a la que se podría revertir. Los mismos problemas que el anterior, pero en menor medida (en mi opinión. Corríjame en caso contrario)
--Registrar los nombres de los paquetes instalados (de alguna manera)/simplemente contar el número de paquetes instalados, luego ingresar a /var/cache/apt y usar apt-get remove, etc. ¿Se escaparía algo aquí (generalmente)?
Enumeré las ideas en el orden en que las tuve, junto con mi investigación, para que, como puede ver, evolucionaron hacia soluciones más razonables.
Básicamente, vengo aquí para pedir consejo, porque me siento completamente cómodo escribiendo un script bash, pero nunca antes había necesitado uno, así que busco un consejo más sabio. Y para ser honesto, esto también es para divertirse y aprender.
¡Gracias!
Respuesta1
Para cualquiera con objetivos similares,
Terminé guardando el /var/log/apt/history.log en dos archivos de texto, uno antes y otro después de la "sesión" de instalación. Además, para permitir una posible extensión, guardé la salida del diff en un archivo, que era únicamente los nombres de los paquetes recién instalados (esto podría permitir una opción de línea de comando interactiva, que recorrería cada paquete con un (Y/n ) opción de eliminación, en lugar de eliminación masiva)
Para que otras personas sigan el camino correcto: sed/grep, diff, cut, tail, xargs y el uso de > y >> para enviar resultados a archivos. Y secuencias de comandos bash básicas.