Всякий раз, когда я пытаюсь запустить инструмент программирования meld
, я получаю следующую ошибку:
Traceback (most recent call last):
File "/usr/bin/meld", line 75, in <module>
locale.setlocale(locale.LC_ALL,'')
File "/usr/lib/python2.7/locale.py", line 540, in setlocale
return _setlocale(category, locale)
Из того, что я прочитал, кажется, что мои настройки локали отключены, и действительно, когда я запускаю locale -a
Я получаю:
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
C
C.UTF-8
POSIX
Точно так же, когда я запускаю простой старый 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
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
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 apt-get install language-pack-en-base
I get:
The following packages have unmet dependencies:
language-pack-en-base : Depends: locales (>= 2.3.6) but it is not going to be installed
и когда я пытаюсь sudo apt-get install locales
, я получаю:
The following packages have unmet dependencies:
libc6 : Breaks: locales (< 2.18) but 2.13+git20110622-2 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Если я попробую то же самое в Synaptic, я вижу, что установка locales
будет удалять, по-видимому, каждый package в моей системе (включая apt)!
Я подумал, что, возможно, мои источники были испорчены, поэтому я вынул все, кроме основных «old-releases.ubuntu.com», перезагрузил и попытался снова, но это не помогло.
Итак, кто-нибудь может помочь мне объяснить, как я могу:
A) исправить meld
, не возиться со всеми этими локалями?
или
B) заставить language-pack-en-base
установить без удаления остальных моих пакетов?
Ваша проблема состоит в том, что переменная среды ЛЕНГА установлена на en_US.UTF-8, в то время как никакая локаль с тем именем не была сгенерирована. Зафиксируйте его путем выполнения:
sudo locale-gen en_US.UTF-8
Я решил этот экспорт задач LC_ALL
с моим языком устанавливает определение. Поскольку американские английские UTF-8 делают:
$ export LC_ALL="en_US.UTF-8"