Equivalentes a arquivos '.msi' e 'setup.exe' no Debian ou Ubuntu?

15

Esta resposta explica .msie setup.exearquivos para instalar um aplicativo no Windows.

Existem equivalentes para .msie para setup.exearquivos no Debian ou Ubuntu? Os .debarquivos do pacote correspondem a .msiou setup.exeou algo mais?

StackExchange for All
fonte
8
Não sei por que você está perguntando isso, então vou dizer isso como um comentário geral para quem se deparar com essa pergunta. Embora existam maneiras de instalar o software "manualmente", a maneira preferida pela maioria das distribuições Linux (e fortemente recomendada) é instalar o software através do gerenciador de pacotes. Dessa forma, você obtém automaticamente atualizações de segurança e há algum nível de teste para garantir a compatibilidade com a distribuição. Se você precisar da versão mais recente e melhor do software não disponível nos repositórios principais, use um repositório da comunidade (por exemplo, um PPA no Ubuntu), mas sempre use o gerenciador de pacotes.
Muzer #
Não há .setuparquivos no Windows, você quer dizer setup.exequal é o nome típico de um instalador?
precisa saber é o seguinte
Veja a apt-getpágina de manual e os documentos vinculados a partir daí. Não há equivalente no Windows, mesmo que apt-get install, muito menos qualquer outra coisa que ele possa fazer.
jthill
5
@jthill, isso é falso. Não é tão popular nem tão popular quanto apt-get, mas as versões recentes (Win7 e posteriores) do Powershell têm OneGetpor meio das quais você pode instalar Chocolatey(o equivalente Homebrewno Mac). Eles podem ser menos populares que seus equivalentes 'nix', mas dizer que não há equivalente no Windows é flagrantemente incorreto.
Flith
1
@ Tim: esta pergunta não pode ser respondida com sensatez sem que você especifique exatamente o que você quer dizer com "equivalente". Em quais propriedades específicas de .msiarquivos e instaladores você está interessado? Quais são os critérios precisos para determinar se algo é "equivalente" ou não? Por exemplo: instaladores são apenas programas como qualquer outro programa. Não há absolutamente nada de especial em um programa chamado setup.exe. Desde setup.exeé apenas um programa como qualquer outro programa, e Debian certamente faz ter um conceito de "programa", você considera que equivalente? Se não, por que não?
Jörg W Mittag

Respostas:

28

Provavelmente mais próximo de um instalador MSI do que um setup.exe, um .debpacote inclui uma árvore de arquivos para copiar no sistema de arquivos, bem como uma coleção de ganchos de pré e pós-instalação para executar (entre outras coisas). Os ganchos podem efetivamente fazer qualquer coisa no sistema, incluindo algo que acho que nunca vi no Windows: adicionar usuários a um serviço do sistema. Uma coisa que eles não podem fazer é instalar outro .debpacote - o banco de dados é bloqueado durante a instalação, portanto, isso só pode ser alcançado através de dependências. A instalação de um .debpacote produz entradas em um banco de dados central de pacotes instalados para facilitar a manutenção.

O ttf-mscorefontspacote é interessante, pois o próprio pacote contém apenas um script para baixar e instalar as fontes. Este script é executado em um desses ganchos.

O mais próximo setup.exeé baixar o código-fonte de um programa na página inicial do projeto e, em seguida ./configure && make && sudo make install, executar ou qualquer outro método que os autores decidiram usar. Como esse método não adiciona o pacote ao banco de dados de programas instalados, removê-lo posteriormente pode ser muito mais difícil.

Outra diferença é que a .debespecifica suas dependências, para garantir a instalação adequada. Até onde eu sei, no mundo Windows, um MSI não pode causar a instalação de outro MSI, por isso setup.exeé normalmente usado para esse tipo de rastreamento de dependência. Vários comentários observam que os MSIs podem nomear dependências, mas como não há banco de dados central de MSIs como existe para .debpacotes, a falta de uma dependência causará apenas uma falha na instalação.

Portanto, a .debestá entre um instalador MSI e a setup.exe. O pacote pode fazer o que quiser durante seus ganchos pré e pós-instalação, pode nomear e geralmente encontrar suas próprias dependências e deixa um registro de sua instalação em um local central para facilitar a manutenção.

Raposa
fonte
2
No Windows, os setup.exeinstaladores estilo também se integram ao sistema instalador rastreado (com desinstaladores, etc.). Tanto no MSI quanto nos .exeinstaladores, as dependências são tratadas incorporando a dependência no instalador ( por exemplo, o instalador redistribuível do VC ou o instalador do DirectX) e instalando as DLLs de dependência ao lado do executável (ou como assemblies do sistema). Então setup.exetambém é semelhante a .deb. O equivalente a construir a partir da origem também é construir a partir da origem no Windows ;-).
Stephen Kitt
Não faço uma coisa que aproxime os MSIs dos pacotes Debian do que os executáveis ​​de instalação: um MSI não pode instalar outro MSI, assim como um pacote Debian não pode instalar outro pacote (exceto através de suas dependências).
Stephen Kitt
@StephenKitt: os setup.exeinstaladores de estilo não são "rastreados" pelo sistema operacional, a menos que executem MSIs por baixo (e então os MSIs são os rastreados). O fato de terem uma chave de registro de desinstalação não tem relação com isso. É como dizer que todos os arquivos são rastreados porque estão listados no sistema de arquivos.
user541686
2
No entanto, o MSI pode (geralmente em produtos maiores) ter dependências, já que não há repositório central de .MSI, geralmente o que acontece quando você perde uma dependência é que eles se recusam a instalar.
Matteo Italia
1
"algo que acho que nunca vi no Windows: adicionar usuários a um serviço do sistema". Estou bastante certo de que os instaladores do SQL Server, IIS e Visual Studio fazem isso. Mas pode ser menos óbvio, já que o modelo de usuários do Windows é um pouco mais refinado do que o modelo padrão do Unix / Linux (você é root ou não).
MSalters
15

Os instaladores binários de arquivo único que eu vi no Linux eram .sharquivos que continham um shell script concatenados com um blob binário, assim:

#!/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]

Isso é essencialmente equivalente a um setup.exeque também se extrai automaticamente para uma pasta temporária e executa o instalador real a partir daí.

Dmitry Grigoryev
fonte
6

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

Um arquivo .run normalmente é um programa personalizado que precisa ser executado para instalar um programa. eles geralmente não são suportados, pois não controlam para onde os arquivos vão e normalmente não fornecem um método de desinstalação. não há como ter certeza do que o script fará com seu sistema, para que sejam considerados inseguros.

Eles estão perto do arquivo exe do windows e, como tal, vêm com os mesmos problemas.

Zumo de Vidrio
fonte