как исправить ошибку локали

11

Я только что сделал новую установку Ubuntu с помощью debootstrap. Когда я это делаю sudo aptitude upgrade, я получаю это сообщение об ошибке:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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_ALL to default locale: No such file or directory

Может кто-нибудь сказать, пожалуйста, как решить эту проблему? Я вижу много сообщений, похожих на это онлайн, но ни одна из них, кажется, не решает проблему.

Я использую Ubuntu 14.04 LTS. Благодарю.


FYI:

$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

и

$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=
user1527227
источник
1
Это был дан ответ здесь уже askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue Резюме: определить LC_ALL на / и т.д. / по умолчанию / локаль
h7r

Ответы:

6

debootstrapНе создает локаль. Поэтому мы используем что-то еще в качестве локали. Используйте эту команду:

sudo locale-gen en_US.ISO-8859-1

Надеюсь, это поможет!


источник
Нет, aptitudeдействует тоже. Ваш ответ не даст никаких изменений в ОП.
Данатела
2
Хотя это может устранить ошибку локали, она дает вам систему с кодировкой latin1, которая не подходит для Ubuntu.
Гуннар Хьялмарссон
Кроме того, ~/.kde.env/setlocale.shвы установилиexport LANG=en_US.UTF-8
user1527227
11

Рабочий стол Ubuntu должен быть настроен с кодировкой UTF-8. По какой-то причине ваша система пытается установить языковой стандарт latin1 en_US.ISO-8859-1. Вы должны действительно изменить это.

Может быть, настройка происходит в /etc/default/locale.

Где бы это ни произошло, измените его на

LANG=en_US.UTF-8

или же вы столкнетесь с различными локалями, связанными с сюрпризами

Гуннар Хьялмарссон
источник
Вы уверены, что это тот, который нужно использовать? Откуда вы знаете?
user1527227
@ user1527227: Ну, почти. ;) Потому что AFAIK en_US.UTF-8предварительно генерируется на каждом рабочем столе Ubuntu. Но вы можете легко проверить это, выполнив locale -aкоманду. Было бы хорошо, если бы вы отредактировали вопрос и добавили вывод этой команды.
Гуннар Хьялмарссон
я добавил информацию, которую вы запрашивали.
user1527227
1
@ user1527227: Хорошо, и мы можем видеть en_US.utf8в locale -aвыводе. Мой совет для перехода от en_US.ISO-8859-1к en_US.UTF-8стендам.
Гуннар Хьялмарссон
Спасибо. Вы знаете, как именно это сделать? Я не вижу /etc/default/locale. Могу я просто бежать sudo locale-gen en_US.utf8?
user1527227
8

Постоянное решение проблемы локали - экспорт переменных локали в .bash_profileфайл. Вы также можете использовать /etc/profileфайл вместо .bash_profile.

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Не забудьте и следовать сценарию в легкой установке.source.bash_profile

Вот скрипт, который решает проблему локали

Аджит Хан
источник
3

Это работает для меня.

  1. export LANGUAGE=en_US.UTF-8
  2. export LANG=en_US.UTF-8
  3. export LC_ALL=en_US.UTF-8
  4. sudo locale-gen en_US.UTF-8
  5. sudo dpkg-reconfigure locales
Айрат Казанбаев
источник
1

Что сработало для меня так:

export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales

Для постоянного решения вы можете поставить

export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8

в вашем .zshrcили.bashrc

ссылка

  1. https://jee-appy.blogspot.com/2016/02/set-locale-on-ubuntu-permanent-solution.html
  2. https://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian
alpha_989
источник