<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPBSD.net &#187; ports</title>
	<atom:link href="http://www.phpbsd.net/tag/ports/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpbsd.net</link>
	<description>Blogueando sobre PHP, BSD, SEO, AJAX, Seguridad, Rendimiento... y mucho más</description>
	<lastBuildDate>Thu, 07 Oct 2010 11:57:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Servidor de actualizaciones software en un clúster FreeBSD</title>
		<link>http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/</link>
		<comments>http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 02:16:43 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ports]]></category>
		<category><![CDATA[portupgrade]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/</guid>
		<description><![CDATA[Como culminación a la serie de post dedicados a instalaciones y  actualizaciones de software en FreeBSD voy a explicar como montar un servidor  de paquetes de software compilado en FreeBSD 6.1. Este procedimiento describe  como mantener actualizadas un grupo de máquinas con los mismos programas  instalados, como por ejemplo un clúster [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/' rel='bookmark' title='Permanent Link: Actualiza tu FreeBSD a toda pastilla con portsnap'>Actualiza tu FreeBSD a toda pastilla con portsnap</a></li><li><a href='http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/' rel='bookmark' title='Permanent Link: Mantén al día tu FreeBSD usando CVSup'>Mantén al día tu FreeBSD usando CVSup</a></li><li><a href='http://www.phpbsd.net/2007/04/26/instalacion-del-apc-alternative-php-cache-sobre-freebsd/' rel='bookmark' title='Permanent Link: Instalación del APC (Alternative PHP Cache) sobre FreeBSD'>Instalación del APC (Alternative PHP Cache) sobre FreeBSD</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Como culminación a la serie de post dedicados a instalaciones y  actualizaciones de software en FreeBSD voy a explicar como montar un servidor  de paquetes de software compilado en FreeBSD 6.1. Este procedimiento describe  como mantener actualizadas un grupo de máquinas con los mismos programas  instalados, como por ejemplo un clúster de servidores Apache con PHP.</p>
<p>A la serie de artículos acerca de cvsup, portsnap, buildworld, sólo le faltaba  uno explicando como usar portupgrade. En este post se mostrará un poco su uso,  aunque es una herramienta muy potente y con la que vas a tener que trabajar  bastante (como rpm para RedHat o apt para Debian), es  obligatorio un &#8220;man  portupgrade&#8221;.</p>
<p>El objetivo del invento es sencillo, la idea es que una máquina se encargue de  descargar el código fuente, compilarlo y generar paquetes binarios de los  programas para que las demás máquinas lo instalen directamente. De esta forma  invirtiendo el mínimo tiempo podemos trabajar controlando el código fuente  con todas las ventajas que esto conlleva (añadir opciones extra en un  Makefile del PHP o Apache, etc.), a parte de que en FreeBSD es necesario  pasar por la compilación de los ports para estar realmente a la última (en  rapidez en sacar las últimas versiones de software ganamos a la mayoría de  distros linux :)</p>
<p>Se asume que todas las máquinas que queremos mantener actualizadas son clones,  es decir, tienen el  mismo software instalado. Si tienes varios tipos de máquina una posible  solución es tener instalado todo el software en la que actúa de master,  aunque el sistema es suficientemente flexible como para tener varios  servidores de paquetes o servidores de determinados tipos de paquetes. Al  mismo tiempo si se muere el master cualquier otro clon del clúster puede  continuar  su función.</p>
<p>Es cierto que con FreeBSD para disponer de un clúster de servidores con  exactamente las  mismas versiones de ports instaladas podemos tirar por compartir /usr/local  por NFS pero con /usr/local/etc en local en cada máquina vía softlink. Con  esto sólo será necesario administrar el software en una máquina. El problema  es la dependencia que crea con el servidor de archivos (ya podemos tener un  buen failover) a parte de que el NFS tiene un límite y veremos que con unas  cuantas decenas de máquinas con el /usr/local compartido y con más  directorios compartidos (p.e. el document root del apache, caches de disco,  etc.), se empiezan a bloquear procesos por acceso a NFS&#8230;. entonces tendrás  que empezar a pensar  en un clúster de servidores de archivos. Es una opción viable y aplicada en  muchos casos pero en general es recomendable reducir al mínimo los  servicios extra entre las máquinas de un clúster.. ya tenemos ocupados los  recursos con su función principal (web, mail, etc.).</p>
<p><strong>Requisitos para los clones y el servidor</strong></p>
<p><strong>[1]</strong> Instalar portupgrade</p>
<p>Podemos instalarlo de binario:</p>
<p><code># pkg_add -r portupgrade</code></p>
<p>o compilando:</p>
<p><code># cd /usr/ports/sysutils/portupgrade<br />
# make install clean</code></p>
<p>Es recomendable conseguir instalar la misma versión del portupgrade tanto en  el servidor como en los clones. No es mala idea tirar del binario al  principio para ganar tiempo ya que igualmente si pretendemos estar al día de  versiones lo acabaremos compilando no muy tarde (es un paquete que se  actualiza con bastante frecuencia).</p>
<p><strong>[2]</strong> Preparar el entorno</p>
<p>Fijar las siguientes variables de entorno en tu .bash_profile (asumiendo  trabajas con bash):</p>
<p><code>PACKAGES=/var/portupgrade/packages; export PACKAGES<br />
PKG_PATH=/var/portupgrade/packages/All; export PKG_PATH<br />
PKG_TMPDIR=/var/portupgrade/temp; export PKG_TMPDIR<br />
PKG_FETCH=/usr/bin/false ; export PKG_FETCH</code></p>
<p><strong>Requisitos sólo para el servidor</strong></p>
<p><strong>[1]</strong> Crear el directorio para los paquetes</p>
<p>Crear un directorio con suficiente espacio para los paquetes, backups, y  archivos temporales. Dependiendo de la cantidad de  paquetes pueden ser centenares de megas.</p>
<p><code># mkdir -p /var/portupgrade/packages /var/portupgrade/temp</code></p>
<p><strong>Servidor de paquetes</strong></p>
<p><strong>[1]</strong> Iniciar el árbol de ports</p>
<p>Si no lo tienes ya seguir el post <a title="Actualiza tu FreeBSD a toda pastilla con portsnap" href="http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/">Actualiza tu FreeBSD a toda pastilla con portsnap</a> para tener /usr/ports bajo  control y al día con portsnap</p>
<p><strong>[2]</strong> Instalación de software</p>
<p>Para instalar ports y que portupgrade nos genere el binario en el directorio anteriormente creado:</p>
<p><code># portinstal -p [port]</code></p>
<p><strong>[3]</strong> Actualización de todo lo instalado</p>
<p>Para actualizar todos los ports instalados generando el paquete binario y  guardando backup.</p>
<p>- Actualizamos el árbol de ports con portsnap:</p>
<p><code># portsnap fetch update</code></p>
<p>- Solucionamos posibles problemas con la BD de paquetes instalados antes de  empezar (opcional pero recomendado):</p>
<p><code># pkgdb -F</code></p>
<p>- Descargamos todo lo que vamos a necesitar para no interrumpir el proceso de  actualización por un fallo de red (opcional pero recomendado):</p>
<p><code># portupgrade -aRF</code></p>
<p>- Actualizamos todo generando paquetes binarios y guardando backup de las  versiones actualmente instaladas:</p>
<p><code># portupgrade -abRp</code></p>
<p><strong>[4]</strong> Distribución de software</p>
<p>Ahora sólo falta disponer de los directorios /usr/ports y /var/portupgrade en  los clones. Para conseguir esto existen varias alternativas y no es  objetivo de este post su detalle, pero básicamente tenemos dos métodos:</p>
<ul>
<li>copiamos el contenido a los clones con algo como rsync o cualquier  otra utilidad.</li>
<li>compartimos los directorios, por ejemplo con NFS.</li>
</ul>
<p>Compartir el directorio es lo más cómodo y recomendado, lo ideal es contar con  un sistema redundante (algo como <a target="_blank" title="DRBD" href="http://www.drbd.org/">DRBD</a> p.e.) aunque si perdemos  estos directorios o al propio servidor que actúa como master cualquiera de las  máquinas puede pasar a ser master, sólo tiene que iniciar el árbol de ports  como se ha descrito anteriormente y crear los directorios en /var/portupgrade.</p>
<p><strong>Clones</strong></p>
<p>A continuación describo como instalar software en los clones. Es recomendable  no instalar y/o actualizar software en todas las máquinas a la vez, primero  deberiamos probar el proceso en un sólo clon o idealmente en una máquina  dedicada a test. En ocasiones desgraciadamente existen bugs y la  instalación del port desde el código fuente no tiene el mismo resultado que  la desde el paquete binario.</p>
<p><strong>[1]</strong> Instalación de software</p>
<p>Para instalar ports y que portupgrade utilice el binario generado por el  master:</p>
<p><code># portinstal -PP [port]</code></p>
<p><strong>[2]</strong> Actualización de todo lo instalado</p>
<p>Para actualizar todo lo instalado en uno de los clones:</p>
<p><code># portupgrade -aPPR</code></p>
<p>El procedimiento aquí descrito ha sido probado con éxito en varias  instalaciones realizadas por el autor.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/' rel='bookmark' title='Permanent Link: Actualiza tu FreeBSD a toda pastilla con portsnap'>Actualiza tu FreeBSD a toda pastilla con portsnap</a></li><li><a href='http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/' rel='bookmark' title='Permanent Link: Mantén al día tu FreeBSD usando CVSup'>Mantén al día tu FreeBSD usando CVSup</a></li><li><a href='http://www.phpbsd.net/2007/04/26/instalacion-del-apc-alternative-php-cache-sobre-freebsd/' rel='bookmark' title='Permanent Link: Instalación del APC (Alternative PHP Cache) sobre FreeBSD'>Instalación del APC (Alternative PHP Cache) sobre FreeBSD</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualiza tu FreeBSD a toda pastilla con portsnap</title>
		<link>http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/</link>
		<comments>http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/#comments</comments>
		<pubDate>Tue, 14 Nov 2006 17:43:25 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ports]]></category>
		<category><![CDATA[portsnap]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/</guid>
		<description><![CDATA[Como prometía en el post Mantén al día tu FreeBSD usando CVSup voy a explicar como usar portsnap para mantener actualizado el árbol de ports de FreeBSD.
Es necesario mantener al día el árbol de ports para actualizar el software instalado que no pertenece al sistema base. Una utilidad imprescindible para manejar las actualizaciones es portupgrade, [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/' rel='bookmark' title='Permanent Link: Mantén al día tu FreeBSD usando CVSup'>Mantén al día tu FreeBSD usando CVSup</a></li><li><a href='http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/' rel='bookmark' title='Permanent Link: Servidor de actualizaciones software en un clúster FreeBSD'>Servidor de actualizaciones software en un clúster FreeBSD</a></li><li><a href='http://www.phpbsd.net/2006/10/10/compilacion-de-todo-un-freebsd-kernel-y-world/' rel='bookmark' title='Permanent Link: Compilación de todo un FreeBSD (kernel y world)'>Compilación de todo un FreeBSD (kernel y world)</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Como prometía en el post <a title="Mantén al día tu FreeBSD usando CVSup" href="http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/">Mantén al día tu FreeBSD usando CVSup</a> voy a explicar como usar portsnap para mantener actualizado el árbol de ports de FreeBSD.</p>
<p>Es necesario mantener al día el árbol de ports para actualizar el software instalado que no pertenece al sistema base. Una utilidad imprescindible para manejar las actualizaciones es portupgrade, usando portsnap con portupgrade puedes mantener tu sistema actualizado a la última cómodamente.</p>
<p>Portsnap es una utilidad mucho más rápida que el clásico cvsup ya que trabaja con snapshots comprimidos con el añadido que cuando te actualizas sólo se baja las diferencias.</p>
<p>Actualmente portsnap ya viene instalado con la base de la actual release 6.1. La configuración por defecto es apropiada para la mayoría de casos, lo único que hemos de hacer es lo siguiente:</p>
<p><strong>[1]</strong> (opcional) Reiniciar el árbol de ports.</p>
<p>Es buena idea borrar todo el contenido del directorio &#8220;/usr/ports&#8221; y empezar desde cero con portsnap (igualmente es necesario bajarlo todo de nuevo).</p>
<p><code># rm -rf /usr/ports<br />
# mkdir /usr/ports</code></p>
<p><strong>[2]</strong> Descargar e instalar el árbol de ports</p>
<p><code># portsnap fetch<br />
# portsnap extract</code></p>
<p><strong>[3]</strong> Listos</p>
<p>Ya está todo listo. Ahora cada vez que quieras bajarte las últimas actualizaciones sólo has de teclear:</p>
<p><code># portsnap fetch update</code></p>
<p>También puedes programar un cron aunque es recomendable ejecutarlo manualmente. Para los ya iniciados con portupgrade puedes usar el siguiente comando en un cron:</p>
<p><code>portsnap -I cron update; portversion -v</code></p>
<p>Para saber si existen actualizaciones del software instalado.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/' rel='bookmark' title='Permanent Link: Mantén al día tu FreeBSD usando CVSup'>Mantén al día tu FreeBSD usando CVSup</a></li><li><a href='http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/' rel='bookmark' title='Permanent Link: Servidor de actualizaciones software en un clúster FreeBSD'>Servidor de actualizaciones software en un clúster FreeBSD</a></li><li><a href='http://www.phpbsd.net/2006/10/10/compilacion-de-todo-un-freebsd-kernel-y-world/' rel='bookmark' title='Permanent Link: Compilación de todo un FreeBSD (kernel y world)'>Compilación de todo un FreeBSD (kernel y world)</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mantén al día tu FreeBSD usando CVSup</title>
		<link>http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/</link>
		<comments>http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/#comments</comments>
		<pubDate>Fri, 20 Oct 2006 23:26:33 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[cvsup]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ports]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/</guid>
		<description><![CDATA[Este proceso describe como descargar o actualizar todo el código fuente de la release de FreeBSD que tienes instalada y de todo el árbol de ports al completo. Si quieres bajarte una release distinta de la instalada o seleccionar exactamente que quieres descargar puedes consultar el handbook para ver el detalle de las distintas colecciones [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/' rel='bookmark' title='Permanent Link: Actualiza tu FreeBSD a toda pastilla con portsnap'>Actualiza tu FreeBSD a toda pastilla con portsnap</a></li><li><a href='http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/' rel='bookmark' title='Permanent Link: Servidor de actualizaciones software en un clúster FreeBSD'>Servidor de actualizaciones software en un clúster FreeBSD</a></li><li><a href='http://www.phpbsd.net/2007/01/16/nueva-release-de-la-serie-6x-del-freebsd/' rel='bookmark' title='Permanent Link: Nueva release de la serie 6.x del FreeBSD'>Nueva release de la serie 6.x del FreeBSD</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Este proceso describe como descargar o actualizar todo el código fuente de la release de FreeBSD que tienes instalada y de todo el árbol de ports al completo. Si quieres bajarte una release distinta de la instalada o seleccionar exactamente que quieres descargar puedes consultar el <a target="_blank" title="FreeBSD Handbook: Using CVSup" href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">handbook</a> para ver el detalle de las distintas colecciones de archivos existentes.</p>
<p><strong>[1]</strong> Instalar CVSup</p>
<p>Para instalar cvsup podemos usar la versión binaria del paquete o tirar por la compilación. En este caso es recomendable usar la versión binaria ya que la compilación nos llevará mucho tiempo y disco.</p>
<p>Para la versión binaria:</p>
<p><code># pkg_add -r cvsup-without-gui</code></p>
<p>Para la versión compilada:</p>
<p><code># cd /usr/ports/net/cvsup-without-gui/<br />
# make install clean</code></p>
<p><strong>[2]</strong> Crear los archivos de configuración</p>
<p>Primero copiamos las configuraciones de ejemplo:</p>
<p><code># cd /usr/share/examples/cvsup/<br />
# grep -v "^#" standard-supfile > /etc/standard-supfile<br />
# grep -v "^#" ports-supfile > /etc/ports-supfile</code></p>
<p>Editamos los nuevos archivos del direcorio /etc para seleccionar el servidor cvsup. Si estás en España en ambos puedes poner:</p>
<p><code>*default host=cvsup.es.FreeBSD.org</code></p>
<p><strong>[3]</strong> Ejecutamos CVSup</p>
<p>Ahora sólo falta descargar todo el source. Esto es un proceso lento dependiendo de tu velocidad de conexión a la red:</p>
<p><code># cvsup -g -L 2 /etc/standard-supfile<br />
# cvsup -g -L 2 /etc/ports-supfile</code></p>
<p><strong>[4]</strong> Listos.</p>
<p>Para mantenerse actualizado sólo es necesario ejecutar los comandos citados en el tercer paso. Podemos programar un cron semanal para este fin.</p>
<p>Una utilidad alternativa y muy potente para descargar el árbol de ports es &#8220;portsnap&#8221;. En algún siguiente post explicaré como usarla.</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2006/11/14/actualiza-tu-freebsd-a-toda-pastilla-con-portsnap/' rel='bookmark' title='Permanent Link: Actualiza tu FreeBSD a toda pastilla con portsnap'>Actualiza tu FreeBSD a toda pastilla con portsnap</a></li><li><a href='http://www.phpbsd.net/2006/11/26/servidor-de-actualizaciones-software-en-un-cluster-freebsd/' rel='bookmark' title='Permanent Link: Servidor de actualizaciones software en un clúster FreeBSD'>Servidor de actualizaciones software en un clúster FreeBSD</a></li><li><a href='http://www.phpbsd.net/2007/01/16/nueva-release-de-la-serie-6x-del-freebsd/' rel='bookmark' title='Permanent Link: Nueva release de la serie 6.x del FreeBSD'>Nueva release de la serie 6.x del FreeBSD</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2006/10/21/manten-al-dia-tu-freebsd-usando-cvsup/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

