O que são .deb e .rpm e como eles são diferentes de .msi? [fechadas]

30

Quais são esses formatos de arquivo e como eles diferem do .msiformato no Windows? Além disso, quais são os prós e os contras desses esquemas de gerenciamento de pacotes?

buracos da morte
fonte
.deb e .rpm são mais semelhantes a .msi do que a .exe.
Ignacio Vazquez-Abrams
nota: perguntar "quais são os prós e os contras do rpm vs deb / dpkg" em outras partes da internet traz consigo a possibilidade de incitar uma guerra de chamas.
strugee

Respostas:

40

Arquivos como .debe .rpmsão mais parecidos com um .ziparquivo. Eles são uma árvore de diretórios de arquivos e subdiretórios que contêm arquivos relacionados a um aplicativo específico e / ou biblioteca de arquivos.

Distros

Os .debarquivos são destinados a distribuições do Linux derivadas do Debian (Ubuntu, Linux Mint, etc.). Os .rpmarquivos são usados ​​principalmente por distribuições derivadas de distros baseadas no Redhat (Fedora, CentOS, RHEL), bem como pela distribuição openSuSE.

O que há de especial neles?

Esses arquivos têm uma outra característica especial que os diferencia dos .ziparquivos, pois podem incluir uma especificação que contém regras que informam ao software gerenciador de pacotes em execução em um sistema que está instalando um desses arquivos para executar tarefas adicionais. Essas tarefas incluem coisas como:

  • criando contas de usuário no sistema
  • criando / modificando arquivos de configuração que não estão realmente contidos no arquivo .debou.rpm
  • definir propriedade / permissões nos arquivos após a instalação
  • executar comandos como root no sistema que está instalando o pacote
  • Dependências, ambos os formatos podem incluir nomes ou pacotes e / ou nomes de serviço que eles precisam estar presentes em um sistema antes da instalação.

E os arquivos .msi?

.msios arquivos são semelhantes aos .deb& .rpmfiles, mas provavelmente ainda mais sofisticados. Os .msiarquivos são utilizados pelo Windows Installer e oferecem recursos adicionais, como:

  • Estrutura da GUI
  • geração de sequências de desinstalação
  • Uma estrutura em si - para uso por instaladores de terceiros
  • Reversões
  • Propaganda
  • Interface de usuário
  • etc.

Eu sugiro dar uma olhada nas várias páginas da Wikipedia sobre esses assuntos, se você quiser uma explicação mais aprofundada.

Referências

slm
fonte
Como a resposta começa com "Arquivos como .deb e .rpm são mais parecidos com um arquivo .zip", vale a pena mencionar que os pacotes deb são realmente ararquivos e rpms são (possivelmente em parte) arquivos cpio. No caso de debs, é fácil verificar se um deb pode ser descompactado ar -x. No caso de rpm, não sei se isso é possível.
Faheem Mitha
@FaheemMitha:rpm2cpio package.rpm | cpio -idv
ninjalj
@ ninjalj - obrigado esqueci de adicionar esse comando. Eu o usei para descompactar rpms quando eu queria apenas um arquivo ou dois deles. Geralmente os arquivos .spec.
slm
@ ninjalj Obrigado, eu não sabia disso.
Faheem Mitha
31

As outras respostas abordam qualidades de .debe .rpmque são semelhantes a .msi. Todos eles contêm software em um formato compactado que pode fazer algumas coisas extras. Essas coisas extras já mencionadas incluem a adição de usuários, tarefas de pré e pós-instalação, o registro do programa no sistema (por exemplo, registro do Windows, xdg-dirs, OpenRC / systemd init, etc.).

O que diferencia os formatos (e é um grande profissional) são as dependências. Os arquivos .debe .rpmpodem listar nomes e versões de outros programas que devem ser instalados como software pré-requisito. Por si só, isso é apenas informativo, mas ...

Você normalmente não diretamente interagem com .debe .rpmarquivos da maneira que você faz com .msios arquivos. De fato, como mencionado anteriormente, a .debnormalmente é apenas um arquivo compactado (ar ou tar) compactado com xz com os arquivos contidos em um layout de diretório específico. Em vez disso, você usa ferramentas como dpkge rpmpara manipular esses arquivos.

dpkge rpminstalará o conteúdo .debe os .rpmarquivos e verificará se todo o software necessário está instalado. A execução desses programas é semelhante a clicar em um .msiarquivo. Os usuários, no entanto, normalmente não interagem com dpkgou, em rpmvez disso, usam apt-gete yuminstalam pacotes. Essas ferramentas não possuem análogos exatos no Windows.

Ambos apt-gete yumsão capazes de buscar arquivos de remotas (ou locais) repositórios e use as informações de dependência armazenados nos .debe .rpmarquivos para buscar e instalar quaisquer pré-requisitos não atendidos. Com essas ferramentas, não preciso saber ou me preocupar com o outro software de que preciso, apenas posso especificar apt-get install chromiume saber que apt-getgarantirá que eu tenha o gtk +, alsa, certas bibliotecas X etc. instaladas sem que eu precise localizar e instalar manualmente essas .debe .rpmarquivos.

apt-gete yumsão os dois grandes gestores de pacotes, você também vai encontrar emergee pacmanlá fora, que fazem os mesmos trabalhos, embora com diferentes mecanismos subjacentes.

