FreeBSD/Perl
Perl †
標準インストールでインストールした場合、perlを実行するたび
に警告メッセージが発せられるのを抑止する。
こんな警告メッセージが出ます。
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "ja_JP.ujis" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
環境 †
OS FreeBSD5.4 Perl Perl5.8.6
対処 †
環境変数 PERL_BADLANG を設定することで抑制することができる
- csh 系: setenv PERL_BADLANG 0
- sh 系: PERL_BADLANG=0; export PERL_BADLANG
- もしくは ./Configure -U d_setlocale してから make しましょう.
$ vi ~/.cshrc ------------追加分------------------ setenv PERL_BADLANG 0 ------------追加分------------------ $ vi ~/.bash_profile ------------追加分------------------ PERL_BADLANG=0; export PERL_BADLANG ------------追加分------------------
BIOS画面での時間と、OS内の時間が違っていた場合こんなエラーがでてperlがうまく使えません。 †
==> Your Makefile has been rebuilt. <== ==> Please rerun the make command. <== false *** Error code 1
BIOSの時間を合わせて、perlを入れ直せばOK †
# cd /usr/ports/lang/perl5.8 # make deinstall # make reinstall
原因は? †
(多分) perlは起動時に LC_ALL, LC_CTYPE, LANG を検査する。 上の例では ja_JP.eucJP が設定されているので、 /usr/share/local/ja_JP.eucJP 以下を捜査するが、 対応するファイルが LC_CTYPEしかない。 % ls /usr/share/locale/ja_JP.eucJP LC_CTYPE 試しに、LC_ALL, LANGを unsetenv して試すとwarningは出ない。 黙らすには3つの方法がある。 1番 /usr/share/locale の適切な場所に LC_ALL, LANGのカタログを作る 2番 perlとしては LC_CTYPEだけ設定してればよいので、他をunsetenvする 3番 % setenv PERL_BADLANG 0