<?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>Antonio Cortés</title>
	<atom:link href="http://www.antoniocortes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antoniocortes.com</link>
	<description>Recursos y otras hierbas</description>
	<lastBuildDate>Wed, 05 May 2010 19:38:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Singleton para PHP 5.3, y parche para 5.2</title>
		<link>http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/</link>
		<comments>http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/#comments</comments>
		<pubDate>Wed, 05 May 2010 19:38:48 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=174</guid>
		<description><![CDATA[Mediante esta clase abstracta de php podremos crear nuestras clases simplemente extendiendo esta clase



abstract class Singleton &#123;


&#160;


&#160; &#160; &#160;protected function __construct&#40;&#41; &#123;


&#160; &#160; &#160;&#125;


&#160; &#160; &#160;final public static function getInstance&#40; $calledClassName = null &#41; &#123;


&#160; &#160; &#160; &#160; &#160;static $aoInstance = array&#40;&#41;;


&#160; if &#40; $calledClassName == null &#41; &#123;


&#160; &#160; &#160; &#160; &#160;$calledClassName = get_called_class&#40;&#41;;


&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Mediante esta clase abstracta de php podremos crear nuestras clases simplemente extendiendo esta clase</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">abstract <span class="kw2">class</span> Singleton <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;protected <span class="kw2">function</span> __construct<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;final <span class="kw2">public</span> <span class="kw3">static</span> <span class="kw2">function</span> getInstance<span class="br0">&#40;</span> <span class="re1">$calledClassName</span> <span class="sy0">=</span> <span class="kw2">null</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">static</span> <span class="re1">$aoInstance</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re1">$calledClassName</span> <span class="sy0">==</span> <span class="kw2">null</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re1">$calledClassName</span> <span class="sy0">=</span> get_called_class<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span> <span class="kw3">isset</span> <span class="br0">&#40;</span><span class="re1">$aoInstance</span><span class="br0">&#91;</span><span class="re1">$calledClassName</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re1">$aoInstance</span><span class="br0">&#91;</span><span class="re1">$calledClassName</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">new</span> <span class="re1">$calledClassName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="re1">$aoInstance</span><span class="br0">&#91;</span><span class="re1">$calledClassName</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;final <span class="kw2">private</span> <span class="kw2">function</span> __clone<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Ejemplo:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> DataBase <span class="kw2">extends</span> Singleton <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span><span class="sy0">&#8230;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$db</span> <span class="sy0">=</span> DataBase<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>El problema que nos encontraremos en PHP 5.2.x es que no existe la función <em>get_called_class</em> por lo que deberemos tener esa función.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">function_exists</span><span class="br0">&#40;</span><span class="st0">&#39;get_called_class&#39;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">class</span> class_tools <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">static</span> <span class="re1">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">static</span> <span class="re1">$fl</span> <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">static</span> <span class="kw2">function</span> get_called_class<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$bt</span> <span class="sy0">=</span> <span class="kw3">debug_backtrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>self<span class="sy0">::</span><span class="re1">$fl</span> <span class="sy0">==</span> <span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;file&#39;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;line&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self<span class="sy0">::</span><span class="re1">$i</span><span class="sy0">++;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self<span class="sy0">::</span><span class="re1">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self<span class="sy0">::</span><span class="re1">$fl</span> <span class="sy0">=</span> <span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;file&#39;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;line&#39;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$lines</span> <span class="sy0">=</span> <span class="kw3">file</span><span class="br0">&#40;</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;file&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">preg_match_all</span><span class="br0">&#40;</span><span class="st0">&#39;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/([a-zA-Z0-9<span class="es0">\_</span>]+)::&#39;</span><span class="sy0">.</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;function&#39;</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&#39;/&#39;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$lines</span><span class="br0">&#91;</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;line&#39;</span><span class="br0">&#93;</span><span class="nu0">-1</span><span class="br0">&#93;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$matches</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$returnValue</span> <span class="sy0">=</span> <span class="re1">$matches</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span>self<span class="sy0">::</span><span class="re1">$i</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// comprobamos si lo llamamos desde un call_user_func y similar </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="kw3">empty</span><span class="br0">&#40;</span> <span class="re1">$returnValue</span> <span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">isset</span><span class="br0">&#40;</span> <span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;function&#39;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">in_array</span><span class="br0">&#40;</span><span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;function&#39;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;call_user_func&#39;</span><span class="sy0">,</span> <span class="st0">&#39;call_user_func_array&#39;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re1">$returnValue</span> <span class="sy0">=</span> <span class="re1">$bt</span><span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#39;args&#39;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re1">$returnValue</span> <span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> get_called_class<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> class_tools<span class="sy0">::</span><span class="me2">get_called_class</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Como se puede ver utiliza la funcion debug_backtrace() para determinar a que clase estamos llamando. Con esta función ya no tendremos problemas a la hora de instanciar nuestros &#8220;Singleton&#8221; en php.</p>
<p>Ejemplos de uso que funcionan perfectamente en PHP 5.3, y ahora en PHP 5.2</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$objeto</span> <span class="sy0">=</span> DataBase<span class="sy0">::</span><span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span><span class="sy0">&#8230;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$miClase</span> <span class="sy0">=</span> <span class="st0">&#39;DataBase&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$objeto</span> <span class="sy0">=</span> <span class="kw3">call_user_func</span><span class="br0">&#40;</span> <span class="kw3">array</span><span class="br0">&#40;</span> <span class="re1">$miClase</span><span class="sy0">,</span> <span class="st0">&#39;getInstance&#39;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/" title="Twig, el sistema de plantillas definitivo (3 Mayo 2010)">Twig, el sistema de plantillas definitivo</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/" title="PHP-FPM sobre Ubuntu 8.10 (5 Mayo 2010)">PHP-FPM sobre Ubuntu 8.10</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/04/novas-cms/" title="Novas CMS (1 Abril 2010)">Novas CMS</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2008/09/entre-mano/" title="Entre manos (22 Septiembre 2008)">Entre manos</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP-FPM sobre Ubuntu 8.10</title>
		<link>http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/</link>
		<comments>http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/#comments</comments>
		<pubDate>Wed, 05 May 2010 09:49:54 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=165</guid>
		<description><![CDATA[Tomada la decisión de sólo desarrollar, en el caso de PHP, para la familia 5.3 o superior. En gran medidad por todas las mejoras y cambios que aporta. Para instalarlo y ser procesado desde un servidor web nginx, este debe ser compilado como FastCGI.
La elección de php-fpm frente a la usual de php5 como fastcgi [...]]]></description>
			<content:encoded><![CDATA[<p>Tomada la decisión de sólo desarrollar, en el caso de PHP, para la familia 5.3 o superior. En gran medidad por todas las <a href="http://es2.php.net/manual/en/migration53.new-features.php">mejoras</a> y cambios que aporta. Para instalarlo y ser procesado desde un servidor web nginx, este debe ser compilado como FastCGI.</p>
<p>La elección de php-fpm frente a la usual de php5 como fastcgi y un <em>wrapper</em>, es simple: Además de eliminarl el <em>wrapper</em>, php-fpm nos aporta muchas <a href="http://php-fpm.org/about/">ventajas</a></p>
<p>Partiendo de que para esta distribución, desde los páquetes, está con la familia 5.2, el pasar a la 5.3 significa que:</p>
<p>a) Debemos compilarla desde las fuentes</p>
<p>b) Debemos instalar un nuevo repositorio donde si exista la versión 5.3.x para ubuntu.</p>
<p>Existe un repositorio con esta familia de php, repositorio que deberemos añadir a nuestro archivo /etc/apt/sources.list</p>
<pre>
deb http://php53.dotdeb.org stable all
</pre>
<p>Una vez esto sólo deberemos actualizar y (si no teníamos instalado anteriormente ) el php5 instalar los nuevos paquetes</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-get update</div>
</li>
</ol>
</div>
<p>En nuestro caso instalaremos el php5-fqm: Un binario de php que se ejecuta como un servicio de FastCGI, facilmente configurable y con procesos separados (si así lo queremos) por usuario, grupo, &#8230;</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-get <span class="kw2">install</span> php5-fqm</div>
</li>
</ol>
</div>
<p>Problemas:</p>
<p>Si queremos compilar módulos de php con pecl, necesitaremos instalar el php5-dev. La instalación de este paquete nos dará error por el paquete libtool, por lo que tendremos que hacer una instalación &#8220;peculiar&#8221;</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="co0">#instalamos el libtool</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-get <span class="kw2">install</span> libtool</div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#descargamos el paquete de php5-dev</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>tmp</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">wget</span> http:<span class="sy0">//</span>php53.dotdeb.org<span class="sy0">/</span>dists<span class="sy0">/</span>stable<span class="sy0">/</span>php5<span class="sy0">/</span>binary-i386<span class="sy0">/</span>php5-dev_5<span class="nu0">.3</span><span class="nu0">.2</span><span class="nu0">-0</span>.dotdeb.2_i386.deb</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> dpkg &#8211;<span class="kw2">install</span> &#8211;ignore-<span class="re2">depends=</span>libtool &nbsp; php5-dev_5<span class="nu0">.3</span><span class="nu0">.2</span><span class="nu0">-0</span>.dotdeb.2_i386.deb</div>
</li>
</ol>
</div>
<p>Con esto tenemos el PHP5-Dev (de la 5.3.x). Al tratar de instalar cualquier módulo  nos dará problemas del tipo:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">root<span class="sy0">@</span>miservidor:<span class="sy0">/</span>tmp<span class="co0"># pecl install mongo </span></div>
</li>
<li class="li1">
<div class="de1">downloading mongo<span class="nu0">-1.0</span><span class="nu0">.7</span>.tgz &#8230;</div>
</li>
<li class="li1">
<div class="de1">Starting to download mongo<span class="nu0">-1.0</span><span class="nu0">.7</span>.tgz <span class="br0">&#40;</span><span class="nu0">53</span>,<span class="nu0">750</span> bytes<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&#8230;&#8230;&#8230;&#8230;.<span class="kw1">done</span>: <span class="nu0">53</span>,<span class="nu0">750</span> bytes</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">16</span> <span class="kw3">source</span> files, building</div>
</li>
<li class="li1">
<div class="de1">running: phpize</div>
</li>
<li class="li1">
<div class="de1">Configuring <span class="kw1">for</span>:</div>
</li>
<li class="li1">
<div class="de1">PHP Api Version: &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">20090626</span></div>
</li>
<li class="li1">
<div class="de1">Zend Module Api No: &nbsp; &nbsp; &nbsp;<span class="nu0">20090626</span></div>
</li>
<li class="li1">
<div class="de1">Zend Extension Api No: &nbsp; <span class="nu0">220090626</span></div>
</li>
<li class="li1">
<div class="de1">configure.<span class="kw1">in</span>:<span class="nu0">150</span>: warning: LTOPTIONS_VERSION is m4_require<span class="st0">&#39;d but not m4_defun&#39;</span>d</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">aclocal</span>.<span class="kw2">m4</span>:<span class="nu0">2943</span>: LT_INIT is expanded from&#8230;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">aclocal</span>.<span class="kw2">m4</span>:<span class="nu0">2978</span>: AC_PROG_LIBTOOL is expanded from&#8230;</div>
</li>
<li class="li1">
<div class="de1">configure.<span class="kw1">in</span>:<span class="nu0">150</span>: the top level</div>
</li>
<li class="li1">
<div class="de1">configure.<span class="kw1">in</span>:<span class="nu0">150</span>: warning: LTSUGAR_VERSION is m4_require<span class="st0">&#39;d but not m4_defun&#39;</span>d</div>
</li>
<li class="li1">
<div class="de1">configure.<span class="kw1">in</span>:<span class="nu0">150</span>: warning: LTVERSION_VERSION is m4_require<span class="st0">&#39;d but not m4_defun&#39;</span>d</div>
</li>
<li class="li1">
<div class="de1">configure.<span class="kw1">in</span>:<span class="nu0">150</span>: warning: LTOBSOLETE_VERSION is m4_require<span class="st0">&#39;d but not m4_defun&#39;</span>d</div>
</li>
<li class="li1">
<div class="de1">configure:<span class="nu0">4584</span>: error: possibly undefined macro: m4_ifval</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; If this token and others are legitimate, please use m4_pattern_allow.</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; See the Autoconf documentation.</div>
</li>
<li class="li1">
<div class="de1">configure:<span class="nu0">7363</span>: error: possibly undefined macro: _LT_SET_OPTIONS</div>
</li>
<li class="li1">
<div class="de1">configure:<span class="nu0">7363</span>: error: possibly undefined macro: LT_INIT</div>
</li>
<li class="li1">
<div class="de1">ERROR: `phpize<span class="st0">&#39; failed</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"</span></div>
</li>
</ol>
</div>
<p>Esto se debe a la conf del libtool instalado (rutas y contenido), por lo que deberemos corregirlo:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">ln</span> -s <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>libtool<span class="sy0">/</span>config<span class="sy0">/</span>ltmain.<span class="kw2">sh</span> &nbsp;<span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>libtool<span class="sy0">/</span>ltmain.<span class="kw2">sh</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">ln</span> -s <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span><span class="kw2">aclocal</span><span class="sy0">/</span>libtool.<span class="kw2">m4</span> <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span>libtool<span class="sy0">/</span>libtool.<span class="kw2">m4</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> <span class="sy0">/</span>usr<span class="sy0">/</span>share<span class="sy0">/</span><span class="kw2">aclocal</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">cp</span> libtool.<span class="kw2">m4</span> &nbsp;libtool.<span class="kw2">m4</span>.original </div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">cat</span> <span class="sy0">&gt;</span> bsolete.<span class="kw2">m4</span> ltoptions.<span class="kw2">m4</span> ltsugar.<span class="kw2">m4</span> ltversion.<span class="kw2">m4</span> <span class="sy0">&gt;&gt;</span> libtool.<span class="kw2">m4</span></div>
</li>
</ol>
</div>
<p>A partir de este momento ya podemos instalar cualquier módulo con pecl:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">pecl <span class="kw2">install</span> mongo </div>
</li>
<li class="li1">
<div class="de1">downloading mongo<span class="nu0">-1.0</span><span class="nu0">.7</span>.tgz &#8230;</div>
</li>
<li class="li1">
<div class="de1">Starting to download mongo<span class="nu0">-1.0</span><span class="nu0">.7</span>.tgz <span class="br0">&#40;</span><span class="nu0">53</span>,<span class="nu0">750</span> bytes<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&#8230;&#8230;&#8230;&#8230;.<span class="kw1">done</span>: <span class="nu0">53</span>,<span class="nu0">750</span> bytes</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">16</span> <span class="kw3">source</span> files, building</div>
</li>
<li class="li1">
<div class="de1">running: phpize</div>
</li>
<li class="li1">
<div class="de1">Configuring <span class="kw1">for</span>:</div>
</li>
<li class="li1">
<div class="de1">PHP Api Version: &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">20090626</span></div>
</li>
<li class="li1">
<div class="de1">Zend Module Api No: &nbsp; &nbsp; &nbsp;<span class="nu0">20090626</span></div>
</li>
<li class="li1">
<div class="de1">Zend Extension Api No: &nbsp; <span class="nu0">220090626</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">uild process completed successfully</div>
</li>
<li class="li1">
<div class="de1">Installing <span class="st0">&#39;/usr/lib/php5/20090626+lfs/mongo.so&#39;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">install</span> ok: channel:<span class="sy0">//</span>pecl.php.net<span class="sy0">/</span>mongo<span class="nu0">-1.0</span><span class="nu0">.7</span></div>
</li>
<li class="li1">
<div class="de1">configuration option <span class="st0">&quot;php_ini&quot;</span> is not <span class="kw1">set</span> to php.ini location</div>
</li>
<li class="li1">
<div class="de1">You should add <span class="st0">&quot;extension=mongo.so&quot;</span> to php.ini</div>
</li>
</ol>
</div>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/" title="Twig, el sistema de plantillas definitivo (3 Mayo 2010)">Twig, el sistema de plantillas definitivo</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/" title="Singleton para PHP 5.3, y parche para 5.2 (5 Mayo 2010)">Singleton para PHP 5.3, y parche para 5.2</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/04/novas-cms/" title="Novas CMS (1 Abril 2010)">Novas CMS</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2008/09/entre-mano/" title="Entre manos (22 Septiembre 2008)">Entre manos</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/01/actualizacion-claves-gpg-repositorios-ubuntu/" title="Actualización claves GPG repositorios Ubuntu (9 Enero 2010)">Actualización claves GPG repositorios Ubuntu</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twig, el sistema de plantillas definitivo</title>
		<link>http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/</link>
		<comments>http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/#comments</comments>
		<pubDate>Mon, 03 May 2010 18:55:58 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=158</guid>
		<description><![CDATA[Siempre he sido muy receloso a la hora de utilizar un sistema de plantillas para PHP.]]></description>
			<content:encoded><![CDATA[<p>Siempre he sido muy receloso a la hora de utilizar un sistema de plantillas para PHP, pero la llegada de <a href="http://www.twig-project.org/">Twig</a> ha sido todo un acontecimiento.</p>
<p>Con un desarrollo límpio y optimizado  <a href="http://fabien.potencier.org/">Fabien Potencier</a>, el creador de <a href="http://www.symfony-project.org/">Symfony</a> ha creado un sistema en el que las plantillas están 100% libres de código (PHP) y siguen la fabulosa sintaxis de las plantillas de  Django. El resultado es un sistema potente y optimizado, ya que genera unas versiones en php de las plantillas con un código para quitarse el sombrero.</p>
<p>Aun estoy arañando la superficie de esta maravilla, pero con la creación de filtros, y añadiendo nuevas funcionalidades en breve tendremos una versión remozada (internamente) de SevillaPress.</p>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/" title="Singleton para PHP 5.3, y parche para 5.2 (5 Mayo 2010)">Singleton para PHP 5.3, y parche para 5.2</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/" title="PHP-FPM sobre Ubuntu 8.10 (5 Mayo 2010)">PHP-FPM sobre Ubuntu 8.10</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/04/novas-cms/" title="Novas CMS (1 Abril 2010)">Novas CMS</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2008/09/entre-mano/" title="Entre manos (22 Septiembre 2008)">Entre manos</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevo diseño, nuevo planteamiento</title>
		<link>http://www.antoniocortes.com/2010/04/nuevo-diseno-nuevo-planteamiento/</link>
		<comments>http://www.antoniocortes.com/2010/04/nuevo-diseno-nuevo-planteamiento/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 11:17:15 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[diseño]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=151</guid>
		<description><![CDATA[Un nuevo diseño para antoniocortes.com]]></description>
			<content:encoded><![CDATA[<p>Ya tocaba cambiar un poco mi web.</p>
<p>Poco a poco irá cogiendo forma, y en ella iré poniendo todos los proyectos en los que trabajo, mi portfolio, y mi colección de código que he ido creando o recopilando en los últimos años, que no son pocos.</p>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2009/07/impresionantes-ejemplos-en-imagenes-generadas-por-ordenador/" title="Imágenes generadas por ordenador (28 Julio 2009)">Imágenes generadas por ordenador</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/04/nuevo-diseno-nuevo-planteamiento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pontecesures.net</title>
		<link>http://www.antoniocortes.com/2010/04/pontecesures-net/</link>
		<comments>http://www.antoniocortes.com/2010/04/pontecesures-net/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 11:09:41 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=147</guid>
		<description><![CDATA[Web - Wordpress]]></description>
			<content:encoded><![CDATA[<p>Web desarrollada sobre Wordpress.</p>
<p>Plantilla propia.</p>
<p>Url: <a href="http://www.pontecesures.net">http://www.pontecesures.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/04/pontecesures-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novas CMS</title>
		<link>http://www.antoniocortes.com/2010/04/novas-cms/</link>
		<comments>http://www.antoniocortes.com/2010/04/novas-cms/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 16:24:21 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=142</guid>
		<description><![CDATA[Gestor de Periódicos digitales]]></description>
			<content:encoded><![CDATA[<p>Desarrollado con PHP 5, <strong>Novas CMS </strong>es un gestor multi-cabecera de Ediciones digitales.</p>
<p>Características:</p>
<ul>
<li>Gestión de Flujos de Edición: Creación, revisión y publicación</li>
<li>Gestión visual de Portada</li>
<li>Multiples cabeceras / Dominios.</li>
<li>Roles: Administrador, redactor, colaborador, editor, &#8230; Ampliables y configurables</li>
<li>Sistema de caché y gestión de recursos.</li>
<li>Gestión de librería gráfica y sistema visual de cambio de encuadres.</li>
<li>&#8230;</li>
</ul>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2008/09/entre-mano/" title="Entre manos (22 Septiembre 2008)">Entre manos</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/twig-el-sistema-de-plantillas-definitivo/" title="Twig, el sistema de plantillas definitivo (3 Mayo 2010)">Twig, el sistema de plantillas definitivo</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/singleton-para-php-5-3-y-parche-para-5-2/" title="Singleton para PHP 5.3, y parche para 5.2 (5 Mayo 2010)">Singleton para PHP 5.3, y parche para 5.2</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/" title="PHP-FPM sobre Ubuntu 8.10 (5 Mayo 2010)">PHP-FPM sobre Ubuntu 8.10</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2009/11/iconos-para-desarrolladores-de-android/" title="Iconos para desarrolladores de Android (8 Noviembre 2009)">Iconos para desarrolladores de Android</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/04/novas-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SevillaPress</title>
		<link>http://www.antoniocortes.com/2010/04/sevillapress/</link>
		<comments>http://www.antoniocortes.com/2010/04/sevillapress/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 16:03:27 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=135</guid>
		<description><![CDATA[Sobre NovasCMS]]></description>
			<content:encoded><![CDATA[Sobre NovasCMS]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/04/sevillapress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synaptica</title>
		<link>http://www.antoniocortes.com/2010/04/synaptica/</link>
		<comments>http://www.antoniocortes.com/2010/04/synaptica/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 15:58:59 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=131</guid>
		<description><![CDATA[Webservices, RSS sobre Besbello]]></description>
			<content:encoded><![CDATA[<p>URL: <a href="http://www.synaptica.es">www.synaptica.es</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/04/synaptica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encuentro Viral.10</title>
		<link>http://www.antoniocortes.com/2010/01/encuentro-viral-10/</link>
		<comments>http://www.antoniocortes.com/2010/01/encuentro-viral-10/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 16:34:36 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[congreso]]></category>
		<category><![CDATA[encuentro viral]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[periodismo]]></category>
		<category><![CDATA[salud]]></category>
		<category><![CDATA[sevilla]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=105</guid>
		<description><![CDATA[Todo apunta a que será una tarde interesante, donde se hablará de las relaciones entre Internet, salud y enfermedades infecciosas.
]]></description>
			<content:encoded><![CDATA[<p>El próximo 21 de enero se celebrará el <a href="http://www.encuentroviral.es">Encuentro Viral</a> en Sevilla, una oportunidad para ver que se cuece dentro del mundo de la sanidad y medicina relacionado con los nuevos medios.</p>
<p>El elenco de participantes es muy variado: periodístas, médicos,  investigadores.</p>
<p>Todo apunta a que será una tarde interesante, donde se hablará de las relaciones entre Internet, salud y enfermedades infecciosas.</p>
<p>Nos vemos allí</p>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2010/01/%c2%bf-quien-se-la-cuela-a-quien/" title="¿ Quién se la cuela a quién ? (4 Enero 2010)">¿ Quién se la cuela a quién ?</a> (2)</li>
	<li><a href="http://www.antoniocortes.com/2009/05/videos-del-european-accessibility-forum-ingles/" title="European Accessibility Forum (5 Mayo 2009)">European Accessibility Forum</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/01/encuentro-viral-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actualización claves GPG repositorios Ubuntu</title>
		<link>http://www.antoniocortes.com/2010/01/actualizacion-claves-gpg-repositorios-ubuntu/</link>
		<comments>http://www.antoniocortes.com/2010/01/actualizacion-claves-gpg-repositorios-ubuntu/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 16:21:17 +0000</pubDate>
		<dc:creator>Antonio Cortés</dc:creator>
				<category><![CDATA[Block de notas]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.antoniocortes.com/?p=102</guid>
		<description><![CDATA[La solución a las claves públicas desactualizadas]]></description>
			<content:encoded><![CDATA[<p>Algunas veces es posible que debamos actualizar las claves públicas de algunos repositorios de Ubuntu. Un síntoma es el siguiente error:</p>
<p><code>W: GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4FEC45DD06899068</code></p>
<p>La solución es bien sencilla.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> apt-key adv &#8211;recv-keys \</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &#8211;keyserver keyserver.ubuntu.com \</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="nu0">06899068</span></div>
</li>
</ol>
</div>

	<h4 class="relatedEntries">Entradas relacionadas</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.antoniocortes.com/2009/05/ver-las-10-ips-con-mas-acceso/" title="Ver las 10 IPs con más acceso (15 Mayo 2009)">Ver las 10 IPs con más acceso</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2009/03/que-hacer-ante-un-desastre/" title="Que hacer ante un desastre (23 Marzo 2009)">Que hacer ante un desastre</a> (0)</li>
	<li><a href="http://www.antoniocortes.com/2010/05/php-fpm-sobre-ubuntu-8-10/" title="PHP-FPM sobre Ubuntu 8.10 (5 Mayo 2010)">PHP-FPM sobre Ubuntu 8.10</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.antoniocortes.com/2010/01/actualizacion-claves-gpg-repositorios-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
