comparando un paquete .pkg.tar.xz (Arch), un .rpm (OpenSuse) y un .deb (Debian)

¿Qué tienen dentro los paquetes que instalamos desde los repositorios de nuestras distros linux?

No me apetecía buscar información teórica de esto por internet, quería investigarlo yo mismo, por lo que me he puesto manos a la obra y he elegido un paquete, en este caso el editor de texto simple Leafpad, he seleccionado mis tres distros favoritas (que en mi opinión son las 3 mejores distribuciones GNU/Linux que existen), he descargado la última versión del paquete “leafpad” que había en cada una (la 0.8.18.1) y aquí los tengo sobre la mesa de disección listos para ser destripados. ¡Bisturí!

Los tres paquetes obtenidos son archivos comprimidos, aunque cada uno lleve al final la extensión de su sistema de instalación pueden ser descomprimidos en una carpeta como si de un zip, un rar o un 7z se tratase.

No voy a hacer ningún análisis sesudo, dejo eso para gente con más formación en programación y paquetería linux que yo. Esto es una mera descripción de laboratorio. Una apertura de cajas chinas para linuxeros curiosos. Nada más. Empecemos:

 
paquete ARCHLINUX: leafpad-0.8.18.1-4-x86_64.pkg.tar.xz

descomprimimos el paquete y nos sale un directorio llamado leafpad-0.8.18.1-4-x86_64.pkg que contiene dentro una única carpeta:

paquete-arch
podemos ver que en el caso de ARCH todo es muy simple, tan sólo una carpeta usr que contiene dos subcarpetas, una bin con el binario (ejecutable) y otra share que contiene el típico archivo .destktop (para colocar el lanzador de la aplicación) así como los iconos y los locales de idioma. Será el poderoso pacman de ARCH quien se encargará de colocar cada cosa en su sitio y listo. Simple y perfecto, puro ArchLinux.

 
paquete OPENSUSE: leafpad-0.8.18.1-9.1.3.x86_64.rpm

como todo el mundo sabe, los paquetes de OpenSuse (así como los de Fedora, CentOS, Mageia, etc, etc) llevan la extensión .rpm. Es ese mundo de las distros Linux que yo llamo “rpm world” o mundo rpm. A diferencia del paquete de ARCH, que se descomprime sin problema alguno, el paquete .rpm he tenido que renombrarlo a .rar para poder descomprimirlo, hecho lo cual, sí que se descomprime y lo que tiene dentro es otro paquete comprimido con la extensión .cpio que si a su vez lo descomprimimos obtenemos como resultado una carpeta usr:

paquete-opensuse

tal y como podemos ver el contenido y organización es similar al paquete de ARCH, sólo que aquí también hay un subdirectorio doc dentro de share que contiene algunos documentos de texto simple descriptivos y de contenido legal del paquete. Excelentes programas de OpenSuse como yum o zypper, se encargarán de todo en la instalación.

 
paquete DEBIAN: leafpad_0.8.18.1-4_amd64.deb

supongo que los paquetes .deb son los archivos de instalación más famosos del mundo GNU/Linux. Debian, es tal vez la más grande distro que existe (para qué negarlo aunque algunos tengamos otras preferencias). La fuerza del mundo de paquetes deb reside no sólo en la misma Debian, sino en que es madre y abuela de otras grandes distribuciones muy conocidas, como UBUNTU y LinuxMint.
El paquete .deb se descomprime sin problemas dándonos el directorio leafpad_0.8.18.1-4_amd64 que contiene “cositas” diferentes a los paquetes anteriores, como podemos ver:

paquete-debian1
vemos que hay 3 archivos: un pequeño archivo de texto llamado debian-binary que tan sólo contiene un número de versión (2.0) y dos archivos comprimidos, data.tar.xz y control.tar.gz. Descomprimamos el primero a ver qué contiene:

paquete-debian2

vemos que data.tar.xz contiene el típico directorio usr, con los consabidos subdirectorios bin y share. En este caso share contiene aún más archivos que en OpenSuse, pues los chicos de Debian han incluido también las páginas man de Leafpad.

Descomprimamos finalmente control.tar.gz :

paquete-debian3contiene un directorio control dentro del cual hay scripts e información importante del paquete como por ejemplo sus dependencias. El superfamoso programa de instalación de Debian APT se encargará de leer este directorio de control para instalar correctamente el paquete.

 
Conclusión: 3 formas distintas de hacer un excelente trabajo, desde la simplicidad de ARCH hasta la exhaustividad de DEBIAN, con el punto medio del equilibrio y bien hacer de OPENSUSE. Hazlo como quieras, pero hazlo bien.

