Cuando instalo un programa simple, a menudo usa make && make instally ni siquiera tiene un objetivo de desinstalación .
Si deseo actualizar un programa, ¿es un protocolo estándar asumir que simplemente se reescribe sin problemas sobre el programa anterior?
¿Cómo hago un seguimiento de estos programas? ¿La mayoría de las personas simplemente 'disparan y olvidan' y si no se proporciona un objetivo de desinstalación , tengo que eliminar todo manualmente?

Respuestas:
Instale cada programa en un árbol de directorios dedicado y use Stow o XStow para que todos los programas aparezcan en una jerarquía común. Stow crea enlaces simbólicos del directorio específico del programa a un árbol común.
Con más detalle, elija un directorio de nivel superior, por ejemplo
/usr/local/stow. Instale cada programa debajo/usr/local/stow/PROGRAM_NAME. Por ejemplo, organice la instalación de sus ejecutables/usr/local/stow/PROGRAM_NAME/bin, sus páginas de manual,/usr/local/stow/man/man1etc. Si el programa usa autoconf, ejecute./configure --prefix /usr/local/stow/PROGRAM_NAME. Después de que hayas corridomake install, correstow:Y ahora tendrás enlaces simbólicos como estos:
Puede hacer un seguimiento fácil de los programas que ha instalado enumerando el contenido del
stowdirectorio, y siempre sabe a qué programa pertenece un archivo porque es un enlace simbólico a una ubicación en el directorio de ese programa. Desinstale un programa ejecutando ystow -D PROGRAM_NAMEluego eliminando el directorio del programa. Puede hacer que un programa no esté disponible temporalmente ejecutandostow -D PROGRAM_NAME(ejecutestow PROGRAM_NAMEpara que esté disponible nuevamente).Si desea poder cambiar rápidamente entre diferentes versiones del mismo programa, úselo
/usr/local/stow/PROGRAM_NAME-VERSIONcomo el directorio del programa. Para actualizar de la versión 3 a la versión 4, instale la versión 4, luego ejecutestow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4.Las versiones anteriores de Stow no van mucho más allá de lo básico que describí en esta respuesta. Las versiones más recientes, así como XStow (que no se ha mantenido últimamente) tienen características más avanzadas, como la capacidad de ignorar ciertos archivos, hacer frente mejor a los enlaces simbólicos existentes fuera del directorio de almacenamiento (como
man -> share/man), manejar algunos conflictos automáticamente (cuando dos los programas proporcionan el mismo archivo), etc.Si no tiene o no desea utilizar el acceso raíz, puede elegir un directorio en su directorio de inicio, por ejemplo
~/software/stow. En este caso, agregue~/software/bina suPATH. Simanno encuentra automáticamente páginas de manual, agréguelas~/software/mana suMANPATH. Agregue~/software/infoa suINFOPATH,~/software/lib/pythona suPYTHONPATH, etc., según corresponda.fuente
Puede usar checkinstall para crear un paquete (paquetes compatibles con RPM, Deb o Slackware) De esa manera, puede usar su administrador de paquetes de distribución para agregar / eliminar la aplicación (pero no actualizar)
Usted usa
checkinstallen lugar delmake installcomando (usando el parámetro -D para Deb; -R es RPM y -S es Slackware):checkinstall compilará e instalará el paquete de manera predeterminada, o puede hacer que solo compile el paquete sin instalarlo.
checkinstall está disponible en la mayoría de los repositorios de distros.
fuente
checkinstallparece que no se mantiene activamente (?) :-(En su mayor parte, esta fue la razón detrás de los paquetes, puertos y otros tipos de administradores para evitar que este tipo de cosas sucedan.
Yo diría que la eliminación manual es la única forma de una instalación manual, a menos que alguien más tenga una mejor respuesta a ese punto que no conozco.
fuente
Una alternativa más es de las sugerencias de Linux From Scratch :
Más control y gestión de paquetes con usuarios de paquetes
Después de esta primera sugerencia cruda, encontré una variante evolucionada:
crablfs - Sistema de gestión de paquetes basado en el usuario
Este
crablfses el último espécimen de administración de paquetes que usa uids y gids únicos para la administración de paquetes, pero en sourceforge está evolucionando nuevamente en ulfs:uLFS: su Linux manejable y reutilizable desde cero
Para los usuarios causales de paquetes instalados, creo que la solución LFS para "usuarios de paquetes" es ligera, menos invasiva y elegante. En resumen, instala paquetes en
/usr/localo/home/user/localy rastrea archivos usando uids y gids únicos para cada paquete pero coloca todos los archivos en los lugares tradicionales, directorios comunes/usr/local/bin,/usr/local/libcomo en todas las distribuciones de Linux convencionales ... oclusión de archivos y sobrescritura o eliminación de archivos no deseados es evitado por un truco ordenado de Linux explicado por Matthias S. Benkmann en more_control_and_pkg_man.txt que solo necesita manipulación de permisos de archivos y directorios normales, por ejemplo, el permiso de bits fijos para directorios para evitar sobrescrituras de archivos no deseados:¡Para mí parece una solución simple e inteligente! Usé este esquema en mi compilación LFS y es una solución que funciona ...
fuente
tararchivos de la instalación/usr/src/non-rpmspara recordarle (eso es lo que suelo hacer).fuente