# instalar o locale pt_BR (q eh o iso-8859-1).. isso só instala, nao vai mudar o locale do SO
sudo locale-gen pt_BR
# ir para o diretorio do fonte do postgresql-8.2
./configure --prefix=/opt/postgresql-8.2
make
sudo make install
# colocar na inicializacao
sudo cp contrib/start-scripts/linux /etc/init.d/postgresql-8.2
sudo chmod +x /etc/init.d/postgresql-8.2
sudo vim /etc/init.d/postgresql-8.2
# editar as linhas:
prefix=/opt/postgresql-8.2
PGDATA="/opt/postgresql-8.2/data"
sudo update-rc.d postgresql-8.2 defaults
# criar os diretorios de dados
sudo mkdir /opt/postgresql-8.2/data
sudo chown postgres: /opt/postgresql-8.2/data
su - postgres
/opt/postgresql-8.2/bin/initdb -D /opt/postgresql-8.2/data -E LATIN1 --locale="pt_BR.ISO-8859-1" --lc-collate="C"
#configurar
sudo vim /opt/postgresql-8.2/data/postgresql.conf
# editar a linha
port = 9876
# inicializar
sudo /etc/init.d/postgresql-8.2 start
# criar usuário local e seu banco de dados
sudo su postgres -c "/opt/postgresql-8.2/bin/createuser -p 9876 -P --superuser --createdb novousuario"
/opt/postgresql-8.2/bin/createdb -p9876 novousuario
# Para ser utilizado este SGBD, deve ser usado o PSQL (CREATEDB, PG_DUMP) da seguinte forma:
/opt/postgresql-8.2/bin/psql -p 9876 ......
OU
psql -h 127.0.0.1 -p 9876 ......
terça-feira, 16 de agosto de 2011
segunda-feira, 30 de maio de 2011
Java
Instruções para instalar o Java:
http://happy-coding.com/install-sun-java6-jdk-on-ubuntu-10-04-lucid/
https://help.ubuntu.com/community/Java
Utilizar o Java (JDK) 6 da Oracle (Sun).
Comentários: esse help do Ubuntu está desatualizado, para baixar o java utilize o endereço: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u32-oth-JPR
https://help.ubuntu.com/community/Java
Utilizar o Java (JDK) 6 da Oracle (Sun).
Comentários: esse help do Ubuntu está desatualizado, para baixar o java utilize o endereço: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u32-oth-JPR
terça-feira, 19 de abril de 2011
Configurando o layout de teclado no Ubuntu via console
Esse tutorial tem como objetivo possibilitar a configuração do layout de teclados via console. Ele será útil para quem estiver utilizando, por exemplo, a versão Mini do Ubuntu [https://help.ubuntu.com/community/Installation/MinimalCD], que não possui interface gráfica.
Os passos são:
Você também pode fazer isso editando o arquivo /etc/default/console-setup da seguinte forma:
Mais informações a respeito podem ser obtidas no artigo de Gustavo Brandão, que foi a fonte deste tutorial.
Os passos são:
- No shell efetue:
sudo dpkg-reconfigure console-setup
- Isso irá abrir uma interface de configuração;
- Informe o modelo do teclado;
- Informe a origem do teclado (Brazil);
- Informe o layout do teclado;
- Informe as demais configurações que a interface irá exibir;
Você também pode fazer isso editando o arquivo /etc/default/console-setup da seguinte forma:
sudo vi /etc/default/console-setup
Mais informações a respeito podem ser obtidas no artigo de Gustavo Brandão, que foi a fonte deste tutorial.
segunda-feira, 25 de outubro de 2010
phpNucleum 5 - Onde formatar?
Onde formatar?
Estamos usando o padrão MVC, mas onde é o melhor local para formatar um valor? No Model, no View, ou no Controller?
Model) Foi feita uma tentativa de formatar no Model, existem duas classes Model que deveriam receber a implementação: Modelo e Grid.
- Classe Modelo: os atributos desta classe seriam formatados automaticamente após rodar o método "encontrar" (que carrega os valores). Notou-se que se o valor de um atributo estivesse sempre formatado no Model, quando o Controller fosse utilizá-lo para efetuar cálculos (datas, monetários, etc) ele teria que "desformatar" o valor e depois formatar novamente. Sendo que o Controller fazer isso é algo bastante comum. Um outro problema registrado foi o fato de que nem sempre se deseja todos os atributos formatados, pois na página de consulta se necessita os valores de um jeito, mas na alteração de outro.
Uma solução para estes problemas foi criar um método que retornasse um array com os valores formatados, sendo que os valores dos atributos permaneciam originais.
- Classe Grid: a formatação via Model, para montantes de dados carregados em grid's, implicaria na construção de um método que percorreria todos os valores e formataria de acordo com o tipo de dado.
Problema de implementar formatação nesta camada: muitas vezes temos tipos de dados que tem uma formatação própria (independe do tipo no BD). Exemplo: campos monetários (no BD é numérico), CPF, CNPJ, telefone, etc. Nestes casos, se chegou a implementar um método para formatação personalizada de atributo na classe Modelo, porém para a classe Grid se viu dificuldade em se ter a formatação em montantes de dados grandes e, principalmente, a identificação de campos com formatação personalizada.
View) Nesta camada a formatação ocorre somente no momento de exibir os dados para o usuário. Ou seja, todas as formatações que se deseja fazer devem ser explicitamente declaradas. Esta já era a maneira utilizada para formatação no phpNucleum 4.x, um diferencial que foi implementado no phpNucleum 5 é a utilização pelo Smarty dos mesmos métodos de formatação usados no PHP. Exemplo:
CPF: {$valoresTeste.cpf|escape|formatarCpf}
Valor: {$valoresTeste.valor|escape|formatarMonetario}
Os modificadores 'formatarCpf' e 'formatarMonetario' são os próprios métodos Auxilio::formatarCpf e Auxilio::formatarMonetario. Desta forma o código de formatação não fica redundante (pelo menos entre o PHP e o Smarty).
Os locais que possuem funções de formatação são:
- PHP (phpNucleum\Auxilio)
- jnGrid (e suas dependências)
- jnCalendar (e suas dependências)
- iReport
É fato que usando esta camada se perde a configuração única de localização, pois ao se desejar a alteração de uma configuração de formatação de data/valor, devem ser alteradas as configurações em todos os locais acima mencionados. Porém notou-se que usando a camada Model e Controller isto também aconteceria, pois a configuração de formatação do jnCalendar e do iReport seria necessária de qualquer maneira.
Controller) Não se percebeu muita diferença entre realizar a formatação nesta camada e na camada View. Porém o problema de formatar montantes grandes de dados se repetiria nesta camada (percorrer todos os registros e fazer formatação personalizada).
Conclusão
Todas as camadas tem seus prós e contras, as camadas Model e Controller têm problemas com desempenho, pois percorrer 18 mil registros para formatar valores de cpf, data, valores, etc é bastante custoso em termos de memória e processamento. Na camada View sofremos com a falta de um arquivo único de configuração, porém se percebeu que tal problema acontece também no Model e no Controller. Outra característica da View é que não existe formatação automática (tudo é explicitado). A característica de formatação automática pode ser visto como vantagem e também como desvantagem, ou seja, como tudo na informática, DEPENDE.
Em razão do exposto acima, levando-se em conta principalmente o fator desempenho, optou-se por utilizar a camada View na formatação dos dados.
Model) Foi feita uma tentativa de formatar no Model, existem duas classes Model que deveriam receber a implementação: Modelo e Grid.
- Classe Modelo: os atributos desta classe seriam formatados automaticamente após rodar o método "encontrar" (que carrega os valores). Notou-se que se o valor de um atributo estivesse sempre formatado no Model, quando o Controller fosse utilizá-lo para efetuar cálculos (datas, monetários, etc) ele teria que "desformatar" o valor e depois formatar novamente. Sendo que o Controller fazer isso é algo bastante comum. Um outro problema registrado foi o fato de que nem sempre se deseja todos os atributos formatados, pois na página de consulta se necessita os valores de um jeito, mas na alteração de outro.
Uma solução para estes problemas foi criar um método que retornasse um array com os valores formatados, sendo que os valores dos atributos permaneciam originais.
- Classe Grid: a formatação via Model, para montantes de dados carregados em grid's, implicaria na construção de um método que percorreria todos os valores e formataria de acordo com o tipo de dado.
Problema de implementar formatação nesta camada: muitas vezes temos tipos de dados que tem uma formatação própria (independe do tipo no BD). Exemplo: campos monetários (no BD é numérico), CPF, CNPJ, telefone, etc. Nestes casos, se chegou a implementar um método para formatação personalizada de atributo na classe Modelo, porém para a classe Grid se viu dificuldade em se ter a formatação em montantes de dados grandes e, principalmente, a identificação de campos com formatação personalizada.
View) Nesta camada a formatação ocorre somente no momento de exibir os dados para o usuário. Ou seja, todas as formatações que se deseja fazer devem ser explicitamente declaradas. Esta já era a maneira utilizada para formatação no phpNucleum 4.x, um diferencial que foi implementado no phpNucleum 5 é a utilização pelo Smarty dos mesmos métodos de formatação usados no PHP. Exemplo:
CPF: {$valoresTeste.cpf|escape|formatarCpf}
Valor: {$valoresTeste.valor|escape|formatarMonetario}
Os modificadores 'formatarCpf' e 'formatarMonetario' são os próprios métodos Auxilio::formatarCpf e Auxilio::formatarMonetario. Desta forma o código de formatação não fica redundante (pelo menos entre o PHP e o Smarty).
Os locais que possuem funções de formatação são:
- PHP (phpNucleum\Auxilio)
- jnGrid (e suas dependências)
- jnCalendar (e suas dependências)
- iReport
É fato que usando esta camada se perde a configuração única de localização, pois ao se desejar a alteração de uma configuração de formatação de data/valor, devem ser alteradas as configurações em todos os locais acima mencionados. Porém notou-se que usando a camada Model e Controller isto também aconteceria, pois a configuração de formatação do jnCalendar e do iReport seria necessária de qualquer maneira.
Controller) Não se percebeu muita diferença entre realizar a formatação nesta camada e na camada View. Porém o problema de formatar montantes grandes de dados se repetiria nesta camada (percorrer todos os registros e fazer formatação personalizada).
Conclusão
Todas as camadas tem seus prós e contras, as camadas Model e Controller têm problemas com desempenho, pois percorrer 18 mil registros para formatar valores de cpf, data, valores, etc é bastante custoso em termos de memória e processamento. Na camada View sofremos com a falta de um arquivo único de configuração, porém se percebeu que tal problema acontece também no Model e no Controller. Outra característica da View é que não existe formatação automática (tudo é explicitado). A característica de formatação automática pode ser visto como vantagem e também como desvantagem, ou seja, como tudo na informática, DEPENDE.
Em razão do exposto acima, levando-se em conta principalmente o fator desempenho, optou-se por utilizar a camada View na formatação dos dados.
Marcadores:
controller,
formatacao,
model,
mvc,
onde formatar,
view
phpNucleum 5 - Formatação de datas
Mudanças na classe Auxilio:
- O método obterDataFormatada($dataiso,$formato) foi renomeado para formatarDataViaGetDate($dataiso,$formato)
- O método obterDataFormatadaPadraoStrftime($timestamp,$formato) foi renomeado para formatarDataViaStrftime($timestamp,$formato)
- Adicionalmente, foi criado o método formatarData($dataiso,$formato), que recebe uma data em formato ISO e converte para o formato especificado no padrão strftime ("%d/%m/%Y"). Internamente, o método formatarData converte a data ISO em timestamp e chama o método formatarDataViaStrftime. - O método formatarData utiliza o formato que está no XML da aplicação caso o parâmetro $formato não seja especificado.
Isto foi feito pois o comando utilizado pelo método que utiliza strtime permite obter dias da semana e nomes de mês em português.
Porém, o retorno do nome destes detalhes em português não funciona com períodos menores que 1970 e maiores que 2038.
Exemplos:
Caso de teste 1: OK, data 31/12/2010.
Caso de teste 2: ERRO, data 31/12/2010.
Para obter a data atual basta chamar: N::$objAuxilio->formatarData(false, "%d/%m/%Y");
- O método obterDataFormatada($dataiso,$formato) foi renomeado para formatarDataViaGetDate($dataiso,$formato)
- O método obterDataFormatadaPadraoStrftime($timestamp,$formato) foi renomeado para formatarDataViaStrftime($timestamp,$formato)
- Adicionalmente, foi criado o método formatarData($dataiso,$formato), que recebe uma data em formato ISO e converte para o formato especificado no padrão strftime ("%d/%m/%Y"). Internamente, o método formatarData converte a data ISO em timestamp e chama o método formatarDataViaStrftime. - O método formatarData utiliza o formato que está no XML da aplicação caso o parâmetro $formato não seja especificado.
Isto foi feito pois o comando utilizado pelo método que utiliza strtime permite obter dias da semana e nomes de mês em português.
Porém, o retorno do nome destes detalhes em português não funciona com períodos menores que 1970 e maiores que 2038.
Exemplos:
Caso de teste 1: OK, data 31/12/2010.
$data = "2010-12-31";
$dataF = N::$objAuxilio->formatarData($data, "%d/%m/%Y %A");
var_dump($dataF);
$dataF = N::$objAuxilio->formatarDataViaGetDate($data, "d/m/Y l");
var_dump($dataF);
/* Saída:
string '31/12/2010 sexta' (length=16)
string '31/12/2010 Friday' (length=17) */
Caso de teste 2: ERRO, data 31/12/2010.
$data = "1965-12-31";
$dataF = N::$objAuxilio->formatarData($data, "%d/%m/%Y %A");
var_dump($dataF);
$dataF = N::$objAuxilio->formatarDataViaGetDate($data, "d/m/Y l");
var_dump($dataF);
/* Saída:
string '31/12/1965 Friday' (length=17)
string '31/12/1965 Friday' (length=17) */
Para obter a data atual basta chamar: N::$objAuxilio->formatarData(false, "%d/%m/%Y");
Marcadores:
changelog,
datas,
formatação,
phpNucleum
sexta-feira, 24 de setembro de 2010
Como percorrer um array em PHP sem usar foreach
A função foreach utiliza muito espaço em memória e pode até dar estouro de memória se o array for muito grande. Este problema acontece quando alteramos valores do array dentro do foreach.
Uma alternativa para percorrer um array grande é movimentar o ponteiro interno do array.
$registro = reset($listaDeRegistros);
while ($registro !== false) { //foreach estoura memória
$i = key($listaDeRegistros);
//faça o que quiser.... var_dump($listaDeRegistros[$i]);
$registro = next($listaDeRegistros);
}
Uma alternativa para percorrer um array grande é movimentar o ponteiro interno do array.
$registro = reset($listaDeRegistros);
while ($registro !== false) { //foreach estoura memória
$i = key($listaDeRegistros);
//faça o que quiser.... var_dump($listaDeRegistros[$i]);
$registro = next($listaDeRegistros);
}
sexta-feira, 25 de junho de 2010
Instalação do Subversion (integrado com Apache)
Basta seguir este tutorial: http://ubuntuforums.org/showthread.php?t=51753&page=2
Algumas ressalvas:
Algumas ressalvas:
- O comando "apache2-ssl-certificate" não existe. Ao invés disso deve ser feito:
- sudo mkdir /etc/apache2/ssl
- sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
- Ao editar o dav_svn.conf, adicione as seguintes linhas após o AuthUserFile
- Require valid-user
- SSLRequireSSL
Marcadores:
apache,
instalação,
subversion
sexta-feira, 4 de junho de 2010
quinta-feira, 20 de maio de 2010
Validação XML usando XSD
Visando padronizar o uso da validação XML utilizando arquivo XSD, publicarei aqui alguns problemas que passei e a respectiva solução.
- Para facilitar o trabalho de criar o XSD, é possível transformar um XML em XSD?
Sim, basta acessar http://www.flame-ware.com/Products/XML-2-XSD/
- Como validar uma lista enumerada no XSD?
- Como ter um elemento inteiro (ou qualquer outro tipo) que aceite vazio no XSD?
- Como validar e-mail no XSD?
quarta-feira, 28 de abril de 2010
Membro do NSA selecionado para projeto da Google
Leonardo Sápiras, membro do NSA e aluno do curso de Sistemas de Informação da FACCAT, concorrendo com estudantes graduandos, mestrandos, doutorandos e pós-doutorandos de universidades do mundo todo, foi um dos selecionados para trabalhar em projeto do Google Summer of Code (GSoC), programa da empresa Google que oferece bolsas a estudantes programadores de softwares. A lista dos selecionados foi divulgado no dia 26 de abril, no site específico do GSoC [http://socghop.appspot.com/].
Os alunos selecionados passam três meses trabalhando no desenvolvimento de algum dos projetos patrocinados pela Google. Especificamente, o Leonardo irá trabalhar em melhoramentos da ergonomia do software phpPgAdmin (famoso sistema Software Livre da área de Bancos de Dados). Esse projeto foi aceito pela Google, pela própria phpPgAdmin e pela organização mantenedora do PostgreSQL, um dos mais reconhecidos sistemas gerenciadores de banco de dados e que será a organização “mentora” da proposta do Leonardo.
Marcadores:
ergonomia,
google,
google summer of code,
gsoc,
phppgadmin
segunda-feira, 19 de abril de 2010
Guia definitivo da IDE Eclipse
Inclui SubVersion, Smarty, Debugger e Problemas
Guia Eclipse NSA
Guia Eclipse NSA
Marcadores:
debug,
eclipse,
problemas,
smarty,
smartypdt,
subversion,
subversive
sexta-feira, 16 de abril de 2010
Software a ser instalado após formatação
Pacotes a serem instalados
Atenção! Alguns pacotes não estão mais no repositório padrão do Ubuntu a partir da versão 10.04. Para eles estarem disponíveis siga estes passos:
Ferramentas NSA (encontrados no "docs/ferramentas")
Atenção! Alguns pacotes não estão mais no repositório padrão do Ubuntu a partir da versão 10.04. Para eles estarem disponíveis siga estes passos:
- Synaptic->Configuração->Repositórios->Outro software
- Selecione o repositório "partner" e clique em Fechar
- Clique em Recarregar. Agora o sun-java6-jdk irá aparecer.
- build-essentials
- rpl
- guake
- acroread
- openssh-server
- apache2
- php5
- php5-gd
- php5-cli
- php5-ldap
- php5-mysql
- php5-pgsql
- php5-xdebug
- php5-curl
- postgresql
- mysq-server
- sun-java6-jdk
- Rodar o comando "sudo update-alternatives --config java" para escolher o Java da SUN
- subversion
- vim
- alien
- Pacote opcional para instalar pacotes RPM (Red Hat). Para usar o alien faça: sudo alien -i pacote.rpm
Ferramentas NSA (encontrados no "docs/ferramentas")
- Billfish
- Astah
- DbDesigner Fork
- Eclipse PDT
- Plugin SubVersive (SvnKit connector)
- Plugin SmartyPDT
Marcadores:
instalação,
pacotes,
ubuntu
segunda-feira, 12 de abril de 2010
Instalação do PostgreSQL 8.2 no Ubuntu 9.04 ou superior
Para instalar o PostgreSQL 8.2.x no Ubuntu 9.04 ou superior, os seguintes passos devem ser seguidos:
1) Entrar no gerenciador de pacotes Synaptic;
2) Entrar em 'Configurações', e depois em 'Repositórios';
3) Na aba 'Programas de terceiros', clicar em 'Adicionar' e preencher com:
deb http://cz.archive.ubuntu.com/ubuntu hardy main universe
ou o mirror brasileiro
deb http://sft.if.usp.br hardy main universe
4) Confirmar inclusão do repositório;
5) Verificar se o repositório novo está selecionado na aba 'Programas de terceiros';
6) Na tela principal do Synaptic clicar em 'Recarregar';
7) Após os Synaptic recarregar as informações dos pacotes, pesquisa por PostgreSQL;
8) Selecione a opção 'postgresql-8.2';
9) Clique em 'Aplicar';
10) Após a instalação do ocorrer, entre novamente na tela de configuração de repositórios (Passo 2);
11) Desmarque o repositório do Ubuntu Hardy;
12) Recarregue os pacotes novamente;
13) Fim.
1) Entrar no gerenciador de pacotes Synaptic;
2) Entrar em 'Configurações', e depois em 'Repositórios';
3) Na aba 'Programas de terceiros', clicar em 'Adicionar' e preencher com:
deb http://cz.archive.ubuntu.com/ubuntu hardy main universe
ou o mirror brasileiro
deb http://sft.if.usp.br hardy main universe
4) Confirmar inclusão do repositório;
5) Verificar se o repositório novo está selecionado na aba 'Programas de terceiros';
6) Na tela principal do Synaptic clicar em 'Recarregar';
7) Após os Synaptic recarregar as informações dos pacotes, pesquisa por PostgreSQL;
8) Selecione a opção 'postgresql-8.2';
9) Clique em 'Aplicar';
10) Após a instalação do ocorrer, entre novamente na tela de configuração de repositórios (Passo 2);
11) Desmarque o repositório do Ubuntu Hardy;
12) Recarregue os pacotes novamente;
13) Fim.
Marcadores:
hardy,
postgresql,
synaptic,
tutorial,
ubuntu
sexta-feira, 21 de agosto de 2009
Ubuntu: Usar SSMTP ao invés de Sendmail
Desinstalar o Sendmail e começar a utilizar o SSMTP. Instrucoes:
1) Desmarcar todos pacotes com o NOME sendmail*
2) Instalar o pacote SSMTP.
3) Editar o arquivo /etc/ssmtp/ssmtp.conf e mexer nas seguintes linhas:
mailhub=correio.intra.faccat.br
FromLineOverride=YES (apenas descomentar)
4) Reiniciar a máquina.
1) Desmarcar todos pacotes com o NOME sendmail*
2) Instalar o pacote SSMTP.
3) Editar o arquivo /etc/ssmtp/ssmtp.conf e mexer nas seguintes linhas:
mailhub=correio.intra.faccat.br
FromLineOverride=YES (apenas descomentar)
4) Reiniciar a máquina.
quinta-feira, 25 de setembro de 2008
Primeiros passos após a instalação do Apache
Adicione os alias para os projetos do NSA:
$ sudo gedit /etc/apache2/sites-available/default
#Exemplo de alias:
Alias /sagaproducao "/projetos/sagaproducao/sistema/web"
Feito isto reinicie o Apache:
$ sudo /etc/init.d/apache2 restart
Fim.
$ sudo gedit /etc/apache2/sites-available/default
#Exemplo de alias:
Alias /sagaproducao "/projetos/sagaproducao/sistema/web"
Feito isto reinicie o Apache:
$ sudo /etc/init.d/apache2 restart
Fim.
Marcadores:
apache,
instalação,
ubuntu
terça-feira, 23 de setembro de 2008
Primeiros passos após a instalação do PostgreSQL
ATENÇÃO! Antes de configurar o PostgreSQL faça a configuração do Locale!
# entra no psql com o usuário[SO] "postgres"
$ sudo su postgres -c psql template1
# altera senha do usuário[SGBD] "postgres"
template1=# ALTER USER postgres WITH PASSWORD 'novaSenha';
template1=# \q
# altera senha do usuário[SO] "postgres"
$ sudo passwd -d postgres
$ sudo su postgres -c passwd
# cria usuário local e seu banco de dados
$ sudo su postgres -c "createuser -P --superuser --createdb novousuario"
$ createdb novousuario
Pronto, agora você já pode digitar somente "psql" no terminal com seu próprio usuário e usar o PostgreSQL.
# entra no psql com o usuário[SO] "postgres"
$ sudo su postgres -c psql template1
# altera senha do usuário[SGBD] "postgres"
template1=# ALTER USER postgres WITH PASSWORD 'novaSenha';
template1=# \q
# altera senha do usuário[SO] "postgres"
$ sudo passwd -d postgres
$ sudo su postgres -c passwd
# cria usuário local e seu banco de dados
$ sudo su postgres -c "createuser -P --superuser --createdb novousuario"
$ createdb novousuario
Pronto, agora você já pode digitar somente "psql" no terminal com seu próprio usuário e usar o PostgreSQL.
Marcadores:
instalação,
postgresql,
ubuntu
quinta-feira, 10 de julho de 2008
segunda-feira, 12 de maio de 2008
Usando ISO-8859-1 no Ubuntu Hardy
O Ubuntu Hardy vem por padrão com UTF-8. Para usá-lo em ISO-8859-1 faça:
sudo /usr/share/locales/install-language-pack pt_BR
sudo update-locale LANG="pt_BR.ISO-8859-1" LC_COLLATE="C"
# Reiniciar computador...
sudo dpkg-reconfigure locales
# Caso você utiliza PostgreSQL, depois de instalar o PostgreSQL deve ser executado os comandos abaixo: (ATENÇÃO, você vai perder todas as bases de dados!)
sudo pg_dropcluster --stop 8.2 main
sudo pg_createcluster --start 8.2 main
Foi utilizado LC_COLLATE="C" por causa do problema de ordenação do Linux (libc) que ignora espaços em branco (mais informações).
sudo /usr/share/locales/install-language-pack pt_BR
sudo update-locale LANG="pt_BR.ISO-8859-1" LC_COLLATE="C"
# Reiniciar computador...
sudo dpkg-reconfigure locales
# Caso você utiliza PostgreSQL, depois de instalar o PostgreSQL deve ser executado os comandos abaixo: (ATENÇÃO, você vai perder todas as bases de dados!)
sudo pg_dropcluster --stop 8.2 main
sudo pg_createcluster --start 8.2 main
Foi utilizado LC_COLLATE="C" por causa do problema de ordenação do Linux (libc) que ignora espaços em branco (mais informações).
Marcadores:
iso-8859-1,
postgresql,
ubuntu,
utf-8
Assinar:
Postagens (Atom)
.jpg)