LoginSignup
3
4

More than 5 years have passed since last update.

Gentooでlocale周りのエラーが出た場合

Posted at

Gentooで /etc/env.d/02locale が正しく設定されてなくてlocale周りのエラーが出たので対処方法をメモ。


USEフラグの管理にはflaggieを使いますが、こんな感じのエラーを吐いてしまいました。

localhost ~ # flaggie -perl dev-vcs/git
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.3/flaggie", line 25, in <module>
    sys.exit(main(sys.argv))
  File "/usr/lib64/python3.3/site-packages/flaggie/cli.py", line 80, in main
    locale.setlocale(locale.LC_ALL, '')
  File "/usr/lib64/python3.3/locale.py", line 541, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

さっそくlocale設定を確認。

localhost ~ # eselect locale list
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
Available targets for the LANG variable:
  [1]   C
  [2]   POSIX
  [3]   en_US
  [4]   en_US.iso88591
  [5]   en_US.utf8
  [6]   ja_JP
  [7]   ja_JP.eucjp
  [8]   ja_JP.ujis
  [9]   ja_JP.utf8
  [10]  japanese
  [11]  japanese.euc
  [ ]   (free form)

設定されてないですね。
ja_JP.utf8 にでも設定して、 env-update && source /etc/profice

localhost ~ # eselect locale set 9
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
Setting LANG to ja_JP.utf8 ...
Run ". /etc/profile" to update the variable in your shell.
localhost ~ # env-update 
>>> Regenerating /etc/ld.so.cache...
localhost ~ # source /etc/profile

しかし同じエラーが・・・。
なんか LC_ALL を読もうとして失敗してる…?

localhost ~ # flaggie 
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.3/flaggie", line 25, in <module>
    sys.exit(main(sys.argv))
  File "/usr/lib64/python3.3/site-packages/flaggie/cli.py", line 80, in main
    locale.setlocale(locale.LC_ALL, '')
  File "/usr/lib64/python3.3/locale.py", line 541, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

eselect locale set で設定されるのは LANG だけのようなので、

localhost ~ # grep -E '^\s*[^#;]' /etc/env.d/02locale 
LANG="ja_JP.utf8"

LC_ALL を書いてみます。
再び env-update && source /etc/profice

localhost ~ # vi /etc/env.d/02locale 
localhost ~ # grep -E '^\s*[^#;]' /etc/env.d/02locale 
LC_ALL="ja_JP.utf8"
LANG="ja_JP.utf8"
localhost ~ # env-update 
>>> Regenerating /etc/ld.so.cache...
localhost ~ # source /etc/profile

こんどはうまくいきました♪
flaggie って色んなオプションあるんですね。

localhost ~ # flaggie 
Synopsis:
flaggie [<options>] [<global-actions>] [<packages> <actions>] [...]

Options:
    --quiet         Silence argument errors and warnings
    --strict        Abort if at least a single flag is invalid

    --drop-ineffective  Drop ineffective flags (those which are
                overriden by later declarations)
    --sort-entries      Sort package.* file entries by package
                (please note this will drop comments)
    --sort-flags        Sort package.* flags by name
    --sort          Shorthand for --sort-entries and --sort-flags
    --cleanup       Shorthand for --drop-ineffective and --sort

    --drop-unmatched-pkgs   Drop packages which no longer are available
                in portdb
    --drop-unmatched-flags  Drop flags which are not found in package's
                IUSE, KEYWORDS and/or LICENSE variables
    --destructive-cleanup   Shorthand for all of the above

    --migrate-files     Migrate the outdated files to newer variants
                (package.keywords -> package.accept_keywords)

Global actions are applied to the make.conf file. Actions are applied to
the package.* files, for the packages preceding them.

An action can be one of:
    +arg    explicitly enable arg
    -arg    explicitly disable arg
    %arg    reset arg to the default state (remove it from the file)
    ?arg    print the effective status of arg (due to the file)

The action argument must be either a USE flag, a keyword or a license name.
For the '%' and '?' actions, it can be also one of 'use::', 'kw::' or 'lic::'
in order to apply the action to all of the flags, keywords or licenses
respectively.

A package specification can be any atom acceptable for Portage (in the same
format as taken by emerge).
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4