sábado, 8 de octubre de 2011

FreeBSD y el Software a terceros

Hay dos formas generales de instalar software ajeno en FreeBSD. A través de compilaciones con "Makefiles" y conjuntos de scripts de la colección de ports de FreeBSD. Usando pkg_add(1). Existen otras formas de instalar software a terceros como pkgsrc o el sistema PBI de PC-BSD.

Instalando paquetes binarios con pkg_add(1)

Tan sencillo como ejecutar
# pkg_add -r kde4 
Eliminando un paquete binario
# cd /var/db/pkg
# pkg_delete [nombre del paquete > TAB]
Eliminando un paquete binario junto con sus dependencias
# cd /var/db/pkg
# pkg_delete -r [nombre del paquete > TAB]
Nota: Si tienes una máquina potente y te gustaría crear paquetes para instalarlos en tu máquina vieja (o no potente).

Creando paquetes 
$ cd /home/$USER/
$ mkdir pkg
$ cd pkg
$ pkg_create  -b /var/db/pkg/[nombre del paquete TAB]
Instalando paquetes de forma local
# setenv PACKAGESITE file://home/$USER/pkg
# pkg_add -r [Nombre del paquete]
En caso de que tengas los paquetes alojados en un hosting/VPS/Servidor FTP...etc
HTTP > setenv PACKAGESITE http://<URL>/
FTP > setenv PACKAGESITE ftp://<URL>/ 
Usando la colección de ports de FreeBSD 

La mayoría de usuarios que utilizan FreeBSD utilizan "The FreeBSD Ports Collection" que viene a ser al español "La colección de ports de FreeBSD". Aquí está todo lo que te permite usar software a terceros para FreeBSD solo con Makefiles, parches y algún que otro añadido de por medio. Por supuesto que requiere compilación.

Descargando la colección de ports de FreeBSD (CURRENT)

Nota: Esta rama se aplica para los puertos más actualizados posibles. No tiene nada que ver con tú versión de FreeBSD.
# cd /root
# cp /usr/share/examples/cvsup/ports-supfile .
# sed -ie 's/CHANGE_THIS/cvsup.de/g' ports-supfile
# echo "umask=007" >> ports-supfile 
# csup -g -L 2 ports-supfile
Nota: Para usar compilación paralela. Hay que añadir al /etc/make.conf la siguiente variable:
MAKE_JOBS_NUMBER="3" 
Para más información sobre como compilar con *FLAGS mira el artículo anterior.

Una vez termine, instalaremos (ports-mgmt/pkgsearch) que es una herramienta para buscar ports de una manera más fácil.
# cd /usr/ports/ports-mgmt/pkgsearch
# make install clean
$ hash -r
$ pkgsearch -u
$ pkgsearch  [nombre del paquete]
Construyendo paquetes desde el código fuente
# mkdir /usr/ports/packages
# cd /usr/ports/[un port cualquiera]
# make package-recursive 
Actualizando los ports (carpetas, parches...etc)
# csup -g -L 2 /root/ports-supfile
Actualizando el software instalado con portupgrade

portupgrade(1) es una "suite" mantenedora de ports. Nos permite tener los programas de terceros a lo último. Existen otros métodos de como actualizar sin usar portupgrade(1) . Puedes consultarlos aquí.
# cd /usr/ports/ports-mgmt/portupgrade
# make install clean
# rehash
# pkgdb -F
¡Importante!: Antes de actualizar, revisa el fichero /usr/ports/UPDATING y ejecuta siempre el comando anterior para ¡evitar problemas!
# portupgrade -arR
 Liberando espacio con portsclean

portsclean(1) forma parte de la "suite" de portupgrade(1) . Hay 3 formas comunes de limpiar /usr/ports/distfiles (donde se almacenan los "tarballs")
  •  Limpiando el directorio de tarballs viejos
# portsclean -D
  • Limpiando el directorio de todos los tarballs de los ports que no usemos
# portsclean -DD
  • Limpiando todo aquel directorio que haya sido construido (compilado) y que no haya sido eliminado
# portsclean -C
Revisando vulnerabilidades en los ports con portaudit

portaudit(1) descarga una base de datos de x servidor y revisa todos los ports comparando los ports de su base de datos con los que tengas en busca de alguna vulnerabilidad. En caso de que haya, te avisará junto con una URL con la descripción de la vulnerabilidad.
# cd /usr/ports/ports-mgmt/portaudit
# make install clean
# rehash
# portaudit -Fda
Nota: Para más información sobre la colección de ports. Lee la sección ports(7)

2 comentarios:

  1. Muy buen blog, solo una pregunta como actualizar aplicaciones instalada mediante ports.
    Como he dicho buen blog que me ha servido para iniciarme, una pena que no se tenga mas información sobre sistemas BSD con respecto a Debian, por poner un ejemplo.

    ResponderEliminar
  2. Una pregunta tonta por que al instalar libreoffice mediante " pkg_add -r " no funciona:

    pkg_add -r libreoffice
    Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/libreoffice.tbz: File unavailable (e.g., file not found, no access)
    pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/libreoffice.tbz' by URL

    Gracias y un saludo.

    ResponderEliminar