локали сломаны на Beaglebone Black работает Debian

Итак, все это началось, когда я хотел установить свой собственный демон на моем Beaglebone Black под управлением Debian с помощью update-rc.d mydaemon defaults 97 как я делал много раз во время его развития на моем хозяине монетного двора. И меня приветствуют:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
   LANGUAGE = (unset),
   LC_ALL = (unset),
   LC_PAPER = "es_CL.UTF-8",
   LC_ADDRESS = "es_CL.UTF-8",
   LC_MONETARY = "es_CL.UTF-8",
   LC_NUMERIC = "es_CL.UTF-8",
   LC_TELEPHONE = "es_CL.UTF-8",
   LC_IDENTIFICATION = "es_CL.UTF-8",
   LC_MEASUREMENT = "es_CL.UTF-8",
   LC_NAME = "es_CL.UTF-8",
   LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
update-rc.d: using dependency based boot sequencing

который я впоследствии пытался исправить с помощью dpkg-reconfigure locales, на что он отвечает

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_MONETARY = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LANG = "en_US.UTF-8"
     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
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.ISO-8859-1...locale alias file `/usr/share/locale/locale.alias' not found: No such file or directory
 done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_MONETARY = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_PAPER = "es_CL.UTF-8",
    LANG = "C"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_MONETARY = "es_CL.UTF-8",
    LC_ADDRESS = "es_CL.UTF-8",
    LC_TELEPHONE = "es_CL.UTF-8",
    LC_NAME = "es_CL.UTF-8",
    LC_MEASUREMENT = "es_CL.UTF-8",
    LC_IDENTIFICATION = "es_CL.UTF-8",
    LC_NUMERIC = "es_CL.UTF-8",
    LC_PAPER = "es_CL.UTF-8",
    LANG = "C"
     are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Я понятия не имею, как это исправить, поскольку он отказывается позволить мне установить какие-либо пакеты или обновить что-нибудь...
У кого-нибудь есть идеи? Я в тупике...

п.С. Я видел настройка локалей в Debian и это не работает для меня (т. е. source /etc/default/locale)

p.p.s Я также проверил /etc/locales.gen shell и en_US.UTF-8 UTF-8 раскомментировано, как и должно быть, и скрипт оболочки предлагает запустить locale-gen и я

Generating locales (this might take a while)...
en_US.UTF-8...locale alias file `/usr/share/locale/locale.alias' not found: No such file or directory
5
задан Community
источник

1 ответов

Итак, после просмотра всех руководств Debian и сборки BeagleBone я наконец понял, что произошло! Я подумал, что поставлю это на случай, если кто-нибудь столкнется с этой проблемой. Чтобы исправить локали, мне нужно было вручную переписать /etc/default/locale файл с: (если ваш в Северной Америке, например, вы будете использовать " en_US.UTF-8 " для всех).

LANG="en_US.UTF-8"
LC_NUMERIC="es_CL.UTF-8"
LC_MONETARY="es_CL.UTF-8"
LC_PAPER="es_CL.UTF-8"
LC_NAME="es_CL.UTF-8"
LC_ADDRESS="es_CL.UTF-8"
LC_TELEPHONE="es_CL.UTF-8"
LC_MEASUREMENT="es_CL.UTF-8"
LC_IDENTIFICATION="es_CL.UTF-8"

нужно обеспечить shell скрипт /etc/locale.gen имеет все локали, которые вы собираетесь использовать раскомментированные т. е. sudo nano /etc/locale.gen.

затем вам нужно исправить символическую ссылку, которую locales ожидает, что ядро должно было сделать при установке, это делается: sudo ln -s /etc/locale.alias /usr/share/locale/locale.alias

в конце концов dpkg-reconfigure locales чтобы исправить связывание, и теперь все должно работать нормально.

(на стороне записки: я понял позже, что update-rc.d является устаревшим инструментом в более поздних выпусках Debian, например, на BeagleBone black, daemon shell должен быть установлен с помощью insserv mydaemon а)

3
отвечен Chris 2017-01-26 16:13:29
источник

Другие вопросы arm beaglebone debian linux locale