
Я использую Manjaro Gnome и установил некоторые обновления с помощью менеджера пакетов. С тех пор я получаю эти сообщения в консоли:
manpath: can't set the locale; make sure $LC_* and $LANG are correct
(anon):12: character not in range
manpath: can't set the locale; make sure $LC_* and $LANG are correct
Запуск 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_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE=
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
При запуске sudo locale-gen
я получаю сообщение об ошибке, что файлы или каталоги не существуют.
Generating locales...
de_DE.UTF-8...failed to set locale!
[error] cannot open locale definition file `i18n_ctype': No such file or directory
de_DE.UTF-8 UTF-8
когда я закомментирую /etc/locale.gen
(тогда единственная незакомментированная строка — это en_US.UTF-8 UTF-8
), я получаю:
Generating locales...
en_US.UTF-8...failed to set locale!
[error] cannot open locale definition file `en_GB': No such file or directory
Это содержание /usr/share/i18n/locales
:
de_DE translit_combining
en_US translit_compat
i18n translit_font
iso14651_t1 translit_fraction
iso14651_t1_common translit_hangul
iso14651_t1_pinyin translit_narrow
translit_circle translit_neutral
translit_cjk_compat translit_small
translit_cjk_variants translit_wide
Итак, похоже, что файлы действительно en_GB
отсутствуют i18n_ctype
(хотя я не уверен, должны ли они быть в этой папке)
Также, если я пойду вНастройки->Регион и язык, я не могу изменитьЯзык(там написано Unspecified [ANSI_X3.4-1968]
. Если я нажму на него, то в списке нечего будет выбратьВыберите языкнеожиданно возникнуть.
Я нашел в сети, что проблема может быть в glibc
(и, согласно истории, glibc
была переустановлена во время обновления, которое я запустил [2020-08-11T18:49:33+0200] [ALPM] reinstalled glibc (2.31-5)
). Однако я не знаю, как это исправить. В менеджере пакетов нет кнопки переустановки для glibc, и я не хочу проводить никаких экспериментов, которые могут закончиться еще большим беспорядком.
Есть ли способ переустановить/сбросить языковые файлы?
Обновлять
Я использую NoExtract
его /etc/pacman.conf
для экономии места на жестком диске, как описано в [Arch wiki] (https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Установка_только_контента_на_необходимых_языках)
NoExtract = usr/share/help/* !usr/share/help/en*
NoExtract = usr/share/gtk-doc/html/*
NoExtract = usr/share/locale/* usr/share/X11/locale/* usr/share/i18n/* opt/google/chrome/locales/*
NoExtract = !*locale*/en*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/en_US !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = !*locale*/de*/* !usr/share/i18n/charmaps/UTF-8.gz !usr/share/*locale*/locale.*
NoExtract = !usr/share/*locales/de_DE !usr/share/*locales/i18n !usr/share/*locales/iso*
NoExtract = !usr/share/*locales/trans*
NoExtract = usr/share/qt4/translations/*
NoExtract = usr/share/man/* !usr/share/man/man*
NoExtract = usr/share/vim/vim*/lang/*
NoExtract = usr/lib/libreoffice/help/en-US/*
Интересно, является ли это частью проблемы, возможно, при переустановке glibc некоторые файлы были пропущены.
решение1
Редактировать
/etc/locale.gen
:Раскомментируйте строку с вашим:
locale en_US.UTF-8
бегать
sudo locale-gen
Кредит:https://nanxiao.me/en/fix-locale-configuration-issue-on-arch-linux/
решение2
Теперь я нашел решение. Я не думаю, что это лучший способ, но, похоже, он мне подходит.
Я скачалпакет glibcи вручную скопировал отсутствующие файлы ( en_GB
и i18n_ctype
) в /usr/share/i18n/locales/
.
А потом бегиsudo locale-gen
решение3
Вы можете вернуть его, /etc/locale.gen
переустановив glibc
пакет. Это создаст новый файл при установке.
решение4
В моем случае проблема была вызвана тем KDE Plasma Settings Manager
, что я настроил локаль на несуществующую конфигурацию.
Во время установки Manjaro я выбрал Finland/English
там, потому что он был доступен. Почему бы и нет? Он решает, fi_EN.UTF-8
что оказывается по меньшей мере бессмыслицей, так как glibc
не содержит такого комбо.
Вы можете составить список glibc
языков, проверяющих файлы пакетов, следующим образом:
pacman -Ql glibc | grep fi_
Что в моем случае показало эти два:
glibc /usr/share/i18n/locales/fi_FI
glibc /usr/share/i18n/locales/fi_FI@euro
fi_FI
правильный, а не ни то, ни fi_EN
другое fi_US
. Позор тебе, Плазма.
Замените grep fi_
в команде выше, чтобы найти нужный язык, например, для польского: grep pl_
, немецкого: grep de_
и т. д.
Затем сравните его с результатом locale
вызова команды. В моем случае мне нужно было исправить его, отредактировав /etc/locale.gen
. Вы можете следовать устранению неполадок Manjaro:
https://wiki.manjaro.org/index.php/Locale
Или, скорее, в Википедии Холли Арч: