web-dev-qa-db-ja.com

Debianを実行しているBeagleboneBlackで壊れたロケール

つまり、これはすべて、MintHostでの開発中に何度も行ったようにupdate-rc.d mydaemon defaults 97を使用してDebianを実行しているBeagleboneBlackにカスタムデーモンをインストールしたいときに始まりました。そして、私は次のように迎えられます:

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").

パッケージのインストールや更新を拒否するため、これを修正する方法がわかりません...誰かアイデアはありますか?私は困惑しています...

p.s.私は 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
2
Chris

それで、すべての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"

次に、シェルスクリプト/etc/locale.genに、コメントなしで使用する予定のすべてのロケール、つまりSudo nano /etc/locale.genが含まれていることを確認する必要があります。

次に、ロケールが期待するシンボリックリンクを修正する必要があります。これは、カーネルがインストール時に作成する必要があります。これは、次の方法で実行されます。Sudo ln -s /etc/locale.alias /usr/share/locale/locale.alias

最後にdpkg-reconfigure localesを実行してリンクを修正すると、すべてが正常に実行されているはずです。

(補足:update-rc.dは、BeagleBone blackのような、後のDebianリリースのレガシーツールであることに後で気付きました。代わりにinsserv mydaemonを使用してデーモンシェルをインストールする必要があります)

4
Chris