Cómo realizar un seguimiento del software instalado

8

De vez en cuando necesito actualizar un software que se ejecuta en uno de nuestros servidores de prueba en el trabajo (principalmente Debian). Lo que realmente me confunde casi siempre es el hecho de que no hay una sola forma de instalar software. Hoy necesitaba actualizar Coffeescript. No sabía cómo se instaló inicialmente y, por lo tanto, no cómo actualizarlo de la mejor manera.

Podría haberse instalado con apt o manualmente clonando el proyecto github y construyéndolo por mi cuenta o mediante el administrador de paquetes de nodejs npm. Después de luchar con esto y de tirar manualmente todos los archivos y directorios relacionados con coffeescript, logré hacer una nueva instalación. Pero luego quería usar un comando coffeescript que necesita que se instale nodejs 0.6 y 0.4.

Entonces, ¡que los juegos comiencen de nuevo!

¿Se instaló nodejs manualmente? O como paquete? ¿O fue puesto por Dios? No lo sé.

Entonces me pregunto si hay alguna estrategia fácil para actualizar el software instalado cuando realmente no sabes cómo se instaló inicialmente. ¿Cuáles son los mejores enfoques aquí?

cumbre
fuente
2
En mi opinión, el mejor enfoque es no entrar en este estado en primer lugar. Dicte que todo el software debe empaquetarse o que no se instalará, donde sea necesario, haga el paquete usted mismo. Luego, colóquelos en su servidor de paquetes interno.
Sirex

Respuestas:

7

Hay una regla simple que debe seguir, que resolverá la mayoría de los casos:

Nunca ponga un archivo bajo /bin, /lib, /sbino /usr, con la excepción /usr/local, sin pasar por el gestor de paquetes.

De esta manera, si un archivo está en el área administrada por el administrador de paquetes, sabrá que proviene de un paquete. Si no es así, sabe que lo instaló manualmente.

Debe atenerse a los paquetes proporcionados por su distribución siempre que sea posible. Solo instale paquetes de terceros si tiene una necesidad documentada de funcionalidad que no es proporcionada por la distribución. "Quiero tener la última versión" no es una justificación válida. Si instala paquetes de terceros, tome nota de dónde los obtuvo y archive los paquetes ( .rpmo .debarchivos) en alguna parte. Privilegio de fuentes apt y yum sobre descargas web aleatorias.

Use stow o xstow para los programas que instale manualmente.

Use etckeeper para mantener /etcbajo control de versiones . Comprométete cada vez que hagas un cambio, con un mensaje significativo.


Si te has encontrado con una situación en la que hiciste las cosas de la manera sucia y has perdido la noción del origen de un software:

  • Instale una versión limpia de ese software, en la ubicación adecuada siguiendo los consejos anteriores.
  • Pruebe que la nueva instalación funcione para los fines previstos.
  • Cambie sus servicios para usar la nueva instalación.
  • Limpia la instalación anterior lo mejor que puedas.
Gilles 'SO- deja de ser malvado'
fuente
1

Puedo sugerirle que use puppetpara rastrear el software instalado en Linux.

Puppet, un motor administrativo automatizado para sus sistemas * nix, realiza tareas administrativas (como agregar usuarios, instalar paquetes y actualizar las configuraciones del servidor) en función de una especificación centralizada.

Puedes referir el enlace

Mughil
fuente
Gracias por el enlace! Pero necesito algo en la línea de comando. A primera vista, Puppet solo funciona en un sistema de escritorio.
acme
1

Si instala algún paquete usando apt-get, todos los paquetes dependientes se instalarán por sí mismos porque apt-get resuelve todas las dependencias.

En mi caso, trato de instalar cada paquete mediante la línea de comandos usando apt-get hasta donde el paquete está en los repositorios de Ubuntu. Si no está presente en su repositorio, debe leer el manual de instalación de esa utilidad e instalarlo en función de si la utilidad utiliza Makefile u otra cosa.

Pradeepchhetri
fuente