@H_403_8@
我有一个厨师食谱,通过执行以下 *** 作来设置区域设置:@H_403_8@
@H_403_8@
template "/etc/profile.d/lang.sh" do source "lang.sh.erb" mode "0644"endexecute "locale-gen" do command "locale-gen en_US.UTF-8"endexecute "dpkg-reconfigure-locales" do command "dpkg-reconfigure locales"end
其中lang.sh.erb看起来像:@H_403_8@
@H_403_8@
export LANGUAGE="en_US.UTF-8"export LANG="en_US.UTF-8"export LC_ALL="en_US.UTF-8"
这会正确设置区域设置,但遗憾的是它不会修改当前环境.所以我有另一个配方,在包含postgresql之前设置ENV@H_403_8@
@H_403_8@
ENV["LANGUAGE"] = ENV["LANG"] = ENV["LC_ALL"] = "en_US.UTF-8"include_recipe "postgresql::server"
这没有效果.语言环境设置正确:@H_403_8@
@H_403_8@
postgres@precise64:~$localeLANG=en_US.UTF-8LANGUAGE=en_US.UTF-8LC_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=en_US.UTF-8
但是postgres在安装时使用了“C”语言环境.@H_403_8@
@H_403_8@
postgres@precise64:~$psql -l List of databases name | Owner | EnCoding | Collate | Ctype | Access privileges-----------+----------+----------+---------+-------+----------------------- postgres | postgres | latin1 | en_US | en_US | template0 | postgres | latin1 | en_US | en_US | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | latin1 | en_US | en_US | =c/postgres + | | | | | postgres=CTc/postgres(3 rows)
为了归因,我从http://www.softr.li/blog/2012/05/22/chef-recipe-to-install-a-postgresql-server-on-a-machine-configured-with-en_us-locales获得了这一切.@H_403_8@解决方法 我发现对我有用的解决方案是在bootstrap shell脚本中,或者作为内联shell,在运行任何配方之前将/etc/default/lang.sh复制到该框. (所以应该在框定义后在Vagrant文件中完成第一件事)
郎文件:
@H_403_8@
@H_403_8@
export LANGUAGE=en_US.UTF-8export LANG=en_US.UTF-8export LC_ALL=en_US.UTF-8
从这里开始,数据库应该使用UTF-8编码进行设置.希望这有帮助,因为我花了几天时间寻找解决方案,并提出各种讨论中的点点滴滴,但意识到问题是设置值的时机…@H_403_8@ 总结
以上是内存溢出为你收集整理的postgresql – 主厨ENV设置不起作用全部内容,希望文章能够帮你解决postgresql – 主厨ENV设置不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)