Comandos FreeBSD

14 abril, 2011

Pequeño resumen de comandos que me hice, puede ser útil (en inglés):

  • Reinstall package from ports:

# cd /usr/ports/category/port

# make deinstall install clean

  • Why do I not see any users in GDM?

You did not mount the procfs file system. Procfs is not mounted by default in recent releases of FreeBSD. You must add the following line to your /etc/fstab file:

proc           /proc       procfs  rw  0   0

  • How do I uninstall GNOME?

If you have installed x11/gnome2 and you want to remove all Desktop components that do not have other dependent packages, do the following:

# pkg_deinstall -R x11/gnome2

Note: the pkg_deinstall command requires you have ports-mgmt/portupgrade installed.

If you want to force a removal of all Desktop components (this is generally not recommended), do the following:

# pkg_deinstall -Rf x11/gnome2

  • Checking installed packages for vulnerabilities

$ pkg_add -r portaudit

$ portaudit -F -a

  • Upgrading the ports tree with portsnap

1. Create an empty directory /usr/ports if it does not exists.

# mkdir /usr/ports

2. Fetch and download a compressed snapshot of the Ports Collection into /var/db/portsnap (or any other location specified in configuration file). Internet connection needed at this stage) and update the existing snapshot.

# portsnap fetch

3. If you are running Portsnap for the first time (even if a ports tree has already been created or populated, to let Portsnap establish a baseline from which portsnap can determine which parts of the ports tree need to be updated) or /usr/ports hasn’t been populated, extract the snapshot. This replaces the existing files and directories, and establishes Portsnap-maintained ports tree into /usr/ports:

# portsnap extract

This step can be skipped if you’re only updating the ports tree.

4. If you already have a populated /usr/ports and you are just updating, run the following command instead:

# portsnap update

Note: For updating of FreeBSD Ports Tree, step 1 and 3 can be combined into single command: portsnap fetch update (not supported in older version of Portsnap).

  • Upgrading installed ports

To upgrade ports that are already installed on your server, install portupgrade then type:

# /usr/local/sbin/pkgdb -F

which will compile a database of currently installed ports, then

# /usr/local/sbin/portupgrade -acP

which will upgrade any ports which have newer versions available.


Gdebi y la gestión de paquetes

19 junio, 2010

En la última entrada os comentaba la forma de instalar paquetes en local (guardados en vuestro ordenador) con dpkg. Pues bien, Gdebi es otra herramienta para instalar paquetes en local, que además ofrece resolución de dependencias, y por tanto mucho mejor. Para usarlo:

# gdebi paquete_guay.deb

Con todo esto de la resolución de paquetes puede que nos hayamos hecho un lío (yo sí :P). Vamos a tratar de aclararlo un poco:

Para gestionar paquetes en sistemas basados en Debian (Debian, Ubuntu, Mint, …) tenemos dpkg, que es la base. Luego tenemos gdebi, que permite instalar paquetes en local y obtener las dependencias (paquetes auxiliares necesarios para el funcionamiento del paquete a instalar) de la red. Después tenemos apt, que permite instalar paquetes y sus dependencias directamente desde la red. Y por último tenemos aptitude, que tiene las mismas funciones que apt, pero que recuerda mucho mejor las relaciones entre dependencias a la hora de desinstalar. ¡Vaya lío!

Pues hay más. De los citados anteriormente dpkg y gdebi son solo para paquetes en local, y apt y aptitude solo para paquetes en remoto. Gdebi es también un instalador gráfico, que es el que salta cuando hacemos doble-clic a un paquete .deb. Aptitude tiene una interfaz gráfica de consola basada en menús. Y apt tiene varias interfaces gráficas, como Synaptic o Ubuntu Software Center.

Con todo esto, como cada herramienta de gestión de paquetes de las citadas anteriormente, guarda una lista distinta de paquetes instalados y dependencias, no me extraña nada que la gestión de paquetes en sistemas Debian sea un caos.

¿No os parece mucho más sencillo y coherente yum? Yum es una herramienta de gestión de paquetes para sistemas de paquetes .rpm de Red Hat, como Fedora. Yum permite instalar paquetes tanto en local como desde la red, y resolviendo dependencias. Además tiene un aspecto mucho más organizado y claro que apt o aptitude. Al menos para mí.

Yum permite además añadidos (plug-ins), que mejoran sus prestaciones. El añadido Yum-presto permite usar Delta RPMs. Esto es, a la hora de actualizar un paquete instalado, en lugar de bajar un paquete entero con su nueva versión entera, baja un paquete .drpm que contiene sólo los archivos del paquete que cambian entre la versión instalada y la actualización. Esto permite ahorrar mucho en ancho de banda. Curiosamente, a YUM lo encuentro más lento que a aptitude.

Además, tanto Fedora como Arch Linux y Slackware usan ya el formato de compresión XZ, que da tasas de compresión más elevadas que el LZMA usado en Debian.

Creo que Debian debe ponerse las pilas y mejorar en cuanto a su gestión de paquetes.

Y ya puestos a hablar de gestión de paquetes, voy a comentar los otros sistemas que conozco.

El primero es el sistema de instalación con Asistente. Tras hacer doble clic en el archivo salen unos menus que te guían en la instalación. Es un sistema usado por Windows y PC-BSD.

Otro método distinto es el usado por FreeBSD o Gentoo, llamado Ports. Están basados en código fuente. Tenemos unas carpetas sincronizadas con el servidor que contienen el código fuente de cada aplicación. Si queremos instalar una aplicación vamos a su carpeta y la compilamos.

El último método que conozco es el de Mac OS X. Las aplicaciones se bajan individualmente de Internet, como en Windows, pero al hacer doble-clic no salta un asistente. En cambio, se monta una unidad virtual que contiene un archivo, un solo icono, que es el programa en sí. Si lo arrastras a la carpeta Aplicaciones, este se copia allí quedando instalado. Si lo borras queda desinstalado. ¿No os parece sencillo?

¿Vosotros cuál preferís?