Los Ports de FreeBSD:
La manera mas sencilla de tener
un UNIX actualizado.
Conceptos de los Ports de FreeBSD
- 1 Introducción
+ 1.1 Kernel y sistema base
+ 1.2 Aplicaciones de terceros
+ 1.3 Distribución binaria versus fuentes
- 1.4 Paquetes usados por otros sistemas
+ 1.4.1 .MSI y .EXE
+ 1.4.2 .RPM, .DEB, .TBZ
+ 1.4.3 Fuentes - TAR.GZ
Matías Colli - 2008 2
Introducción
Kernel y sistema base
Sistemas operativos de tipo UNIX:
Linux: No es UNIX, sino un clon de UNIX.
Depende del sistema de paquetes de GNU (del
acrónimo GNU is Not Unix) creado por Richard
Stallman. Linux es solo núcleo desarrollado en 1991 por
Linus Torvalds.
Por eso, el sistema en realidad se denomina GNU/Linux.
BSD: Es un UNIX propiamente dicho, deriva del UNIX
original de AT&T. Tiene su propio sistema de paquetes.
A diferencia de GNU/Linux, las herramientas del sistema
y el núcleo están integrados en un mismo sistema.
Creado originalmente en 1977, anterior a Linux, por un
problema legal con AT&T no pudo salir sino a la luz sino
hasta 1993.
Matías Colli - 2008 3
El propio Linus Torvald admitió:
“Si hubiera sabido de la existencia de los sistemas
BSD, que ya cumplían lo que hacía Linux, no me
habría molestado en modificar Minix...no hubiese
escrito Linux.”
Ventajas de BSD:
+ estable
+ robusto
+ integrado
+ seguro
+ portable
+ paquetes
Documentación centralizada
(Handbook).
Matías Colli - 2008 4
Que es BSD?
BSD es un acrónimo de Berkeley Software Distribution, lo cual
representa a una familia de sistemas operativos tipo UNIX derivado del
UNIX original AT&T. Funciona en plataformas x86 (i386), aunque
también es compatible con AMD y procesadores de 64 bits y con otras
arquitecturas como SPARC, ARM, etcétera.
Quienes usan BSD?
En la NASA, y grandes empresas internacionales como Yahoo! Sony,
Nokia, etc. Es usado por hackers y sysadmins para configurar sus
servidores.
Por qué BSD?
Posee tanto el núcleo como las herramientas del sistema
en conjunto, no por separado, a diferencia de GNU/Linux,
en el cual por un lado el Kernel es desarrollado por Linus
Torvalds y su equipo de desarrollo, y por otro las
herramientas operativas GNU. Además, si fuese
necesario, permite la compatibilidad con aplicaciones
GNU/Linux. Desde BSD pueden verse los sistemas de
archivos de Microsoft como FAT, FAT32 y NTFS, y de
Linux: Ext2, Ext3, ReiserFS, etcétera.
Matías Colli - 2008 5
FreeBSD proporciona estabilidad, son los servidores que más tiempo de
uptime tienen y es realmente sencillo de mantener mediante el árbol de
ports, una sencilla herramienta para mantenerse al día con todos los
programas requeridos tanto por los usuarios (juegos, paquetes de oficina,
internet, etcétera), desarrolladores (herramientas de programación, lenguajes,
etcétera) y administradores de sistemas o hackers (herramientas de red,
internet, servicios de correo, web, dns, etcétera). Es superior en todo sentido a
Windows y, en muchos aspectos, a GNU/Linux.
Y la razón principal es que a diferencia de GNU/Linux que es un clon, BSD es
UNIX de verdad y libre, mantenido por una prestigiosa comunidad de
desarrolladores, administradores y hackers.
Matías Colli - 2008 6
Sabores de BSD?
Existen tres ramas o sabores principales de desarrollo de BSD: FreeBSD,
OpenBSD y NetBSD. Ahora conoceremos en detalle sus características y
diferencias.
FreeBSD: es el más popular por ser el primer BSD oficial. FreeBSD es el
sistema operativo elegido por los hackers, desarrolladores y universitarios. Es
ideal para aquellos a quienes les gusta la estabilidad, la sencillez y la
seguridad. Su sitio web oficial es www.freebsd.org.
Matías Colli - 2008 7
NetBSD: proyecto cuyo objetivo principal es lograr
instalarse en todas las arquitecturas posibles.
Actualmente soporta hasta 52 arquitecturas distintas.
Una frase común para hablar de este sistema fue
“NetBSD puede funcionar en cualquier aparato y
máquina excepto, quizás, en la tostadora de la
cocina”. Esta frase fue desmentida en 2005 gracias a
la empresa Technology Systems, que instaló NetBSD
en una tostadora que tenía incorporada un sistema
embebido con una EVB (Evaluation Board) modelo
TS-7200 y con un procesador ARM9, arquitectura que
permite tener casi las mismas funcionalidades que
una PC pero en un espacio reducido, y que es
utilizada principalmente en routers y firewalls. NetBSD
es el sistema operativo elegido por empresas de gran
envergadura, como la NASA, que disponen de
arquitecturas poco comunes. Su sitio web oficial es
www.netbsd.org.
Matías Colli - 2008 8
OpenBSD: es el sistema operativo más seguro por excelencia. Desde la página
oficial del proyecto se puede ver su hazaña: solo dos agujeros de seguridad en la
instalación por defecto en más 10 años. Y realmente es así, por lo que es el
sistema operativo elegido por las compañías cuyo principal objetivo es la seguridad
y estabilidad. OpenBSD es el BSD elegido por hackers, puristas y por empresas
que consideran la seguridad como un punto crítico. Es el arte de la seguridad, todo
corre enjaulado, cada proceso está asegurado y casi no requiere mantenimiento.
Su sitio web oficial es www.openbsd.org.
Matías Colli - 2008 9
Aplicaciones de terceros
Actualmente, FreeBSD cuenta con más de 44.000 paquetes opcionales
en los ports. Es imposible dar una lista exhaustiva de todas estas
aplicaciones pero suelen cubrir muchas de las necesidades de los
usuarios: productividad, editores, computación científica, ingeniería,
manejo de redes, servidores, audio y multimedia, desarrollo, juegos, etc.
Para una información completa, le recomiendo consultar la página web
de Freshports, que se dedica a la publicación integral de los ports.
En su mayoría, estas aplicaciones vienen en
forma de código fuente adaptado para
FreeBSD, a menudo bajo licencia GNU. Otras
aplicaciones propietarias se distribuyen como
ejecutables compilados para Linux y se
ejecutan vía una capa de emulación, como el
Acrobat Reader, por ejemplo.
Matías Colli - 2008 10
Paquete binario vs fuente
Binario
Ventajas:
Es más compacto y se instala rápidamente.
Sabemos de antemano las dependencias.
Desventajas:
Fue compilado con un conjunto de opciones predefinidas, que no corresponden
siempre a las necesidades del usuario.
En el ambiente FreeBSD, la instalación de
binarios se llama packages.
Fuente
Ventajas: Flexibilidad, se puede escoger las opciones.
Más actual, el paquete fuente siempre es más actual que el binario.
Desventajas:
La compilación del código fuente requiere más espacio en disco.
Las dependencias pueden cambiar según los parámetros de compilación.
Algunas aplicaciones tarda demasiado (ej: OpenOffice )
Matías Colli - 2008 11
Paquetes usados por otros sistemas operativos
Los .MSI y .EXE
Los archivos con extensión .msi y .exe son los paquetes binarios de Windows.
Ejecutables. Muy cómodos para el usuario, ya que no necesita configurar nada
manualmente.
Es similar a los .bin de aplicaciones propietarias de los sistemas de tipo UNIX.
Los .RPM, .DEB, .TGZ
Un modelo más elemental es el .tgz (tar-gzip), que es un respaldo de la
distribución que se restaura en la máquina de destino. Tiene la desventaja que la
configuración se debe hacer a mano. Tampoco dejan constancia de la
instalación, lo que complica la mantención.
Los .rpm y .deb del mundo GNU/Linux empiezan por copiar los archivos en su
destino y actualizan una base de datos de aplicaciones instaladas. Suelen
contener también un script de configuración de parámetros si necesario.
Matías Colli - 2008 12
Ports y dependencias
Una dependencia es un requerimiento del sistema. Un paquete que requiere de
otro para su instalación y/o funcionamiento.
Los ports son un conjuntos de paquetes (programas) contenidos en un directorio.
Como funciona
El sistema de ports efectúa una análisis exhaustivo
de los requerimientos, que se llaman dependencias.
En muchos casos, la compilación de una aplicación
provoca la compilación de varias dependencias, si
no están presentes.
Un ejemplo práctico:
OpenOffice instala primero el programa Java, luego una versión particular del
compilador GCC, Phyton y algunos otros paquetes de menor tamaño.
Matías Colli - 2008 13
Los Packages
Binarios: FreeBSD cuenta con un repositorio de archivos
de instalación binarios.
Descargar el paquete, desde CD o Intenet (por ej: Freshports.org).
Por defecto, pkg_add instala solamente el paquete indicado, lo que
no asegura la funcionalidad.
Por lo tanto, se recomienda usar la opción -r que instala también las
dependencias (si tenemos Internet las descarga desde allí).
Fuentes: Las herramientas de manejo de packages son
extensiones del sistema de base y se deben compilar. Lo básico se
instala con:
cd /usr/ports/sysutils/portupgrade
make install clean
Matías Colli - 2008 14
Construyendo un repositorio local
El comando pkg_fetch -R, descarga los paquetes pedidos con las
dependencias aún no instaladas.
Si el repositorio se debe usar en red para varias máquinas sin tener la
certeza que todas tienen siempre la misma lista de paquetes, se debe
invocar también con la opción -f para asegurar que el repositorio este
completo. Por ejemplo:
pkg_fetch -R -f apache
En resumen...
Binario utiliza siempre el comando: pkg_add <package>
Sin parametros busca el archivo localmente.
-r : Descarga desde lared.
-f : Fuerza.
-O: Omite verificación de seguridad
-y: Seleciona yes para cada pregunta
Matías Colli - 2008 15
Ejemplos prácticos
# pkg_add -r gnome
El sistema de escritorio Gnome instalado en 3 minutos.
# pkg_add -r apache
Rapida instalación de apache.
Tambien se puede cambiar el destino utilizando otro
mirror, propio o de terceros:
export
PKG_PATH=ftp://your.ftp.mirror/pub/OpenBSD/4.3/pack
ages/`machine -a`/
pkg_add -v <pkg>
Matías Colli - 2008 16
Ports:
Desde el directorio /usr/ports como root, por primera vez:
[/usr/ports ]# make fetchindex
Genera por primera vez la base de ports, si ya existe la actualiza
desde Internet.
Busquedas:
Siempre desde /usr/ports
make search name=<programa>
make search key=<palabra_clave>
Matías Colli - 2008 17
Ejemplos:
[matias@freebsd /usr/ports]$ make search name=chess | grep -v B-
deps: | grep -v R-deps: |more
Port: brutalchess-0.5.2_3
Path: /usr/ports/games/brutalchess
Info: Nice looking OpenGL chess game
Maint:
[email protected]WWW: http://brutalchess.sourceforge.net/
Port: cchess-1.4
Path: /usr/ports/games/cchess
Info: Very simple Chinese chess program
Maint: [email protected]
WWW: http://www.nchess.com/
Port: emacs-chess-2.0b5_2
Path: /usr/ports/games/emacs-chess
Info: Play chess with emacs
Maint: [email protected]
WWW: http://emacs-chess.sourceforge.net/
--More--(byte 619)
Matías Colli - 2008 18
Puedo instalar el programa de 2 maneras:
Con un simple make
[matias@freebsd /usr/ports]$ su -
Password:
freebsd# cd /usr/ports
freebsd# cd games/brutalchess
freebsd# make install clean
O si hemos descargado portinstall:
#portinstall /games/brutalchess
Matías Colli - 2008 19
Primer caso (make install):
freebsd# cd games/brutalchess
freebsd# make install clean
> brutalchess-alpha-0.5.2-src.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://nchc.dl.sourceforge.net/sourceforge/brutalchess/.
brutalchess-alpha-0.5.2-src.tar.gz 64% of 4400 kB 85 kBps 00m18s
Comienza a descargar el paquetes desde Internet
Segundo caso (portinstall):
freebsd# portinstall games/brutalchess
freebsd# portinstall games/brutalchess
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 1724 packages found
(-0 +0) done]
Matías Colli - 2008 20
Matías Colli - 2008 21
freebsd# portinstall vim
---> Found 2 ports matching 'vim':
editors/vim5
editors/vim
Install 'editors/vim5'? [yes]
[Gathering depends for editors/vim5 done]
Install 'editors/vim'? [yes]
[Gathering depends for editors/vim .. done]
---> Installing 'vim-5.8.8_2' from a port (editors/vim5)
---> Building '/usr/ports/editors/vim5'
===> Cleaning for vim-5.8.8_2
=> vim-5.8-src.tar.gz doesn't seem to exist in /usr/ports/distfiles/vim.
=> Attempting to fetch from http://ftp.vim.org/pub/vim/unix/.
vim-5.8-src.tar.gz 100% of 1086 kB 67 kBps 00m00s
=> vim-5.8-rt.tar.gz doesn't seem to exist in /usr/ports/distfiles/vim.
=> Attempting to fetch from http://ftp.vim.org/pub/vim/unix/.
vim-5.8-rt.tar.gz 68% of 1237 kB 55 kBps 00m07s
Matías Colli - 2008 22
[matias@freebsd /usr/ports]$ make search key="DVD Player" | grep
-v B-deps: | grep -v R-deps:
Port: goggles-0.8.0_4
Path: /usr/ports/multimedia/goggles
Info:A FOX frontend to the Ogle DVD player
Maint:
[email protected]WWW: http://www.fifthplanet.net/goggles.html
Port: libdvdread-0.9.7_3
Path: /usr/ports/multimedia/libdvdread
Info:This is needed by ogle, which is a DVD player that supports
DVD menus
Maint: [email protected]
WWW: http://www.dtek.chalmers.se/groups/dvd/
Port: ogle-0.9.2_9
Path: /usr/ports/multimedia/ogle
Info:Open DVD player that supports DVD menus
Maint: [email protected]
WWW: http://www.dtek.chalmers.se/~dvd/
Port: okle-0.4_6
Path: /usr/ports/multimedia/okle
Info:A KDE frontend to the Ogle DVD player
Maint: [email protected]
WWW: http://okle.sourceforge.net/
Matías Colli - 2008 23
Ventajas de Portsinstall
El sistema de ports ofrece también una herramienta
de instalación de paquetes llamada portinstall.
Empieza por revisar en forma recursiva todos los
requerimientos de la instalación pedida.
La demora en partir depende altamente de los
paquetes ya instalados pero compila solamente lo
que se necesita.
Actualización
La actualización de aplicaciones se hace con portupgrade. Se requiere después
de actualizar los ports y actúa solamente sobre las aplicaciones que cambiaron.
Matías Colli - 2008 24
Ejemplo práctico: Actualizar Gnome y aplicaciones.
# portupgrade -fvyO '*gnome*'
Actualiza todo lo relacionado con gnome.
-f: Force. Para forzar
-v: Verbose. Para visualizar todo.
-y: Yes to all, decir si a todo.
-O: Omite check. Omitir verificacion de seguridad
Matías Colli - 2008 25
Para conocer las dependencias y determinar la jerarquía de los
cambios necesarios en una actualización, o los conflictos en caso
de dependencias compartidas, el sistema ofrece también la
visualización del árbol instalado:
# pkg_tree aalib
aalib-1.4.r5_2
|\__ expat-2.0.0_1
|\__ pkgconfig-0.20
|\__ libdrm-2.0_1
|\__ freetype2-2.1.10_3
|\__ fontconfig-2.3.2_3,1
\__ xorg-libraries-6.9.0
La herramienta pkg_which que indica las dependencias.
[matias@freebsd /usr/ports]$ sudo pkg_which pkg_fetch
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 1726 packages
found (-0 +1) . done]
portupgrade-2.4.6,2
Matías Colli - 2008 26
Protegiendo el árbol de ports
El proceso se encarga de bajar el código fuente, compilarlo, instalar
los ejecutables y limpiar el árbol - remover el subdirectorio work que
se creó para la compilación y que suelen ocupar mucho espacio - por
ejempo, OpenOffice ocupa hasta 6,5GB antes de instalación. Por
defecto, los ports se compilan en la partición /usr. Según su tamaño,
su tasa de utilización y el tamaño del paquete a compilar, uno puede
llegar a llenar esta partición y causar efectos colaterales. Para evitar
problemas de este tipo, se puede mover el árbol a otra partición y
crear un enlace simbólico con:
# ln -s /<OtroDisco>/usr/ports /usr/ports
o definir la variable de ambiente PORTSDIR para definir su nuevo
lugar.
Matías Colli - 2008 27
Los Makefile suelen soportar la opción make config que define las
opciones del paquete. Así, se puede activar la optimización del
compilador, seleccionar el tipo de SSH a integrar, etc. Esta opción ajusta
automáticamente las dependencias, en el caso de que se requiera.
La configuración por defecto se guarda en /etc/make.conf
[matias@freebsd /usr/ports]$ cat /etc/make.conf
USE_QT=yes
BATCH=yes
WITH_HAL=yes
WITH_MTP=yes
WITHOUT_GNOME=no
WITHOUT_X11=yes
DISABLE_VULNERABILITIES=yes
FORCE_PKG_REGISTER=yes
X11BASE=/usr/local
PORTSDIR?=/usr/ports
.if ${.CURDIR} == ${PORTSDIR}/sysutils/hal
WITH_FIXED_MOUNTPOINTS=YES
.endif
# added by use.perl 2008-07-09 18:53:26
PERL_VER=5.8.8
PERL_VERSION=5.8.8
Matías Colli - 2008 28
Análisis de los ports ya instalados
Después de su compilación, los ports se
instalan como package y se pueden listar de la
misma manera con:
ls /var/db/pkg
Una alternativa, que usa las heramientas
específicas, es portsversion, que además
determina qué paquetes necesitan
actualización. Eso aplica sobre todo a los
sistemas que acaban de actualizar /usr/ports
con el último snapshot o con un cambio de
release. Para ver los cambios disponibles, se
pueden combinar comandos como:
portsversion | grep -v =
que extrae las líneas que reportan versiones no
idénticas.
Matías Colli - 2008 29
Los comandos se pueden combinar libremente para obtener
los efectos deseados. Por ejemplo, el número de ports a
actualizar se consigue con:
portsversion | grep -v = | wc -l
Otro ejemplo que muestra las diferencias de versión:
portsversion -v | grep -v =
o que se restringe a los ports relacionados con Gnome:
portsversion -v \*gnome\* | grep -v =
El límite de este concepto es la imaginación del usuario:
portversion -r gnome\* | grep \< | awk '{ print "Actualizar
" $1; }' | mail
[email protected] Matías Colli - 2008 30
Consejos clave:
Siempre es recomendable mantener
una copia del árbol original de la
release para asegurarse que uno
siempre puede volver al estándar
probado.
No actualizar a menos que sea
necesario (y, en muchos casos, no lo
es).
Matías Colli - 2008 31
Cómo y cuando actualizar
Básicamente, hay 2 métodos generales:
1) Descargar el árbol completo ports.tgz y reemplazar el directorio actual.
2) Crear un repositorio CVS local.
La primera opción es rápida y predecible: se puede estimar el tiempo de
descarga del archivo y de instalación. La opción CVS suele ocupar más
espacio en el disco y es relativamente más lenta ya que los archivos se editan
en tiempo real.
La pregunta "cuándo" es más subjetiva. Si se descubrió
y corrigió un bug de seguridad en un servidor
conectado a Internet, es seguramente útil instalar la
actualización. Si hay una mejora sensible o nuevas
funcionalidades (por ejemplo, un compilador soporta ahora un nuevo
procesador que ocupo en mi trabajo actual), también tiene sentido. Si KDE
migró de 3.5.2 a 3.5.3, vale mejor evaluar si hubo cualquier cambio que
justifique la actualización (la respuesta es probablemente no en la mayoría de
los casos y es más razonable esperar que la 3.5.3 sea integrada a
-RELEASE).
Matías Colli - 2008 32
Versiones (RELEASE Y CURRENT)
Versión estable con las entregas oficiales
En un sistema con la etiqueta CVS "-RELEASE" significa
que estas versiones pasaron por un ciclo intensivo de QA
y todas las aplicaciones del árbol de ports fueron
probadas.
Versión -CURRENT
Esta versión es para los que aman vivir en peligro. Suele
ser relativamente estable e incluye las correcciones para
las vulnerabilidades detectadas pero, para ser
consecuente, requiere una mantención permanente.
Matías Colli - 2008 33
Reparando inconsistencias
A veces puede ser que la base de datos de los ports se
corrompa. Por ejemplo: si ejecutamos varias instancias de
portinstall o instalamos varios package al mismo tiempo.
O puede ser que haya nuevos paquetes instalados y que
estos hayan generado errores de dependecias. Existen 2
versiones de un mismo paquete que fue instalado para
satisfacer dependencias de paquetos distintos.
# pkgdb -Fu
-u: Creará la base de datos del arbol de ports, en caso de
existir, la misma se actualizará.
-F: Corrección interactiva. Nos preguntará antes de
efectuar una corrección.
Matías Colli - 2008 34
Un ejemplo práctico:
# portupgrade ruby-1.8.5_4,1
[Updating the pkgdb (format:bdb_btree) in /var/db/pkg ...
/var/db/pkg/pkgdb.db: unexpected
file type or format -- Invalid argument; rebuild needed] [Rebuilding
the pkgdb
(format:bdb_btree) in /var/db/pkg ... [Updating the pkgdb
(format:bdb_btree) in /var/db/pkg ... /var/db/pkg/pkgdb.db:
unexpected file type or format -- Invalid argument; rebuild needed]
[Rebuilding the pkgdb (format:bdb_btree) in /var/db/pkg ... /var/db/
pkg/pkgdb.db: unexpected file type or format -- Invalid
argument: Cannot update the pkgdb!]: Cannot update the pkgdb!]
Command failed [exit code 1]: /usr/local/sbin/pkgdb -aFOQ
Como solucionamos el problema?
# mv /var/db/pkg/pkgdb.db /var/db/pkg/pkgdb.db.org
# pkgdb -Fu
Movemos la base actual y recrearemos la base y solucionaremos
el problema.
Matías Colli - 2008 35
Podemos actualizar el sistema base tambien?
Si, felizmente la últimas versiones de FreeBSD tiene un programa llamado
freebsd-update que actualiza los binarios del sistema.
Esta herramienta está disponible desde el árbol de Ports:
[matias@freebsd /usr/ports]$ make search name=freebsd-update
Port: freebsd-update-1.6_2
Path: /usr/ports/security/freebsd-update
Info:Fetches and installs binary updates to FreeBSD
Maint:
[email protected] B-deps:
R-deps:
WWW: http://www.daemonology.net/freebsd-update/
Como se instala freebsd-update?
# portinstall security/freebsd-update
Matías Colli - 2008 36
Como se detectan las actualizaciones?
# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching public key from update1.FreeBSD.org... done.
Fetching metadata signature from update1.FreeBSD.org...
done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 38 patches.....10....20....30.... done.
Applying patches... done.
Como se instalan las actualizaciones?
# freebsd-update install
Installing updates... done.
Matías Colli - 2008 37
Como ver los ports que necesitan
actualización?
# pkg_version -vIL=
ORBit2-2.14.3 < needs updating (index has 2.14.8)
apache-1.3.37_1 < needs updating (index has 1.3.39)
aspell-0.60.4_4 < needs updating (index has 0.60.5_2)
atk-1.12.3 < needs updating (index has 1.18.0_1)
autoconf-2.59_2 < needs updating (index has 2.59_3)
avahi-0.6.14 < needs updating (index has 0.6.21)
bitstream-vera-1.10_2 < needs updating (index has 1.10_4)
cairo-1.2.4 < needs updating (index has 1.4.10)
cdrtools-2.01_5 < needs updating (index has 2.01_6)
cups-base-1.2.2 < needs updating (index has 1.2.12)
dbus-0.93_3 < needs updating (index has 1.0.2_2)
dbus-glib-0.71 < needs updating (index has 0.74)
desktop-file-utils-0.11 < needs updating (index has 0.12_1)
docbook-sk-4.1.2_3 < needs updating (index has 4.1.2_4)
docbook-xsl-1.70.1 < needs updating (index has 1.71.1_2)
dvd+rw-tools-6.1 < needs updating (index has 7.0)
esound-0.2.36_1 < needs updating (index has 0.2.38)
Matías Colli - 2008 38
Actualización de la colección de ports mediante portsnap
Instalación de portsnap
# cd /usr/ports/ports-mgmt/portsnap
# make install clean
Actualizacion mediante portsnap
# portsnap fetch extract
Looking up portsnap.FreeBSD.org mirrors... 4 mirrors found.
Fetching snapshot tag from portsnap3.FreeBSD.org... done.
Latest snapshot on server matches what we already have.
No updates needed.
Matías Colli - 2008 39
Portupgrade como herramienta gestora de
ports en FreeBSD.
Se compone de varios comandos que facilitan la tarea al
administrador del sistema:
* portinstall: Para la instalación de ports
* portcvsweb: Navegador por el histórico de cambios CVS
* portversion: Reemplazo de pkg_version con mejoras
* portsclean: Borra el directorio de trabajo (workdir) y viejas
librerías huérfanas...
* portsdb: Crea una base de datos indexada del árbol de
ports
* pkg_deinstall: Análogo a pkg_delete
* pkg_fetch: Descarga el código fuente de un port.
Matías Colli - 2008 40
Como desinstalar
programas?
# pkg_delete portupgrade-2.3.1,2
# pkg_delete ruby18-bdb-0.6.2
# pkg_delete ruby18-bdb1-0.2.2
o tambien con el comando pkg_deinstall si hemos
instalador Portupgrade (recomendado).
Matías Colli - 2008 41
Preguntas
????????
Matías Colli - 2008 42
Bibliografia
Guía de FreeBSD para usuarios de Linux - John Ferrell (Traducción de Gábor
Kövesdán).
Seguridad de la Información y Auditoría de Sistemas - Sergio Hernando.
UNIX System Administration Handbook (3rd Edition) - Evi Nemeth, Garth
Snyder, Scott Seebass, y Trent R. Hein. Editorial: Prentice Hall.
Conceptos de los Ports de FreeBSD – BSD Chile
Matias Colli
[email protected]
Matías Colli - 2008 43