- ENTRADA 7 -
Instalando desde ports
- Actualizaciones -
- 14-04-2023
- 02-04-2024
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
/blog/fbsd/