Alterar as configurações de localidade do Ubuntu por GUI trava o daemon de contas

1

Eu estou usando o Ubuntu 12.04 e depois de uma atualização automática ele mudou a forma padrão de codificação do sistema UTF-8 para "ANSI_X3.4-1968". Eu percebi que quando meus comentários de código no Eclipse apareceram com caracteres estranhos, e depois de perceber que o IDE era inocente, eu abri um terminal para verificar. Quando eu digito caracteres latinos em uma janela de terminal, como çãõéèê ..., um ponto de interrogação é exibido. O mesmo é eu 'cat' um arquivo de texto. Alterar as configurações de localidade do Ubuntu por GUI trava o daemon de contas:

ExecutablePath: /usr/bin/gnome-language-selector
ProcCmdline: /usr/bin/python /usr/bin/gnome-language-selector
...
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking      message, timeout)
DBusException: org.freedesktop.Accounts.Error.Failed: running '/usr/share/language-tools/save-to-pam-env' failed: no output

Alterei o save-to-pam-env adicionando uma linha de depuração e executei o seletor de idioma em um terminal:

gag@desktop~> /usr/bin/python /usr/bin/gnome-language-selector
(gnome-language-selector:17733): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pt_BR"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
...same message a dozen times...
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
/usr/lib/python2.7/dist-packages/LanguageSelector/gtk/GtkLanguageSelector.py:858: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  self._localeinfo.translate(loc, native=True) == defaultLangName):
  //the line below is my debug 'print'
  exec: /usr/share/language-tools/save-to-pam-env /home/likewise-open/CERTI/gag pt_BR.UTF-8 

Então, executando este comando manualmente:

gag@desktop~> /usr/share/language-tools/save-to-pam-env /home/likewise-open/CERTI/gag pt_BR.UTF-8
pt_BR.UTF-8
gag@ccd-7840~> locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
gag@desktop~> cat .pam_environment 
LANGUAGE=en
LANG=en_US.UTF-8
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_MONETARY=pt_BR.UTF-8
LC_PAPER=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8

Tudo parece bem, mas reiniciar o PC e fazer login novamente ainda é o mesmo. Por CLI, posso ver que as localidades estão corretamente instaladas:

gag@desktop~> locale -a | grep pt
pt_BR.utf8
pt_PT.utf8
gag@desktop~> locale -m | grep UTF
UTF-8

Eu também tentei:

sudo apt-get install language-pack-pt language-pack-pt-base
sudo apt-get install --reinstall locales

Sem efeito. Quando eu faço login com outra conta, a codificação é ok. Idéias?

    
por gabriel_agm 03.04.2013 / 16:02

1 resposta

0

Acontece que minha configuração "~ / .pam_environment" não está sendo lida. Eu tenho feito uma solução configurando isso no meu arquivo ~ / .profile:

export LC_COLLATE="C"
export LANG="en_US.UTF-8"
export LC_ALL="pt_BR.UTF-8"

Embora o uso de LC_ALL não seja recomendado na entrada do tipo "locale".

A única causa que eu encontrei para o googli'n ser o .pam_environment sendo ignorado é o diretório home. encriptação usyng ecryptfs - e esse não é o meu caso.

De qualquer forma, está funcionando, então seja.

    
por 08.04.2013 / 14:47