23 jul

Instalación de Ports FreeBSD

Bueno esta vez voy a explicar como instalar paquetes en freebsd, después de realizar una instalación básica desde el cd o el usb, la situación en mi caso es la siguiente, queremos tener un sistema únicamente para ver unas gráficas de graphite y claro la cosa más sencilla que se nos ocurrió es preparar un mini pc con freebsd ;).

Bien, pues si hemos hecho la instalación base posiblemente lo primero que tengamos que hacer es dar acceso a root por ssh, si lo se… no es correcto, pero dado la criticidad del asunto, en mi caso voy abrir el acceso para gestionar el pc desde mi sobremesa, tranquilamente. Si hemos creado usuario durante el proceso de instalación, siempre podemos entrar con ese usuario y posteriormente cambiar a root.

Para hacer este paso, muy sencillo cambiaremos lo siguiente,

vi /etc/ssh/sshd_config
PermitRootLogin yes
/etc/rc.d/sshd restart

En nuestro caso vamos a realizar la instalación de los paquetes a través de ports, también lo podemos hacer por packages que vienen siendo los paquetes precompilados, o sea los .deb de debian o los .rpm de redhat, el caso de los port se usa la Colección de Ports que son los ficheros makefile y sus parches adaptados específicamente para poder instalar desde el código fuente. Al instalar un port lo que estaremos haciendo es bajar el código fuente aplicar los parches necesarios, compilar el código e instalará el programa.

Como explican muy bien en la pagina de freebsd, en resumen es esto:

Package (binario)

  • Instalación más rápida (compilar programas grandes puede llevar su tiempo).
  • No hay que comprender el proceso de compilar software.
  • No es necesario instalar compiladores en su sistema.

Ports (fuente)

  • Es posible ajustar las opciones de la instalación. (Los packages se generan normalmente con las opciones estándar. Con los ports puede ajustar diversas opciones, como disponer de módulos adicionales o cambiar la ruta por defecto.)
  • Puede usar sus propios parches si tiende hacerlo.

Como veis, gustos y formas, en mi caso me parece bastante interesante la posibilidad de decidir que partes de un programa quieres tener disponible, es una forma de tener exactamente lo que quieres, si que es cierto que en ciertos casos cuando vamos a instalar suites se puede convierte en algo pesado ir seleccionando las opciones de todos los paquetes, pero como no, siempre hay alguna ayuda…(veremos mas adelante) puesta la introducción vamos al lio.

Preparación de las Colección de  Ports

Lo primero que deberemos hacer es bajarnos la Coleccion de Ports, extraerlos y mirar si disponemos de actualizaciones, todo con estos tres comandos.

portsnap fetch
portsnap extract
portsnap update

Opciones e instalación de Ports

Bueno, ahora vamos a instalar algún port, por ejemplo nano, que es un poco más amigable que vi.

Podemos buscar la ruta del paquete a instalar con whereis o con locate.

whereis nano
nano: /usr/ports/editors/nano

Así que nos vamos a esa ruta y haremos

[email protected]:~ # cd  /usr/ports/editors/nano
[email protected]:/usr/ports/editors/nano # make install clean
[email protected]:~ # rehash

Como hemos visto, se cumple lo que os comente anteriormente (menos mal…) y durante el proceso nos preguntan si queremos tener disponible la documentación de gettext, entro otras opciones que deberemos ir contestando gettext

Por norma general la instalación de ports es así de sencilla.

¿Qué pasa si  queremos instalar xfce?

Como os podéis imaginar nos va a preguntar bastantes opciones a medida que vaya preparando los configures, pues en este caso tenemos dos opciones.

Opción 1

  • make config-recursive antes del make install y el make clean, de esta manera nos solicitara todos las opciones antes de empezar y podremos dejarlo compilando sin preocuparnos de que se pare el proceso.

Opción 2

  • Podemos también ponerlo por defecto, o sea que las opciones por defecto que trae el paquete sean las que utilizara, esto lo haremos añadiendo BATCH=yes al fichero /etc/make.conf, o si lo queremos en un caso puntual, podemos lanzar el make de la siguiente forma make install clean BATCH=yes

