¿Equivalentes a los archivos '.msi' y 'setup.exe' en Debian o Ubuntu?

15

Esta respuesta explica .msiy los setup.exearchivos para instalar una aplicación en Windows.

¿Hay equivalentes a .msiy para setup.exearchivos en Debian o Ubuntu? ¿Los .debarchivos del paquete corresponden a .msio setup.exeo alguna otra cosa?

StackExchange para todos
fuente
8
No sé por qué preguntas esto, así que lo diré como un comentario general para cualquiera que se encuentre con esta pregunta. Si bien hay formas de instalar el software "manualmente", la forma preferida por la mayoría de las distribuciones de Linux (y muy recomendable) es instalar el software a través del administrador de paquetes. De esta forma, obtienes actualizaciones de seguridad automáticamente y hay cierto nivel de pruebas realizadas para garantizar la compatibilidad con la distribución. Si necesita la última y mejor versión de software no disponible en repositorios principales, use un repositorio de la comunidad (por ejemplo, un PPA en Ubuntu), pero siempre use el administrador de paquetes.
Muzer
No hay .setuparchivos en Windows, ¿quiere decir setup.execuál es un nombre típico para un instalador?
gronostaj
Vea la apt-getpágina del manual y los documentos vinculados desde allí. No hay un equivalente en Windows incluso para apt-get install, y mucho menos esencialmente cualquiera de las otras cosas que puede hacer.
2017
55
@jthill, eso no es cierto. No es tan completo ni tan popular como apt-get, pero las versiones recientes (Win7 y posteriores) de Powershell tienen a OneGettravés de las cuales puede instalar Chocolatey(un equivalente Homebrewen Mac). Pueden ser menos populares que sus equivalentes 'nix, pero decir que no hay un equivalente en Windows es descaradamente incorrecto.
flith
1
@Tim: esta pregunta no puede responderse con sensatez sin que especifiques exactamente qué quieres decir con "equivalente". ¿Qué propiedades específicas de .msiarchivos e instaladores le interesan? ¿Cuáles son los criterios precisos para determinar si algo es "equivalente" o no? Por ejemplo: los instaladores son solo programas como cualquier otro programa. No hay absolutamente nada especial en un programa llamado setup.exe. Dado que setup.exees sólo un programa como cualquier otro programa, y Debian sin duda lo hace tener un concepto de "programa", ¿considera que equivale? ¿Si no, porque no?
Jörg W Mittag

Respuestas:

28

Probablemente más cerca de un instalador MSI que de un setup.exe, un .debpaquete incluye un árbol de archivos para copiar en el sistema de archivos, así como una colección de ganchos previos y posteriores a la instalación para ejecutar (entre otras cosas). Los ganchos pueden hacer efectivamente cualquier cosa en el sistema, incluido algo que no creo haber visto en Windows: agregar usuarios para un servicio del sistema. Una cosa que no pueden hacer es instalar otro .debpaquete: la base de datos está bloqueada durante la instalación, por lo que esto solo se puede lograr a través de dependencias. La instalación de un .debpaquete produce entradas en una base de datos central de paquetes instalados para facilitar el mantenimiento.

El ttf-mscorefontspaquete es interesante porque el paquete en sí contiene solo un script para descargar e instalar las fuentes. Este script se ejecuta en uno de estos ganchos.

Más cerca setup.exepodría estar descargando el código fuente de un programa desde la página de inicio del proyecto, luego ejecutándolo ./configure && make && sudo make install, o cualquier otro método que los autores decidieran usar. Dado que este método no agrega el paquete a la base de datos de los programas instalados, eliminarlo más tarde puede ser mucho más difícil.

Otra diferencia es que a .debespecifica sus dependencias, por lo que se puede garantizar una instalación adecuada. Hasta donde sé, en el mundo de Windows, un MSI no puede causar la instalación de otro MSI, por setup.exelo que generalmente se usa para este tipo de seguimiento de dependencias. Varios comentarios señalan que los MSI pueden nombrar dependencias, pero dado que no hay una base de datos central de MSI como la hay para los .debpaquetes, la falta de una dependencia solo provocará una falla de instalación.

Por lo tanto, a .debes una especie de entre un instalador MSI y a setup.exe. El paquete puede hacer lo que quiera durante sus ganchos previos y posteriores a la instalación, puede nombrar y generalmente encontrar sus propias dependencias, y deja un registro de su instalación en una ubicación central para facilitar el mantenimiento.

zorro
fuente
2
En Windows, los setup.exeinstaladores de estilo también se integran en el sistema instalador rastreado (con desinstaladores, etc.). Tanto con MSI como con los .exeinstaladores, las dependencias se manejan incrustando la dependencia en el instalador ( por ejemplo, el instalador redistribuible de VC o el instalador de DirectX) e instalando archivos DLL de dependencia junto con el ejecutable (o como conjuntos de sistemas). Entonces setup.exetambién es similar a .deb. El equivalente a construir desde la fuente es construir desde la fuente en Windows también ;-).
Stephen Kitt el
No hago nada que haga que los MSI estén más cerca de los paquetes Debian que los ejecutables de configuración: un MSI no puede instalar otro MSI, al igual que un paquete Debian no puede instalar otro paquete (excepto a través de sus dependencias).
Stephen Kitt
@StephenKitt: los setup.exeinstaladores de estilo no son "rastreados" por el sistema operativo a menos que ejecuten MSI debajo (y luego los MSI son los rastreados). El hecho de que tengan una clave de registro de desinstalación no tiene relación con esto. Es como decir que cada archivo se rastrea porque está listado en el sistema de archivos.
user541686
2
Sin embargo, MSI puede y a menudo (en productos más grandes) tener dependencias, dado que no hay un depósito central de .MSI, por lo general, lo que sucede cuando se pierde una dependencia es que se niegan a instalar.
Matteo Italia
1
"algo que no creo haber visto nunca en Windows: agregar usuarios para un servicio del sistema". Estoy bastante seguro de que los instaladores de SQL Server, IIS y Visual Studio hacen esto. Pero podría ser menos obvio, ya que el modelo de usuarios de Windows es un poco más refinado que el modelo predeterminado de Unix / Linux (ya sea root o no) ..
MSalters
15

Los instaladores binarios de un solo archivo que he visto en Linux eran .sharchivos que contenían un script de shell concatenado con un blob binario, como este:

#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]

Esto es esencialmente equivalente a un setup.exeque también se autoextrae a una carpeta temporal y ejecuta el instalador real desde allí.

Dmitry Grigoryev
fuente
6

Tomado de: /ubuntu/13415/what-are-run-files/13416#13416

Un archivo .run es normalmente un programa personalizado que debe ejecutarse para instalar un programa. Por lo general, no son compatibles, ya que no rastrean a dónde van los archivos y normalmente no proporcionan un método de desinstalación. no hay forma de estar seguro de qué hará el script en su sistema, por lo que se consideran inseguros.

Están cerca del archivo exe de Windows y, como tal, vienen con los mismos problemas.

Zumo de vidrio
fuente