¿Por qué los administradores de paquetes no tienen instalaciones y registros por usuario?

23

Tanto Apt como DNF / Yum, los dos esquemas de administración de paquetes más populares para las distribuciones de Linux, que yo sepa, solo admiten la instalación de paquetes en todo el sistema: los archivos propiedad de root, los binarios entran (/usr)?/s?bin, las configuraciones entran, /etcetc.

Sin embargo, en los sistemas en los que hay múltiples usuarios individuales que no tienen privilegios de root, muy a menudo, si no siempre, sucede que un usuario desea instalar algunas aplicaciones o utilidades que están disponibles para esa distribución; y él / ella está bien con una instalación que es personal y no común para muchos / todos los usuarios.

Ahora, no parece una idea descabellada o incluso increíblemente complicada que los paquetes sean adaptables, en el momento de la instalación, con un directorio raíz diferente o un conjunto de directorios raíz, para que los usuarios puedan hacer esto. Tampoco es un gran problema administrar un registro específico de usuario de paquetes instalados (ya sea que un usuario individual tenga o no su propia base de datos de paquetes).

Entonces, ¿cuál es la razón por la que esta funcionalidad no se ha agregado a esos sistemas / esquemas comunes de administración de paquetes?

Nota: Esta es una pregunta informativa, es decir, estoy preguntando qué sabe la gente sobre el pasado , no qué piensa la gente sobre esta característica.

einpoklum - reinstalar a Monica
fuente
3
Si se hubiera proporcionado, habría ahorrado gran parte de mi tiempo compilando software desde la fuente en computadoras que no tengo privilegio de superusuario. Estoy ansioso por saber la respuesta.
Weijun Zhou
1
Es cierto que mi conocimiento sobre esto no es el mejor, pero podría haberse hecho para evitar que los usuarios llenen los discos duros con las dependencias del software que instalaron personalmente. Si apt no se ejecuta como root, no puede actualizar las bibliotecas del sistema, por lo que el usuario ahora tiene una versión más nueva que el sistema. Repita para cada usuario y versiones anteriores, los discos duros más pequeños se habrían llenado bastante rápido.
Thegs
1
@Thegs: Dudo que esta fuera la consideración. Pocos proyectos de software evitan características importantes debido a consideraciones como "si las personas hicieran esto, llenarían su unidad de disco". Si fuera algún tipo de riesgo de seguridad, tal vez. Además, en los sistemas multiusuario, habría cuotas; y pocas personas usarían esto de todos modos. Además, todo esto es especulación ...
einpoklum - reinstalar a Mónica el
2
En resumen: no es tarea del administrador de paquetes del sistema meterse con los datos del usuario. ~ / bin, ~ / lib, etc. son, desde el POV del sistema, "datos de usuario".
cas
1
He visto algunos paquetes distribuidos por pip, npmy gopkg, en parte porque son independientes de la distribución y en parte porque generalmente permiten la instalación específica del usuario.
Bob

Respuestas:

15

Si bien los administradores de paquetes comunes no abordan este caso de uso, hay varios proyectos que sí lo hacen:

Mi mejor conjetura de por qué los administradores de paquetes tradicionales no abordan este caso de uso es que complica enormemente el proceso de construcción e instalación de paquetes, ya que los mantenedores de paquetes deberán tener mucho cuidado para garantizar que sus paquetes admitan correctamente un directorio de instalación dinámico. De hecho, muchos formatos de paquetes comunes, como RPM, admiten un directorio de instalación dinámico, pero casi ningún mantenedor aprovecha esta característica cuando crea paquetes debido a la alta sobrecarga adicional.

jayhendren
fuente
Entonces, RPM admite esto pero, por ejemplo, dpkg no.
einpoklum - reinstalar a Mónica el
1
No sé sobre dpkg para ser honesto, ya que nunca he creado paquetes .deb. Supongo que dpkg admite directorios de instalación dinámica, pero dudo que muchos mantenedores de paquetes .deb lo hagan.
jayhendren
Otra cosa ... ¿estos generalmente se construyen desde cero, bootstrap o siguen confiando en lo que esté instalado a nivel de todo el sistema?
einpoklum - reinstalar a Mónica el
1
La administración de paquetes en todo el sistema supone que no hay nada disponible si no lo hubiera instalado, por lo que buscar dependencias en términos de archivos es equivalente a buscar dependencias en términos de paquetes instalados que contienen esos archivos. Pero con un administrador de paquetes secundario, están los paquetes / archivos de todo el sistema y los paquetes / archivos específicos del usuario. ¿Los gestores de paquetes suelen confiar solo en lo que han descargado y / o construido?
einpoklum - reinstalar a Mónica el
2
Depende Aquellos que compilan desde fuentes como Homebrew y Emerge generalmente solo intentan construir el paquete sin mucho seguimiento de dependencias. Otros agrupan dependencias con los paquetes (así es como funcionan la mayoría de las herramientas de estilo de la tienda de aplicaciones, así como Flatpak y Snaps). Otros, como Zero Install, instalan todas las dependencias como paquetes individuales a nivel de usuario.
jayhendren
6

Entonces, ¿cuál es la razón por la que esta funcionalidad no se ha agregado a esos sistemas / esquemas comunes de administración de paquetes?

Porque aumenta la complejidad de la gestión de sistemas más allá de lo necesario.

Elshar
fuente