我正在一个Vagrant框中安装
Gitlab-ce Omnibus(Debian 18.04 LTS).
在我的配置脚本中,我运行gitlab-ctl reconfigure.我收到一个错误:
在我的配置脚本中,我运行gitlab-ctl reconfigure.我收到一个错误:
initdb: encoding mismatch
控制台输出:
default: * execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] action run default: default: [execute] The files belonging to this database system will be owned by user "gitlab-psql". default: This user must also own the server process. default: default: The database cluster will be initialized with locale "en_US". default: initdb: encoding mismatch default: The encoding you selected (UTF8) and the encoding that the default: selected locale uses (LATIN1) do not match. This would lead to default: misbehavior in varIoUs character string processing functions. default: Rerun initdb and either do not specify an encoding explicitly,default: or choose a matching combination. default: default: default: default: ================================================================================ default: default: Error executing action `run` on resource 'execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]' default: default: ================================================================================ default: default: default: default: default: Mixlib::ShellOut::ShellCommandFailed default: default: ------------------------------------ default: default: Expected process to exit with [0],but received '1' default: default: default: ---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ---- default: default: default: STDOUT: The files belonging to this database system will be owned by user "gitlab-psql". default: default: default: This user must also own the server process. default: default: The database cluster will be initialized with locale "en_US". default: STDERR: initdb: encoding mismatch default: The encoding you selected (UTF8) and the encoding that the default: selected locale uses (LATIN1) do not match. This would lead to default: misbehavior in varIoUs character string processing functions. default: Rerun initdb and either do not specify an encoding explicitly,default: or choose a matching combination. default: ---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ---- default: Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1 default: default: Resource Declaration: default: --------------------- default: # In /opt/gitlab/embedded/cookbooks/cache/cookbooks/postgresql/recipes/enable.rb default: default: 80: execute "/opt/gitlab/embedded/bin/initdb -D #{postgresql_data_dir} -E UTF8" do default: 81: user postgresql_username default: 82: not_if { pg_helper.bootstrapped? } default: 83: end default: 84: default: default: Compiled Resource: default: ------------------ default: # Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/postgresql/recipes/enable.rb:80:in `from_file' default: default: execute("/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8") do default: action [:run] default: default_guard_interpreter :execute default: command "/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8" default: backup 5 default: returns 0 default: user "gitlab-psql" default: declared_type :execute default: cookbook_name "postgresql" default: recipe_name "enable" default: domain nil default: not_if { #code block } default: end default: default: System Info: default: ------------ default: chef_version=13.6.4 default: platform=ubuntu default: platform_version=18.04 default: ruby=ruby 2.3.7p456 (2018-03-28 revision 63024) [x86_64-linux] default: program_name=/opt/gitlab/embedded/bin/chef-client default: executable=/opt/gitlab/embedded/bin/chef-client default: default: Recipe: gitlab::gitlab-rails default: default: * execute[clear the gitlab-rails cache] action run default: default: - execute /opt/gitlab/bin/gitlab-rake cache:clear default: default: default: Recipe: gitlab::redis default: * ruby_block[restart redis svlogd configuration] action create default: default: - execute the ruby block restart redis svlogd configuration default: * ruby_block[reload redis svlogd configuration] action create default: default: - execute the ruby block reload redis svlogd configuration default: default: default: default: Running handlers: default: There was an error running gitlab-ctl reconfigure: default: execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8] (postgresql::enable line 80) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0],but received '1' default: ---- Begin output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ---- default: STDOUT: The files belonging to this database system will be owned by user "gitlab-psql". default: This user must also own the server process. default: default: The database cluster will be initialized with locale "en_US". default: STDERR: initdb: encoding mismatch default: The encoding you selected (UTF8) and the encoding that the default: selected locale uses (LATIN1) do not match. This would lead to default: misbehavior in varIoUs character string processing functions. default: Rerun initdb and either do not specify an encoding explicitly,default: or choose a matching combination. default: ---- End output of /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 ---- default: Ran /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8 returned 1 default: Running handlers complete default: default: Chef Client Failed. 141 resources updated in 01 minutes 00 seconds The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command Failed. The output for this command should be in the log above. Please read the output to determine what went wrong.
已经尝试过,没有帮助:
cat > /etc/default/locale <<EOF LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 EOF localedef -v -c -i en_US -f UTF-8 en_US.UTF-8 || true
作为参考,尝试的解决方案似乎来自
this answer.
我不确定this question究竟是如何相关的,但它提供了一个对我有用的答案,即设置CTYPE变量的语言环境.在安装gitlab-ee之前运行以下代码对我有用:
update-locale LC_CTYPE = en_US.UTF-8 LANG = en_US.UTF-8 LANGUAGE = en_US.UTF-8 ALL = en_US.UTF-8