Bueno pues vamos hacer un ejemplo, con el paquete vim, como veréis  es posible que nos intentara instalar dependencias del paquete con las X11, en el caso que no tengamos las X o que no queramos tener las dependencias, deberemos hacer lo que explique en su día Evitar dependencias X11 al instalar paquetes FreeBSD

whereis vim
cd /usr/ports/editors/vim/
make config-recursive
make install
make clean
rehash

Como hemos visto nos ha pedido diferentes opciones antes de empezar el proceso, después hemos hecho el make install y el make clean y ya no pregunto nada más, como curiosidad si os fijáis paso algo que explique más arriba (menos mal… nuevamente), lo que hizo en descargar el paquete y fue bajando todos los patch disponible para aplicar hasta la fecha, lo vemos en la imagen.

parch

Y aprovechando esto, os voy a explicar que es la carpeta /usr/ports/distfiles/, cuando vamos a instalar un port, el sistema realizara la comprobación primero en esa ruta, para comprobar que no tenga el paquete ya disponible, también es útil en el caso que tengamos que cumplir alguna dependencia que no este en el repositorio, en eso caso podremos el fichero tgz en esa ruta.

Bueno ahora para mostrar la segunda opción, instalaremos el entorno gráfico xfce, el procedimiento es el mismo, cambiando la opción BATCH=yes, pues al lío.

cd /usr/ports/x11-wm/xfce4
make install clean BATCH=yes
echo "/usr/local/bin/startxfce4" > ~/.xinitrc

Como habréis notado, aquí lo hizo todo a saco sin preguntar nada, cogiendo las opciones por defecto como era de esperar tardo un rato largo…. al menos en mi caso (6-7horas), la última linea es para que en el próximo arranque nos muestre el entorno gráfico

Eliminación de Ports

Bien pues a estas alturas ya sabemos como instalar ports de diferentes maneras en nuestro sistema, igual ahora lo que no interesa es eliminar un port, bien pues lo que vamos hacer es lo siguiente, por ejemplo con el port nano.

cd  /usr/ports/editors/nano
pkg_delete nano

Así de fácil

Actualización de Ports

Igual también nos interesa actualizar algun port, pues lo que haremos es lo siguiente.

Veremos los ports que tienen alguna actualización, con el siguiente comando

pkg_version -v

Muy importante deberemos revisar /usr/ports/UPDATING ya que ahi veremos los commit que se realizaron en los port que tienen posibilidad de ser actualizados,  de esta manera decidiremos si la mejora nos es necesaria o no.
Yo por norma general utilizo portupgrade, que me parece muy sencillo y dinámico, vamos a ver algunos ejemplos

cd /usr/ports/ports-mgmt/portupgrade
make install clean

Actualizar todos los ports, con confirmación (opción -i)

portupgrade -ai

Si queremos actualizar únicamente un paquete podemos hacer

portupgrade -R nano

Con la opción -R lo que le estamos diciendo es que antes de actualizar el paquete, actualice todas las dependencias.

Limpieza de los Ports

Por ultimo vamos a limpiar el sistema después de todo lo que hicimos.

Sobretodo si somos de los que instalamos los ports sin realizar el make clean, deberemos lanzar cada x tiempo el siguiente comando, ya que la colección de ports tiende a crecer y crecer y crecer….

portsclean -C

Para limpiar la carpeta distfiles haremos.

portsclean -D

Pues creo que es todo, como veréis es una simple pincelada para sentirnos un poco más cómodos con el entorno,  la verdad es que es un sistema muy dinámico y recomiendo que lo proveéis, por supuesto una de las grandes cosas que tiene freebsd es su maravillosa documentación.

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/

Ale a disfrutarlo!

One thought on “Instalación de Ports FreeBSD

  1. Pingback: Instalar FreeBSD en Raspberry | Miguel Ángel Ausó

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>