¿Por qué existen los paquetes de complemento? ¿Existe una necesidad real?

11

Supuestos

Honestamente, no sé mucho acerca de los paquetes de complemento, pero esto es irrelevante para esta pregunta, vea a continuación. Supongo que el sistema es significativamente diferente del existente.

¿Tiene sentido el cambio?

¿Existe una necesidad real, lo suficientemente fuerte? Es decir, ¿hay un nuevo caso de uso, que sea lo suficientemente importante como para desarrollar un nuevo formato, y la infraestructura asociada?

¿No era factible cambiar también el método actual para cubrir los nuevos casos de uso?

¿O me estoy perdiendo el punto?

Es posible que lo que veo sea principalmente marketing: nuevos nombres y presentaciones para un cambio técnico mínimo, para tener la posibilidad de que cualquier organismo lo asuma como "nuevo y mejor" y pueda usarse realmente. Además, puede ser que los nuevos paquetes estén tan estrechamente basados ​​en el formato existente que es principalmente un cambio en la presentación para el usuario. Esa podría ser una buena solución, por supuesto. En este caso, esta pregunta no tendría mucha relevancia.

Entonces, espero que todavía sea lo suficientemente útil como para responder a los aspectos secundarios. Solo avíseme si la pregunta no es útil o confusa para los nuevos usuarios, me complace eliminarla.

Entonces, ¿por qué existen?


Antecedentes

Mi primera reacción fue "¡Eso no tiene sentido!"

Esto es similar a una situación en la que, en el sitio de física, alguien preguntó, infeliz, por qué nadie discute sus nuevas ideas brillantes en las respuestas. Se parecía mucho a las ideas chifladas; Tan lejos del conocimiento físico real que era difícil encontrar un punto para comenzar. Escribí una respuesta que no tocó sus ideas con una sola palabra, pero le expliqué por qué uno simplemente no hablaría de asumir ideas chifladas, no es el primer caso. La respuesta fue realmente acertar, creo.

Si mis suposiciones eran correctas, este caso es similar.

Pero entonces, tal vez no, veamos.

Volker Siegel
fuente
Hay una votación cerrada que dice "principalmente basado en la opinión", ¿eso significa que se espera que las respuestas se basen en la opinión? Eso sería básicamente una respuesta en sí misma, ya que significa que no existe un consenso establecido de que el cambio sea necesario. Entonces habría argumentos a favor y en contra; ¡Eso significaría que mi pregunta es realmente muy precisa y más útil de lo que esperaba!
Volker Siegel
2
He votado para reabrir esta pregunta. Realmente pregunta por qué se introdujeron las instantáneas, cuando los administradores de paquetes ya existían y Ubuntu (y otros sistemas operativos) ya los tenían. Entonces tiene razón: si esto fuera realmente una pregunta basada principalmente en la opinión, eso significaría que no se podría dar una respuesta basada principalmente en hechos y experiencia. Sin embargo, como viste por la excelente respuesta de muru , este no es el caso. Cuándo (o incluso si) se deben usar las instantáneas sigue siendo algo sobre lo que las personas pueden tener principalmente discusiones basadas en opiniones, pero eso no es lo que fue.
Eliah Kagan

Respuestas:

17

Sí, hay una necesidad real.

Ha habido una necesidad real de algo como esto desde la primera vez que un software dependía de otro.

Dejemos esto claro:

Gestionar dependencias es difícil .

Hay una razón por la que se llama infierno de dependencia . Los sistemas de empaque como RPM y Debian fueron creados con la intención de evitar el infierno de dependencia. Sin embargo, alguien debe pagar el costo:

  1. En Windows, donde los programas agrupan sus dependencias, el usuario debe encargarse de las actualizaciones (y de cualquier problema de seguridad por falta de ellas). Si el desarrollador quiere la versión X de algo para mi aplicación, simple: la proporciono con mi aplicación. Ahora, ¿cómo manejo las actualizaciones?
  2. En la mayoría de las distribuciones de Linux (después de Debian o Red Hat), donde un programa puede depender del software del repositorio, un programa del repositorio debe depender del software del repositorio. Si quiero la versión X de algo para mi aplicación, y la distribución proporciona X, simple: dependo de ello. ¿Y si la distribución no lo hace? Luego: ???
    • Agregar múltiples versiones a la distribución aumenta la carga en el mantenedor
    • Perder la capacidad de usar la versión de elección de dependencias aumenta la carga en el desarrollador
    • Perder la capacidad de usar la versión de elección de las aplicaciones frustra al usuario

