¿Cuál es la diferencia entre crear archivos .deb e instalarlos y simplemente ejecutar un archivo .run ?
¿Cuál es la diferencia entre crear archivos .deb e instalarlos y simplemente ejecutar un archivo .run ?
Respuestas:
.deb
los archivos son paquetes para dpkg , el administrador de paquetes Debian de bajo nivel (que APT y sus parientes invocan bajo el capó). Un .deb
archivo es un paquete para Debian o para un derivado como Ubuntu o Mint.
Los paquetes Debian contienen los archivos que pertenecen al paquete, así como un "archivo de control" que describe las dependencias del paquete y otra metainformación, y los scripts de instalación que se ejecutan cuando el paquete se instala, actualiza o desinstala.
Puede mirar el contenido de un .deb
archivo con dpkg -c
y dpkg -I
. Si no tiene dpkg
, puede usar ar t foo.deb
para enumerar las partes de un .deb
archivo y ar x foo.deb control.tar.gz
extraer la control.tar.gz
parte (y de manera similar para otras partes).
Red Hat (y parientes como CentOS y Fedora), SuSE y otros usan rpm , un formato diferente con características similares. Hay otros en otros sistemas unix.
.run
No es una extensión estándar. Un .run
archivo es presumiblemente algo que puede ejecutar. Puede instalar un programa o hacer algo completamente diferente.
En general, un archivo .deb es similar a un archivo zip, que contiene archivos junto con scripts cortos que pueden ejecutarse después de la instalación para agregar usuarios, grupos, etc. al sistema después de la instalación.
Un archivo .run suele ser un ejecutable binario único o un script de shell que contiene un blob binario que se puede instalar. Si es la variedad de script de shell, a menudo contendrá un blob binario que a menudo es sinónimo de un archivo zip recursivo o un archivo tar. En otras palabras, contendrá estructuras de directorios de archivos.
Otras veces, este tipo de archivo .run simplemente contendrá archivos .deb o .rpm que se descargarán en el disco y pueden instalarse individualmente, o el script que los contenía, los volcará en el disco y luego intentará para instalarlos utilizando el software del administrador de paquetes de su sistema.
Un ejemplo de esto sería si descarga Java JDK de Oracle. Es típicamente un único archivo ejecutable que, al ejecutarse volcará los archivos .deb o .rpm a cabo en el disco, y luego instalarlos usando the package management tools: dpkg
, apt
, yum
, o rpm
.
Aquí hay un ejemplo de cómo se vería la descarga / instalación con uno de estos archivos .run. La extensión es .bin, pero esto es simplemente cosmético, la extensión no tiene realmente otra relevancia que ayudar a los usuarios a distinguir entre los diferentes tipos de archivos.
$ 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
Aquí el archivo anterior descargará los paquetes para los diversos componentes que componen el JDK, después de lo cual puede instalarlos todos o solo los que necesite.
Hacerlo de esta manera permite hacer cosas adicionales más allá de solo instalar un paquete. Por ejemplo, Oracle tiene un acuerdo de licencia que quieren que acepte:
10.5 Este Acuerdo es el acuerdo completo de las partes relacionado con su tema. Reemplaza todas las comunicaciones, propuestas, condiciones, representaciones y garantías orales o escritas anteriores o contemporáneas y prevalece sobre cualquier término conflictivo o adicional de cualquier cotización, orden, reconocimiento u otra comunicación entre las partes en relación con su tema, incluyendo cualquier Bi Licencias de código, términos complementarios u otras licencias contenidas en el software con licencia. Ninguna modificación de este Acuerdo será vinculante, a menos que sea por escrito y esté firmada por un representante autorizado de cada parte.
¿Está de acuerdo con los términos de licencia anteriores? [si o no]
Con este instalador anterior, puede ver que contiene solo un blob binario de directorios de archivos:
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/
...
En este caso, este tipo de instalación está destinado a no convocar al administrador de paquetes, sino simplemente a volcar el contenido en un solo árbol de directorios para que pueda moverlo donde lo desee.
En entornos de producción, a menudo no es necesario utilizar el administrador de paquetes, sino más bien tener más control sobre las implementaciones. Quizás tenga varias aplicaciones que está implementando y cada una de ellas requiere una versión diferente del JDK. Usando este método, puede hacer que todos coexistan más fácilmente que decir a través del administrador de paquetes.
$ 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