- ENTRADA 7 -

Instalando desde ports


- Actualizaciones -



Aunque FreeBSD tiene miles de programas binarios para instalar, a veces no nos queda otro remedio que compilar alguno que no exista. Otras veces puede que el binario instalado no nos funcione bien.

FreeBSD tiene a su disposición un árbol de ports que habrá que descargar en nuestro equipo. Lo haremos con portsnap.


Descargar el árbol de ports


La primera vez que descargamos el árbol de ports hay que ejecutar el siguiente comando:


portsnap fetch
portsnap extract

Ahora verás que se ha creado un directorio llamado /usr/ports con toda la colección de código fuente dividido por categorías.


Actualizar el árbol de ports


Una vez que hayamos descargado por primera vez el árbol de ports. habrá que ir actualizándolo cada cierto tiempo (o antes de compilar uno). Dentro de la ruta /usr/ports:


make update

Y listo, ya podemos usar los ports.


Compilando un port


La compilación es muy fácil. Solo hay que ir a la localización del port que queramos instalar. Si no sabemos donde está situado, podemos buscarlo así:


cd /usr/ports
make search key=nombre

Si lo que quieres es una librería (como en este ejmplo), en el listado aparecerán todos los programas los cuales dependen de ella. Busca en el listado hasta que la veas como libreria, no como dependencia. Por ejemplo, cryptopp:


Port:	urbackup-client-2.5.20.0_1
Path:	/usr/ports/archivers/urbackup-client
Info:	Client component of the UrBackup backup system
Maint:	ports@FreeBSD.org
B-deps:	autoconf-2.71 autoconf-switch-20220527 automake-1.16.5 cryptopp-8.7.0 gettext-runtime-0.21.1 gettext-tools-0.21.1 icu-72.1,1 indexinfo-0.3.1 libedit-3.1.20221030,1 libiconv-1.17 libtextstyle-0.21.1 libtool-2.4.7_1 m4-1.4.19,1 ncurses-6.3 perl5-5.32.1_3 pkgconf-1.8.1,1 sqlite3-icu-3.41.0_1,1
R-deps:	cryptopp-8.7.0 gettext-runtime-0.21.1 icu-72.1,1 indexinfo-0.3.1 libedit-3.1.20221030,1 libiconv-1.17 ncurses-6.3 sqlite3-icu-3.41.0_1,1
WWW:	https://www.urbackup.org

Port:	ceph14-14.2.22_9
Path:	/usr/ports/net/ceph14
Info:	Ceph delivers object, block, and file storage in a unified system
Maint:	wjw@digiware.nl
B-deps:	aarch64-binutils-2.40_2,1 bash-5.2.15 boost-libs-1.81.0

Port:	cryptopp-8.7.0
Path:	/usr/ports/security/cryptopp
Info:	Free C++ class library of Cryptographic Primitives
Maint:	jhale@FreeBSD.org
B-deps:	gettext-runtime-0.21.1 gmake-4.3_2 indexinfo-0.3.1 libiconv-1.17
R-deps:	
WWW:	https://www.cryptopp.com/

En este ejemplo, lo que busco está al final.


Si vemos el listado anterior, vemos que en "Path" pone /usr/ports/security/cryptopp, así que cambiaremos a esa ruta:


cd /usr/ports/security/cryptopp

En este caso, yo quiero que esa libreria criptográfica tenga soporte SIMD, así que lanzo el configurador (bajo ncurses):


make config

Marco la opción SIMD y le doy a "Aceptar". Ahora empiezo la compilación/instalación:


make install clean

Esto hace la compilación (make), lo instala (install) y limpia el port de archivos de compilación (clean) en un solo paso.


Si quiero conocer las opciones de compilación de un paquete:


make showconfig

Si quiero resetear las opciones a las que venian por defecto:


make rmconfig


Bloquear paquetes


Una vez instalado el port, el sistema lo toma como un binario, por lo que en futuras actualizaciones puede que sufra una actualización que no nos convenga, por lo que deberemos bloquear ese paquete:


pkg lock cryptopp

Ahora ese paquete ya no será actualizable.


Desinstalar ports


Los ports se desinstalan exactamente igual que los packages, ya que una vez compilados, no dejan de ser binarios:


pkg delete cryptopp-0.8.0

Pero podemos hacerlo desde el mismo árbol de ports:


cd /usr/ports/security/cryptopp

make deinstall -> Si alguna aplicación depende del port saldrá una advertencia indicándolo
make rmconfig -> Elimina además la configuración del port

Actualizar paquetes


Para actualizar el port en cuestión:


cd /usr/ports/CATEGORY/NAME
make clean
make config
make
make reinstall



Tags #freebsd #ports



◄ Listado de artículos

◄◄ Inicio



/blog/fbsd/