Postgresql 流浪的博士后(ubuntu14.04)
我试图用vagrant创建简单的开发环境,但在postgres中遇到了问题 我的文件很简单:Postgresql 流浪的博士后(ubuntu14.04),postgresql,vagrant,ubuntu-14.04,ansible,Postgresql,Vagrant,Ubuntu 14.04,Ansible,我试图用vagrant创建简单的开发环境,但在postgres中遇到了问题 我的文件很简单: # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |co
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 8000, host: 8000
config.vm.network :public_network
config.vm.provision "ansible" do |ansible|
ansible.playbook = "playbook.yml"
end
end
我使用ansible作为准备金:
- name: Configure development machine
hosts: all
sudo: True
tasks:
- name: install postgres
apt: name={{ item }} update_cache=yes
with_items:
- postgresql
- postgresql-contrib
但是出了问题,postgres安装不正确
当我ssh到VM时,我看到了奇怪的事情:
$ /etc/init.d/postgresql start
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_TIME = "uk_UA.UTF-8",
LC_MONETARY = "uk_UA.UTF-8",
LC_ADDRESS = "uk_UA.UTF-8",
LC_TELEPHONE = "uk_UA.UTF-8",
LC_NAME = "uk_UA.UTF-8",
LC_MEASUREMENT = "uk_UA.UTF-8",
LC_IDENTIFICATION = "uk_UA.UTF-8",
LC_NUMERIC = "uk_UA.UTF-8",
LC_PAPER = "uk_UA.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
并且没有/etc/postgresql目录(但是存在/etc/postgresql公共目录),有什么想法吗
将以下行添加到shell启动文件
LANGUAGE=en_US.UTF-8
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
然后运行(具有root权限)
您可以通过以下命令解决此问题:登录ubuntu计算机并重新配置区域设置:
dpkg-reconfigure locales
并选择所需的区域设置
解决区域设置问题后,您可能希望使用以下方法初始化postgres的集群和结构:
/etc/init.d/postgresql start
之后,您应该正确配置它。我使用的是postgres的9.3版本,因此配置的路径是
/etc/postgresql/9.3/main
干杯
LEslie你能试试
env-i/etc/init.d/postgresql start
来确认它的语言环境问题吗?@gslin我也有同样的问题,只是使用了不同的语言环境,el_-GR而不是uk_-UA。以下是您的要求:vagrant@vagrant-ubuntu-trusty-64:~$sudo env-i/etc/init.d/postgresql start*不存在postgresql集群;请参阅“man pg_createcluster”,我对Ubuntu中的设置不太熟悉,但在RHEL/Centos中,您必须先执行“service postgresql initdb”来创建集群。也许可以尝试/etc/init.d/postgresql initdb
,或者如果pg\u ctl initdb
无法解决这个问题,可以使用任务:locale\u gen:name=el\u GR.UTF-8 state=present生成el\u GR.UTF-8 locale。Postgres安装并在安装后正常启动。但是如果我不想生成区域设置呢?有没有办法让ansible/vagrant忽略我的主机笔记本电脑区域设置,只在vm中使用en_US.UTF-8?我可以用ansible执行dpkg重新配置区域设置
步骤(它是否以非交互方式工作)?如果你能写下执行指令的任务,那就更好了。谢谢。我对Ansible不太熟悉,但这个模块可能是您所需要的(这里是源代码,附带更多文档)。如果这不起作用,您可以将这些命令保存为shell脚本,并使用-shell:locale\u script.sh
/etc/postgresql/9.3/main