Hay una considerable pérdida de libertad en cualquiera de los métodos.

Y aquí es donde entran las instantáneas: permiten que el desarrollador incluya la versión X y que el sistema de empaque gestione las actualizaciones. ¿Quién paga el costo? El usuario:

  • al requerir más espacio.
  • poniéndolos en riesgo debido a que un desarrollador descuidado no reconstruye sus instantáneas cuando se repara una dependencia.

¿Qué beneficios obtengo a cambio?

  • Además de la seguridad a través de actualizaciones (que, francamente, no le importan suficientes personas), el usuario no tiene que preocuparse por las dependencias con instantáneas. La palabra en su mayoría pierde significado.
  • Además de las actualizaciones de seguridad, el desarrollador de software no necesita preocuparse por hacer que los usuarios instalen las dependencias correctas.
muru
fuente
3
Sí, creo que el infierno de dependencia lo describe bastante bien.
Volker Siegel
Déjame crear la voz opuesta :), ¿Por qué no solo usan /opt?
user.dz
@Sneetsher piense de esta manera: ¿qué impide que una aplicación en / opt escriba sobre otra aplicación en / opt? Peor aún, ¿cómo evita que una aplicación lea las claves privadas de otra aplicación?
Evan
@Evan, bueno AppArmorya salió para cubrir eso. pero la forma de protección puede ser diferente. De todos modos, el tema es abordar.
user.dz
Muru, gracias por escribir todo esto. Esta fue la primera respuesta en Google, por cierto, sobre por qué. Sin embargo, tengo curiosidad. Puedo ver que mi sistema está usando instantáneas para, por ejemplo, Chromium. Y ahora me gustaría instalar Skype. Por lo general, lo haría, sudo apt-get install skypepero luego veo que está disponible en un instante. Pero cuando instalé Chromium no hice nada especial para que se usara snap. Sin embargo lo hace. Así que ahora entiendo POR QUÉ existen las instantáneas y me alegro de que existan. Ahora tengo curiosidad si tengo que preocuparme sudo snap install skype.
SDsolar
3

Una característica particular de las instantáneas que podría ser útil es la capacidad de elegir un canal para desarrolladores que brinden más de un canal, como lanzamiento , candidato , maestro , etc.

Por ejemplo, al hacer clic en el botón Canalnextcloud se mostrará el cuadro de diálogo en la captura de pantalla a continuación.

Los otros puntos fuertes de venta son el aislamiento, la inmutabilidad y el sandboxing que están controlados por un contexto de política de seguridad , que permite definir los permisos por aplicación, también llamados 'enchufes', por ejemplo:

  • lugares de lectura / escritura
  • acceso a almacenamiento extraíble
  • países donde el complemento está en la lista blanca / en la lista negra
  • acceso a la red
  • cámara, impresora, joystick, ubicación GPS
  • ajustes del sistema
  • ... lista completa de interfaces instantáneas

El enfoque imita en cierta medida los paquetes de aplicaciones de MacOS y el entorno limitado de aplicaciones de Android con permisos y proveedores / receptores de contenido.

ubuntu snap paquetes seleccione canal

Ahora, imagine que necesita ejecutar una docena de aplicaciones, cada una con su propia versión de ciertas bibliotecas, su propia versión del tiempo de ejecución Python / Ruby / NodeJS y no quiere encontrarse con el infierno de la dependencia y arruinar o contaminar las bibliotecas de su sistema, su sistema Python / Node / Perl / Ruby módulos, etc.

ccpizza
fuente