instalar Apache en Debian, Arch y OpenSuse.

apache-logoCuando navegas por la web, lo que haces es pedir documentos HTML desde un cliente (tu ordenador y un programa como Firefox o Chrome) a otros ordenadores de Internet (servidores) que tienen instalado un programa que sirve documentos HTML. Estos programas que escuchan peticiones en el puerto 80, del protocolo HTTP y sirven páginas HTML se llaman servidores web, el más famoso de los cuales es Apache.

instalar Apache en Debian:

en Debian el paquete se llama “apache2“, y tras la instalación, el servidor estará preconfigurado básicamente y dispuesto para funcionar (atención pues Debian arranca por defecto un Apache instalado).

sudo apt-get install apache2 (con el nuevo APT sería “sudo apt install apache2“)

abrimos nuestro navegador web (que es nuestro cliente) y pedimos:

http://localhost/    (es una petición interna a nuestro propio host)

y si nos sirve la página por defecto de Apache, ya funciona.

el directorio por defecto donde están los archivos que sirve Apache en Debian es:

/var/www/html/

ahí está el archivo “index.html” que sirve por defecto.

si quieres apagar Apache (mediante scripts de inicio SysV):

sudo service apache2 stop

sudo service apache2 start    (arrancarlo)


instalar Apache en ArchLinux-Manjaro:
en Arch y Manjaro el paquete se llama “apache“. Lo instalamos:

sudo pacman -S apache

arrancamos en servidor mediante systemd:

sudo systemctl start httpd (en Arch el servicio se llama “httpd”)

pedimos en el navegador:

http://localhost/

y si nos muestra el index.html por defecto ya está.

el directorio por defecto donde están los archivos que sirve Apache en Arch es:

/srv/http/   (si no hay un index por defecto puedes crearlo tú para ver si lo muestra)

Para apagar Apache:

sudo systemctl stop httpd


instalar Apache en OpenSuse:

en Openuse el paquete de llama “apache2“. Lo instalamos:

sudo zypper in apache2

arrancamos en servidor mediante systemd:

sudo systemctl start apache2   (en OpenSuse el servicio se llama “apache2”)

pedimos en el navegador:

http://localhost/

y nos muestra una página que dice: It works! (!esto funciona¡)

el directorio por defecto donde están los archivos que sirve Apache en OpenSuse es:

/srv/www/htdocs/

Para apagar Apache:

sudo systemctl stop apache2


Nota de seguridad: es importante no tener funcionando servidores si no se utilizan.

apache-debian

 

equivalencias apt-get, pacman y zypper (Debian, Arch, OpenSuse)

Todo linuxero que se precie instala con frecuencia paquetes en modo consola/terminal, para eso existen los potentes y rápidos programas de gestión de paquetes en modo texto, tanto en Debian (apt-get), Arch (pacman) u OpenSuse (zypper).

Veamos sus equivalencias principales:

APT-GET – DEBIAN / UBUNTU y derivadas:

sudo apt-get update   (actualizar la base de datos de los repositorios)

sudo apt-get upgrade   (actualizar el sistema)

sudo apt-get install paquete   (instala el paquete)

sudo apt-get remove paquete   (desinstala el paquete)

sudo apt-cache search paquete   (buscar un paquete)

sudo apt-cache show paquete   (muestra información del paquete)

debian          ubuntu

 

PACMAN – ARCH / MANJARO y derivadas:

sudo pacman -Syu   (actualizar la base de datos de los repositorios y actualizar el sistema)

sudo pacman -S paquete   (instala el paquete)

sudo pacman -R paquete   (desinstala el paquete)

sudo pacman -Rs paquete   (desinstala el paquete y sus dependencias no útiles para el sistema)

sudo pacman -Ss paquete   (busca un paquete específico)

sudo pacman -Sw paquete   (descarga el paquete pero no lo instala)

sudo pacman -U /ruta/paquete.pkg.tar.gz   (instala un paquete desde una carpeta local)

sudo pacman -Q   (muestra la lista de todos los paquetes instalados en el sistema)

sudo pacman -Scc   (borra todos los paquetes guardados en la cache de pacman en: /var/cache/pacman/pkg)

arch          manjaro

 

ZYPPER – OPENSUSE  y derivadas:

sudo zypper update   (actualizar la base de datos de los repositorios y actualizar el sistema)

sudo zypper in paquete   (instala el paquete)

sudo zypper rm paquete   (desinstala el paquete)

suse

 

para más información man apt-get , man pacman , man zypper