Diferença entre arquivos .deb e arquivos .run

7

Qual é a diferença entre criar arquivos .deb e instalá-los e apenas executar um arquivo .run ?

    
por Mandar Shinde 29.09.2013 / 16:28

2 respostas

7

.deb files são pacotes para dpkg , o gerenciador de pacotes Debian de baixo nível (que é chamado sob o capô pela APT e seus familiares). Um arquivo .deb é um pacote para o Debian ou para um derivado como o Ubuntu ou o Mint.

Os pacotes Debian contêm os arquivos que pertencem ao pacote, bem como um “arquivo de controle” que descreve as dependências do pacote e outras meta-informações, e scripts de instalação que são executados quando o pacote é instalado, atualizado ou desinstalado. p>

Você pode ver o conteúdo de um arquivo .deb com dpkg -c e dpkg -I . Se você não tiver dpkg , poderá usar ar t foo.deb para listar as partes de um arquivo .deb e ar x foo.deb control.tar.gz para extrair a parte control.tar.gz (e semelhantemente para outras partes).

A Red Hat (e parentes como o CentOS e o Fedora), SuSE e outros usam rpm , um formato diferente com similar características. Existem outros em outros sistemas unix.

.run não é uma extensão padrão. Um arquivo .run é presumivelmente algo que você pode executar. Pode instalar um programa ou fazer algo completamente diferente.

    
por 30.09.2013 / 03:28
7

Em geral, um arquivo .deb é semelhante a um arquivo zip, que contém arquivos junto com scripts curtos que podem executar pós-instalação para adicionar usuários, grupos, etc. ao sistema após a instalação.

Um arquivo .run é geralmente um único executável binário ou um shell script que contém um blob binário que pode ser instalado. Se for a variedade do script de shell, muitas vezes ele conterá um blob binário que geralmente é sinônimo de um arquivo zip ou tar recursivo. Em outras palavras, ele conterá estruturas de diretórios de arquivos.

Outras vezes, esse tipo de arquivo .run conterá simplesmente arquivos .deb ou .rpm que serão despejados no disco, e podem ser instalados individualmente ou o script que os continha, serão despejados no disco, e tente instalá-los usando o software gerenciador de pacotes do seu sistema.

Um exemplo disso seria se você baixasse o Java JDK da Oracle. Normalmente, é um único arquivo executável que, quando executado, despeja os arquivos .deb ou .rpm no disco e os instala usando the package management tools: dpkg , apt , yum ou rpm .

Exemplo

Aqui está um exemplo de como o download / instalação ficaria com um desses arquivos .run. A extensão é .bin, mas isso é simplesmente cosmético, a extensão não tem nenhuma relevância além de ajudar os usuários a distinguir entre os diferentes tipos de arquivos.

$ wget http://www.java.net/download/jdk7/archive/b125/binaries/jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin
$ ./jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin

Aqui, o arquivo acima irá despejar pacotes para os vários componentes que compõem o JDK, após o qual você pode instalar todos eles ou apenas aqueles que você precisa.

Faça isso desta maneira permite que coisas adicionais sejam feitas além da simples instalação de um pacote. Por exemplo, a Oracle tem um contrato de licença que eles querem que você aceite:

10.5 This Agreement is the parties' entire agreement relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, conditions, representations and warranties and prevails over any conflicting or additional te rms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter, including any Bi nary Code Licenses, Supplemental Terms, or other licenses contained within Licensed Software. No modification to this Agreement will be binding, unless in writing and signed by an authorized representative of each party.

Do you agree to the above license terms? [yes or no]

Com este instalador acima, você pode ver que ele contém apenas um blob binário de diretórios de arquivos:

Extracting...
UnZipSFX 5.52 of 28 February 2005, by Info-ZIP (http://www.info-zip.org).
   creating: jdk1.7.0/
   creating: jdk1.7.0/lib/
  inflating: jdk1.7.0/lib/jexec      
   creating: jdk1.7.0/lib/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-attach.jar  
  inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-host-views.jar  
   creating: jdk1.7.0/lib/visualvm/visualvm/modules/locale/
...

Nesse caso, esse tipo de instalação não pretende chamar o gerenciador de pacotes, mas simplesmente despejar o conteúdo em uma única árvore de diretórios, para que você possa movê-lo onde quiser.

Em ambientes de produção, muitas vezes você não quer usar o gerenciador de pacotes, mas sim ter mais controle sobre implantações. Talvez você tenha vários aplicativos que você está implantando e cada um deles requer uma versão diferente do JDK. Usando esse método, você pode fazer com que todos coexistam mais facilmente, em seguida, diga através do gerenciador de pacotes.

$ pwd
/home/saml/jdk1.7.0
[saml@grinchy jdk1.7.0]$ ls -l
total 19308
drwxr-xr-x  2 saml saml     4096 Jan 13  2011 bin
-r--r--r--  1 saml saml     2487 Jan 13  2011 COPYRIGHT
drwxr-xr-x  5 saml saml     4096 Jan 13  2011 db
drwxr-xr-x 11 saml saml     4096 Jan 13  2011 demo
drwxr-xr-x  3 saml saml     4096 Jan 13  2011 include
drwxr-xr-x  6 saml saml     4096 Sep 29 10:57 jre
drwxr-xr-x  3 saml saml     4096 Sep 29 10:57 lib
-r--r--r--  1 saml saml     9005 Jan 13  2011 LICENSE
drwxr-xr-x  4 saml saml     4096 Jan 13  2011 man
-r--r--r--  1 saml saml    25379 Jan 13  2011 README.html
-r--r--r--  1 saml saml    20320 Jan 13  2011 README_ja.html
-r--r--r--  1 saml saml    15160 Jan 13  2011 README_zh_CN.html
-r--r--r--  1 saml saml     5348 Sep 29 10:58 register.html
-r--r--r--  1 saml saml     5645 Sep 29 10:58 register_ja.html
-r--r--r--  1 saml saml     4951 Sep 29 10:58 register_zh_CN.html
drwxr-xr-x  8 saml saml     4096 Jan 13  2011 sample
-rw-r--r--  1 saml saml 19631790 Jan 13  2011 src.zip

Referências

por 29.09.2013 / 16:47