<?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>Chronosbox &#187; Debian/Ubuntu</title>
	<atom:link href="http://chronosbox.org/blog/categories/linux/debianubuntu/feed" rel="self" type="application/rss+xml" />
	<link>http://chronosbox.org/blog</link>
	<description>idéias e dicas de uma mente insana trabalhando com TI</description>
	<lastBuildDate>Mon, 10 May 2010 03:09:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Migrando bases de dados LATIN1 para UTF-8 com o PostgreSQL</title>
		<link>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8</link>
		<comments>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8#comments</comments>
		<pubDate>Sat, 06 Feb 2010 05:59:22 +0000</pubDate>
		<dc:creator>Felipe 'chronos' Prenholato</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[clusters]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[iso-8859-1]]></category>
		<category><![CDATA[latin1]]></category>
		<category><![CDATA[pgsql]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/?p=264</guid>
		<description><![CDATA[Nos dias atuais é um padrão que todos os sites e servidores web rodem ao menos com UTF-8 como encoding default, entretanto pode-se encontrar casos onde ainda se roda LATIN1 ou até mesmo ASCII.
O caso que tratamos hoje é de um servidor Debian, versão 5.0.3 (lenny), que usava o encode LATIN1 quando instalado e configurado [...]]]></description>
			<content:encoded><![CDATA[<p>Nos dias atuais é um padrão que todos os sites e servidores web rodem ao menos com UTF-8 como encoding default, entretanto pode-se encontrar casos onde ainda se roda LATIN1 ou até mesmo ASCII.</p>
<p>O caso que tratamos hoje é de um servidor Debian, versão 5.0.3 (lenny), que usava o encode LATIN1 quando instalado e configurado o Postgresql, e não me deixava criar uma base de dados UTF-8, gerando o seguinte erro:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c 'createdb teste3  -E UTF-8'</span>
createdb: database creation failed: ERROR:  encoding UTF8 does not match server<span class="st_h">'s locale en_US
DETAIL:  The server'</span>s LC_CTYPE setting requires encoding LATIN1.</pre></div></div>

<p><span id="more-264"></span></p>
<h3>Porque??</h3>
<p>O Postgresql, quando roda pela primeira vez, cria um cluster usando o encode default do sistema, e após feito isso, não se pode alterar o encode do cluster. O cluster default é o main, em todas as intalações que eu vi. </p>
<p>No caso deste servidor o encode default (locales) era en_US, que para o Debian significa en_US.ISO-8859-1. Por default o Debian Lenny, nas minhas instalações do zero, usa en_US.UTF-8, então o servidor provavelmente deveria ser um antigo Debian Etch atualizado.</p>
<h3>A solução</h3>
<p>Depois de alguma pesquisa, descobri que, após configurar o encode do servidor para usar UTF-8, poderia criar um novo cluster que suportasse tal encode.</p>
<p>Vamos ao passo a passo da solução do problema.</p>
<ul>
<li><strong>Criando um novo cluster:</strong> Para criar um novo cluster no Debian, é bastante simples:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># pg_createcluster 8.3 utf8_cluster</span>
Creating new cluster <span class="br0">&#40;</span>configuration: <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster, data: <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="br0">&#41;</span>...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>postgresql.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>pg_hba.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>pg_ident.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Configuring postgresql.conf to use port 5433...
&nbsp;
debian:~<span class="co0"># /etc/init.d/postgresql-8.3 restart</span></pre></div></div>

<p>O cluster vai rodar na primeira porta livre que achar depois da 5432, a não ser que você especifique. Para ter efeito, reinicia-se o Postgresql.</li>
<li><strong>Criando o usuário:</strong> Agora crie o usuário da base de dados, recomendo o mesmo nome e senha além de editar sua autenticação para trust no pg_hba.conf do seu cluster:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;createuser -P pyuser -p 5433&quot;</span>
Enter password <span class="kw1">for</span> new role:
Enter it again:
Shall the new role be a superuser? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n
Shall the new role be allowed to create databases? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n
Shall the new role be allowed to create <span class="kw2">more</span> new roles? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n</pre></div></div>

</li>
<li><strong>Migrando as bases:</strong> Agora você deve migrar as bases de dados. Primeiro crie ela e depois faça um dump seguido de um psql, direto na linha de comando. Siga o exemplo:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;createdb teste3 -e -p 5433 -O pyuser&quot;</span>
CREATE DATABASE teste3 OWNER pyuser;</pre></div></div>

<p>Agora liste a base de dados:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;psql -l -p 5433&quot;</span>
        List of databases
   Name    <span class="sy0">|</span>  Owner   <span class="sy0">|</span> Encoding
-----------+----------+----------
 postgres  <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8
 template0 <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8
 template1 <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8	
 teste3    <span class="sy0">|</span> pyuser   <span class="sy0">|</span> UTF8
<span class="br0">&#40;</span><span class="nu0">4</span> rows<span class="br0">&#41;</span></pre></div></div>

<p>Após criar a base de dados, então faremos a população dela, atenção quanto as portas:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># pg_dump -U pyuser teste3 | psql -U pyuser -p 5433 teste3</span></pre></div></div>

</li>
<li><strong>Configurando sua aplicação:</strong> Esta é a parte mais simples, apenas altere a porta da sua aplicação para a porta do novo cluster.</li>
</ul>
<p>Repita os passos da criação da base de dados para cada base que precisa ser movida, e pronto, tudo funcionando agora com suporte a UTF-8.</p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compilando fácil com Debian/Ubuntu</title>
		<link>http://chronosbox.org/blog/compilando-facil-com-debianubuntu</link>
		<comments>http://chronosbox.org/blog/compilando-facil-com-debianubuntu#comments</comments>
		<pubDate>Sun, 03 Jan 2010 21:28:48 +0000</pubDate>
		<dc:creator>Handrus Nogueira</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servidores]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/?p=255</guid>
		<description><![CDATA[Como usuário do bom e velho gentoo, sempre senti falta da possibilidade de compilar softwares para ganhar uma certa performance. Principalmente em se tratando e softwares de uso em servidor, como Java, PHP, apache, mysql e porstgres. Nos meus testes sempre senti diferença entre as versões pré-compiladas e compilada in loco.
No Debian/Ubuntu a descoberta do [...]]]></description>
			<content:encoded><![CDATA[<p>Como usuário do bom e velho gentoo, sempre senti falta da possibilidade de compilar softwares para ganhar uma certa performance. Principalmente em se tratando e softwares de uso em servidor, como Java, PHP, apache, mysql e porstgres. Nos meus testes sempre senti diferença entre as versões pré-compiladas e compilada in loco.<br />
No Debian/Ubuntu a descoberta do apt-build me ajudou a contornar o problema com a mesma classe e <strong>quase</strong> a mesma eficiência que o portage.</p>
<p>Vamos ao passo-a-passo:</p>
<p>Para instalar o apt-build:<br />
<code>sudo apt-get install apt-build auto-apt</code></p>
<p>Configure para sua máquina:<br />
<code>dpkg-reconfigure apt-build</code><br />
Escolha sua arquitetura de processador e o nível de otimização, o indicado é o médio.<br />
As opções ficam salvas no arquivo <strong>/etc/apt/apt-build.conf</strong> ; Vamos apenas ajustar o número de processadores na ultima linha do arquivo altere-o para<br />
<code>make_options = " -j4"</code><br />
onde o número é igual ao número de &#8220;cores&#8221; + 1. Portanto um quadcore seria &#8220;-j5&#8243;.</p>
<p>Para evitar que os pacotes compilados sejam atualizados pelos pacotes oficiais vamos editar o arquivo <strong>/etc/apt/preferences</strong> adicionando:<br />
<code>Package: *<br />
Pin: release o=apt-build<br />
Pin-Priority: 990</code></p>
<p>Não se esqueça de adicionar os repositórios de código fonte (deb-src) e pronto!<br />
Agora ao invés do tradicional apt-get install
<pacote> utilize <code>apt-build install
<pacote></code></p>
<p>Exemplo: sudo apt-build install xchat emesene</p>
<p>Tutorial rápido sobre apt-build:</p>
<p><strong>apt-build install &#8211;reinstall
<pack></strong> para reinstalar<br />
<strong>apt-build upgrade</strong> Upgrade nos softwares instalados<br />
<strong>apt-build world</strong> Recompila todo o sistema<br />
<strong>apt-build remove programa</strong> Remove o programa<br />
<strong>apt-build clean-build</strong> Remove pacotes compilados<br />
<strong>apt-build clean-sources</strong> Remove os códigos fonte baixados.</p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/compilando-facil-com-debianubuntu/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
