Як виправити локальну помилку


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=

1
На це вже відповіли тут askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue Підсумок: визначте LC_ALL в / etc / default / locale
h7r

Відповіді:


6

debootstrapЧи не створює локаль. Тож ми використовуємо щось інше як локальний. Використовуйте цю команду:

sudo locale-gen en_US.ISO-8859-1

Я сподіваюся, що це допомагає!


Ні, aptitudeтакож діє. Ваша відповідь не внесе жодних змін до ОП.
Данатела

2
Хоча це може вирішити локальну помилку, вона дає вам систему з кодуванням latin1, що не підходить для Ubuntu.
Gunnar Hjalmarsson

Також у ~/.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

інакше ви зіткнетеся з різними сюрпризами, пов’язаними з локальними.


Ви впевнені, що саме цим користуєтесь? Звідки ти знаєш?
користувач1527227

@ user1527227: Ну, майже. ;) Тому що AFAIK en_US.UTF-8поставляється заздалегідь створеним на кожному робочому столі Ubuntu. Але ви можете легко перевірити це, запустивши locale -aкоманду. Було б добре, якби ви відредагували питання та додали вихід цієї команди.
Gunnar Hjalmarsson

я додав інформацію, яку ви запитували.
користувач1527227

1
@ user1527227: Гаразд, і там ми можемо побачити en_US.utf8у locale -aвисновку. Моя порада для переходу від en_US.ISO-8859-1до en_US.UTF-8стендів.
Gunnar Hjalmarsson

Дякую. Ви знаєте, як саме це зробити? Я не бачу /etc/default/locale. Чи можу я просто бігати sudo locale-gen en_US.utf8?
користувач1527227

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

Ось сценарій, який вирішує проблему з локальною локальністю




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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.