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í?
Respuestas:
Hay una regla simple que debe seguir, que resolverá la mayoría de los casos:
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 (
.rpm
o.deb
archivos) 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
/etc
bajo 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:
fuente
Puedo sugerirle que use
puppet
para 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
fuente
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.
fuente