Cómo crear ports en FreeBSD #PicnicCode2015
-
Upload
opensistemas -
Category
Software
-
view
137 -
download
0
Transcript of Cómo crear ports en FreeBSD #PicnicCode2015
FreeBSD ports. ¿Qué es? (I)
● Es una forma de instalar software de terceros
● Es la base para crear repositorios de paquetes binarios
● Si has usado Gentoo, es como el portage
FreeBSD ports. ¿Qué es? (II)
● Colección clasificada de directorios bajo /usr/ports/
● Sólo se compone de un esqueleto que indica cómo descargarse, compilar e instalar el software
● Basado en Makefiles (ouch!)
Ejemplo ls /usr/portsCHANGES Tools/ dns/ mbone/ sysutils/CONTRIBUTING.md UIDs editors/ misc/ textproc/COPYRIGHT UPDATING emulators/ multimedia/ ukrainian/GIDs accessibility/ finance/ net/ vietnamese/INDEX-10 arabic/ french/ net-im/ www/INDEX-10.db archivers/ ftp/ net-mgmt/ x11/INDEX-6 astro/ games/ net-p2p/ x11-clocks/INDEX-7 audio/ german/ news/ x11-drivers/INDEX-8 benchmarks/ graphics/ packages/ x11-fm/INDEX-9 biology/ hebrew/ palm/ x11-fonts/INDEX-9.db cad/ hungarian/ polish/ x11-servers/Keywords/ chinese/ irc/ ports-mgmt/ x11-themes/LEGAL comms/ japanese/ portuguese/ x11-toolkits/MOVED converters/ java/ print/ x11-wm/Makefile databases/ korean/ russian/Mk/ deskutils/ lang/ science/README devel/ mail/ security/Templates/ distfiles/ math/ shells/
¿Cómo se usa?$ cd /usr/ports/editors/libreoffice$ sudo make install
o también
portinstall libreoffice
Behind the scenes (I)1. Descargar software
2. Comprobar checksum
3. Descomprimir paquete
4. Aplicar parches
¿De qué se compone un port?
● Makefile → Donde están las reglas que guían el proceso
● distinfo → Checksum de la distribución (autogenerado)
● files/ → Directorio con parches (puede no existir)
● pkg-descr → Descripción del paquete
● pkg-plist → Ficheros que se instalarán (autogenerado)
Makefile
● Conjunto de variables● Conjunto de targets: fetch, extract, patch,
install…● Algo de lógica (if, for…)
Ha sido sencillo ¿no?
● Casuística infinita● Muchos linuxismos.● Software no pensado para ser portable● Dependencias (build, run)● Tiene que ser aceptado por algún committer.● Ciclo send-review-change.
Buenas prácticas
● Utilizar poudriere / tinderbox / redports.org● Intentar testear con todas las opciones
disponibles.● Enviar parches upstream
Referenciashttp://www.freebsd.org/doc/en/books/porters-handbook/book.html → La referenciahttp://scratching.psybermonkey.net/2009/08/freebsd-how-to-use-meta-ports-to.htmlhttp://portsmon.freebsd.org/https://www.youtube.com/watch?v=LiFq5D-zmBs