Rss

  • youtube
  • linkedin
  • google

Como corrigir erro de LOCALE no Linux Debian/Ubuntu

Hoje precisei olhar os logs de um servidor FTP que roda sob o pure-ftp e percebi que os horários estavam todos em UTC .
Como eu precisava enviar parte dos logs a um terceiro que faz uso dele e não está familiarizado com sistemas, poderia acabar ocorrendo algum mal entendido. Resolvi então que deveria manter os logs de todas as aplicações no fuso horário brasileiro.
De acordo com a documentação do pure-ftp ele utiliza as variáveis de ambiente para determinar qual será o horário incluído nos logs

e a única configuração é a se deve utilizar GMT ou não e por padrão ele usa NO.

NOTA: Esse problema também acontece para diversos programas perl.

Então o passo correto é verificar se o locale do servidor (ou da sessão que usarei para iniciar o serviço do FTP) está em pt_BR. Não estava.

Usei a receita básica para modificar o locale. (Segue abaixo se quiser fazer o mesmo).

  • Adicionar as entrada do idioma nos arquivos de locale do debian (deve ser o mesmo para Ubuntu).
# Eco "pt_BR ISO-8859-1" >;>; /var/lib/locales/supported.d/local

# Eco "pt_BR pt_BR. ISO-8859-1" >;>; /etc/locale.alias

  • Abrir o arquivo de definições de ambiente /etc/meio ambiente e /localidade/etc/padrão e incluir como entradas abaixo
LANG ="pt_BR"
LÍNGUA ="pt_BR:pt:pt-br"

  • E por último executar os comandos
# locale-gen
# dpkg-reconfigure locales

Correu tudo Okey. Quando executei locale ficou assim:

# localidade de localidade: Não é possível definir LC_CTYPE para localidade padrão: Nenhum tal lima ou diretório localidade: Não é possível definir LC_MESSAGES para localidade padrão: Nenhum tal lima ou diretório localidade: Não é possível definir LC_ALL para localidade padrão: Nenhum tal lima ou diretório LANG = pt_BR LANGUAGE = pt_BR:pt:pt LC_CTYPE ="pt_BR"
LC_NUMERIC ="pt_BR"
LC_TIME ="pt_BR"
LC_COLLATE ="pt_BR"
LC_MONETARY ="pt_BR"
LC_MESSAGES ="pt_BR"
LC_PAPER ="pt_BR"
LC_NAME ="pt_BR"
LC_ADDRESS ="pt_BR"
LC_TELEPHONE ="pt_BR"
LC_MEASUREMENT ="pt_BR"
LC_IDENTIFICATION ="pt_BR"
LC_ALL =

e ao tentar reiniciar o serviço de FTP

# Reinicie o serviço pure-ftpd reiniciando FTP XXXXXX: perl: aviso: Localidade de configuração falhada.
perl: aviso: Por favor, verifique suas configurações de localidade:
 LÍNGUA = (unset),
 LC_ALL = (unset),
 LANG = "pt_BR"
 são suportados e instalado em seu sistema.
perl: aviso: Voltando para a localidade padrão ("C").
Em execução: /usr/sbin/pure-ftpd - l puredb:/etc/pure-ftpd/DB/pureftpd.pdb - O clf:/var/log/pure-ftpd/Transfer.log - um -E -u 1000 -B

Depois de várias tentativas de corrigir, consegui fazendo o seguinte:

Executei os comandos

# export LANGUAGE=pt_BR. UTF-8

# export LANG=pt_BR. UTF-8

# export LC_ALL=pt_BR. UTF-8

# locale-gen pt_BR. UTF-8 Generating locales...
 pt_BR. UTF-8... up-to-date Generation complete.
# dpkg-reconfigure locales  en_US. ISO-8859-1... done  en_US. UTF-8... done  pt_BR. UTF-8... up-to-date Generation complete.

Após isso, o serviço FTP iniciou normalmente conforme as informações abaixo.

# service pure-ftpd restart Restarting FTP XXXXXXX: Em execução: /usr/sbin/pure-ftpd - l puredb:/etc/pure-ftpd/DB/pureftpd.pdb - O clf:/var/log/pure-ftpd/Transfer.log - um -E -u 1000 -B



Deixe uma resposta

O seu endereço de email não será publicado.

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.