La manera mas sencilla de tener un UNIX actualizado.

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A LA INFORMÁTICA EDUCATIVA Software de Aplicaciones
Advertisements

Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS
Internet y tecnologías web
CUPS Configuración y Uso de Paquetes de Software
Todo el Software necesario puede ser conseguido por separado. Para facilitar la puesta al punto del ambiente, nosotros utilizaremos una herramienta particular.
III - Gestión de memoria
LINUX Y MS-DOS.
Informática accesible para todo mundo.
Virtual PC.
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
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.
Iniciaremos el proceso de instalación de Ubuntu (Versión 11.04), partiendo de la base que ya se encuentra instalado en nuestro PC el sistema operativo.
Tema 1 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto
Introducción a la Programación
SERVIDOR DE CONTENIDOS
Systems Management Server 2003 Santiago Pastor Zaltor Soluciones Informáticas.
Curso Administrador Linux
INSTALACIÓN Y MANTENIMIENTO SO ADMINISTRACIÓN SO LINUX.
Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS.
DE LAS CUENTAS DE USUARIO Y OPCIONES DE CARPETA
Con este sencillo manual aprenderemos a formatear nuestro disco duro y reinstalar de nuevo el Sistema Operativo, ya sea Windows XP o cualquier otra versión.
UD 1: “Introducción a los servicios de red e Internet” Sistemas GNU/Linux. Distribuciones Luis Alfonso Sánchez Brazales.
Historia de PHP Programación en Internet II. Historia de PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa.
FHS: organización de directorios en Linux
(C) Universidad de Las Palmas de Gran Canaria
Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
Ingeniero Anyelo Quintero
Windows XP Windows XP (cuyo nombre en clave inicial fue Whistler) fue hecho público el 25 de octubre de 2001 por Microsoft. Microsoft inicialmente sacó.
INDICE ¿Qué es Linux? El núcleo de Linux Distribuciones de Linux
ANGELA MARMOLEJO CLAUDIA LUCAS EUNICE LARGO MARILUZ CANO.
Bootable USB nos permite crear desde el propio programa una unidad USBbooteable para instalar Windows en cualquiera de las versiones mencionadas anteriormente.
Instalación Linux - Ubuntu 10.10
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Servidores.
Es una herramienta que nos permite automatizar tareas de tipo rutinario de nuestro sistema. Por medio de una página de diseño tipo Web, Webmin nos permite.
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
Servidores LAMP (Linux Apache MySQL PHP) ING CARLOS EDUARDO PUENTES F. UNIVERSIDAD MANUELA BELTRAN.
MANUELA QUIROZ BURITICÁ 10 INFORMÁTICA 2 CLONACION DE HD O PARTICIÓ N.
¿ QUÉ ES FEDORA ? RESEÑA HISTORICA SITIO OFICIAL Y PATROCINADOR CARACTERISTICAS HERRAMIENTAS DE ADMINISTRACION VENTAJAS.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Cuentas de usuarios y grupos en windows 2008 server
Supongamos que un usuario desea escribir un informe e imprimirlo en una impresora conectada. Para realizar esta tarea, se precisa una aplicación de procesamiento.
COMANDO D. O. S OSCAR JAVIER GUERRERO SALAS Universidad Surcolombiana Tec. Des. Software Universidad Surcolombiana.
Sistema operativo Unix
Linux Sistema operativo.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Cristian Fonnegra Marin
Clonación de HD o partición
CMS DRUPAL HERRAMIENTAS DE DISEÑO CARLOS LLANOS V. JENNIFER QUINDE G. JUAN MACIAS B. KERLY UBE.
INTRODUCCION. Microsoft es la empresa fabricante de los distintos Sistemas o plataformas operativas conocidas como Windows los cuales nos han permitido.
¿QUE SON LAS ACTUALIZACIONES?  Las actualizaciones son adiciones al software que pueden evitar problemas o corregirlos, mejorar el funcionamiento del.
Introducción a los modelos de simulación y análisis de datos en Física de Partículas Isidro González Caballero (
INTRODUCCIÓN Para comenzar les hablaremos de lo que significa Windows server 2003, el cual es un sistema operativo de la familia Windows de la marca Microsoft.
File Transfer Protocol.
MARIANA PRECIADO VILLA TELECOMUNICACIONES 11º3
Valentina Hincapié. Christian Hincapié.. ¿QUE ES LINUX? GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel.
S.o de red. Introducción a los Sistemas Operativos de Red Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede.
SHUTTENBORG ACCESS CONOCE LOS PROGRAMAS. Cortés Gamboa Lizzeth
Luis Villalta Márquez Servicios SFTP/SCP. SFTP SSH File Transfer Protocol (también conocido como SFTP o Secure File Transfer Protocol) es un protocolo.
Naime Cecilia del Toro Alvarez
SEGURIDAD EN SERVIDORES WEB (APACHE).
Las máquinas Buscadoras (Buscadores) Las máquinas buscadoras (Search Engines) son computadoras (llamados servidores) dedicados a almacenar información.
Presentado por: Kelly Johana Gallego Soto Rosa Reyes Estrada.
Linux Victor Villena Siguiente. -1- Que es Linux Es el término empleado para referirse al sistema operativo que utiliza como base las herramientas de.
Trabajo de Informática Facultad de Ciencias de la Educación, Humanas y Tecnologías Carrera de Ciencias Sociales Nombre: Ryan Andrés Siguencia Medina Semestre.
QUÉ ES UN SERVIDOR WEB?. Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor, realizando conexiones.
MANEJO DE SISTEMAS OPERATIVOS INSTALACION DE UBUNTU.
Programación II Ing. Diego J. Arcusin 1 - Introducción a UNIX.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
La computadora: mantenimiento y seguridad Unidad 2 Taller de herramientas para la traducción Traductorado Público en idioma inglés Facultad de Lenguas.
Guía rápida de instalación de Sakai Dr. David Roldán Martínez ASIC, Universidad Politécnica de Valencia.
Transcripción de la presentación:

La manera mas sencilla de tener un UNIX actualizado. 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

Sistemas operativos de tipo UNIX: 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

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

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

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

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

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

OpenBSD: es el sistema operativo más seguro por excelencia 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

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

Paquete binario vs fuente 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. 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

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

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

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

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

El sistema de escritorio Gnome instalado en 3 minutos. 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/packages/`machine -a`/ pkg_add -v <pkg> Matías Colli - 2008

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> o make search key=<palabra_clave> Matías Colli - 2008

Path: /usr/ports/games/brutalchess 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: gustau.perez@gmail.com WWW: http://brutalchess.sourceforge.net/ Port: cchess-1.4 Path: /usr/ports/games/cchess Info: Very simple Chinese chess program Maint: ports@FreeBSD.org WWW: http://www.nchess.com/ Port: emacs-chess-2.0b5_2 Path: /usr/ports/games/emacs-chess Info: Play chess with emacs Maint: dryice@dryice.name WWW: http://emacs-chess.sourceforge.net/ --More--(byte 619)‏ Matías Colli - 2008

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

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 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 [Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 1724 packages found (-0 +0) done] Matías Colli - 2008

Matías Colli - 2008

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. vim-5.8-rt.tar.gz 68% of 1237 kB 55 kBps 00m07s Matías Colli - 2008

Path: /usr/ports/multimedia/goggles [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: multimedia@FreeBSD.org 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: rnoland@2hip.net 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 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 WWW: http://okle.sourceforge.net/ Matías Colli - 2008

Actualización 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

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

La herramienta pkg_which que indica las dependencias. 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

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

La configuración por defecto se guarda en /etc/make.conf 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

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

portsversion | grep -v = | wc -l 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 matiasbsd@gmail.com Matías Colli - 2008

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

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

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

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

Como solucionamos el problema? 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

Como se instala freebsd-update? 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: cperciva@daemonology.net B-deps: R-deps: WWW: http://www.daemonology.net/freebsd-update/ Como se instala freebsd-update? # portinstall security/freebsd-update Matías Colli - 2008

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

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

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

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

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

Preguntas ???????? Matías Colli - 2008

Bibliografia Matias Colli matiasbsd@gmail.com 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 matiasbsd@gmail.com Matías Colli - 2008