Casey
fonte
7
+1 por falar sobre gerenciamento de dependências. Isso não deve ser esquecido.
Ldrumm
11
nota: acredito que .debs são empacotados usando o arutilitário. não faço ideia do porquê.
strugee
11
Além disso, se você for contar emergecomo um gerenciador de pacotes, talvez também deva considerar as portas BSD (embora eu não saiba muito sobre elas, não tenho certeza se elas têm o equivalente a um gerenciador de pacotes no GNU / Linux).
strugee
3
Strugee @ verdade, eu editei para refletir isso. Além disso, tecnicamente, o portage é o mecanismo de gerenciamento de pacotes emergee é muito parecido com o ports. É tudo baseado na fonte e muito configurável, mas se um comando instalar / desinstalar, manipular dependências e manter um banco de dados de pacotes instalados, chamarei de gerenciador de pacotes. Bons comentários.
casey
@casey: Onde posso obter mais informações sobre os mecanismos subjacentes do dpkg e rpm?
deathholes
4

Possui as mesmas funcionalidades de um arquivo MSI no Windows:

  • registra o software em um registro,
  • registra quais arquivos foram instalados com esse pacote.

No Linux, eles também gerenciam dependências entre outros pacotes.

Os formatos de gerenciamento de pacotes fazem muitas outras coisas, mas essas são as principais funcionalidades.

Vinz
fonte
2

.rpmarquivos são pacotes RPM, que se referem ao tipo de pacote usado pelas distribuições derivadas da Red Hat e da Red Hat (por exemplo, Fedora, RHEL, CentOS). .debarquivos são pacotes DEB, que são o tipo de pacote usado pelo Debian e derivados do Debian (por exemplo, Debian, Ubuntu).

Quando baixados, eles geralmente são instalados pelos comandos rpme, dpkgrespectivamente, nas distros relevantes. Em outras palavras, são arquivos que são instalados rpme, em dpkgvez de, .msiou .exearquivos de configuração que são executáveis ​​que se instalam.

Os pacotes RPM e DEB diferem do MSI de várias maneiras.

  • Como acima, são arquivos que requerem outras ferramentas (ie rpme dpkg) para instalar.
  • Quando instalados, eles são adicionados a um banco de dados, o que não é o caso dos arquivos MSI. Os arquivos MSI listam o programa no registro, mas é improvável que uma desinstalação pelo Painel de Controle remova completamente todos os arquivos instalados do disco. Assim, quando os pacotes RPM e DEB são desinstalados, todos os arquivos são removidos corretamente.
  • Eles geralmente não são baixados e instalados diretamente, mas por meio de gerenciadores de pacotes como yume aptituderespectivamente - existem os chamados repositórios que oferecem pacotes compilados para o sistema relevante, e o gerenciador de pacotes instala todas as dependências automaticamente a partir dos dados nos repositórios.
  • Pacotes instalados normalmente executam várias ferramentas de configuração, por exemplo, se você instalar o GDM em um sistema já instalado com o LightDM, as ferramentas perguntam se você prefere usar o GDM do LightDM.
  • Ao instalar pacotes, além das dependências, são sugeridos alguns pacotes, que mostram pacotes não necessários, mas que podem ser úteis para o usuário.
Davidson Chua
fonte
1

Ambos .debe .rpmsão pacotes de software para GNU / Linux Distribuições, contendo software (programa (s), Aplicação (s), etc.) e informações para o "instalador * *" software sobre o próprio software e as instruções sobre como instalar o que e onde corretamente.

  • .debPacote de Software Debian , em Distribuições Debian (baseadas). Instalado através de, por exemplo, apt/ aptitude(linha de comando) ou graficamente, por exemplo, " Synaptic ", " Ubuntu Software Center ", " Gdebi ",…
  • .rpmGerenciador de Pacotes Red Hat : nas Distribuições Linux do Fedora / Red Hat (baseadas). Instalado via eg yum(linha de comando) ou graficamente via eg " yumex "
  • .msiis → Microsoft Installer : exatamente o mesmo que acima, para o Microsoft Windows OS

Os próprios instaladores também podem cuidar da manutenção, atualização e / ou remoção de pacotes. Além disso: aqui, " instalador " significa o software para realizar essas tarefas corretamente - ele também fornece as informações mencionadas para o próprio usuário, é claro, para realizar essas tarefas manualmente.

erch
fonte
11
O PackageKit não é um aplicativo. é uma biblioteca de abstração para os diferentes gerenciadores de pacotes nas distribuições.
strugee
@ Strugee Dang, pensei que este era o nome. Eu realmente espero yumexé o nome certo ... obrigado pela dica
erch
Eu acredito que o padrão no Fedora é o GNOME Software.
strugee
@strugee Eu tentei Fedora por um tempo, usado LXDE e lembrei de um front-end gráfico para o gerenciamento de pacotes, mas o nome era ... eu acho, o que funciona e ternos seus desejos melhor :)
erch
1

.deb: Pacote Debian usado para distribuições Linux baseadas no Debian, como Ubuntu, Linux Mint etc.

.rpm: rpminstalador para distribuições Linux baseadas no Red Hat, como RHEL, Fedora e CentOS

.msi: Instalador binário para plataforma Windows

Jeevan Roy Dsouza
fonte
bem-vindo ao Stack Exchange! uma explicação do motivo pelo qual você recebeu votos negativos: eu não sou uma das duas pessoas que votaram negativamente, mas meu palpite é que o fizeram porque você está implicando que o Debian e / ou o Ubuntu não são GNU / Linux, e isso é falso. eles são. (e há muito mais distribuições do que apenas Debian, Ubuntu e Fedora.) Além disso, você realmente não explicou nada.
strugee
11
Atualização: editado para remover essa implicação
Davidson Chua
Eu acho que os votos negativos são apenas para fornecer uma descrição de uma linha do que o arquivo significa, não a explicação real de como esses pacotes são diferentes um do outro. Ter um olhar para a resposta selecionada aqui, que é o tipo de qualidade que eles esperam de respostas :)
Munim