我一直尝试在 CentOS 5.x 上安装 GitLab,但是现在遇到了困难,而且谷歌的帮助令人困惑。
bundle exec rake gitlab:app:status RAILS_ENV=production
第二次运行后我得到这个输出:
Starting diagnostic
config/database.yml............exists
config/gitlab.yml............exists
/home/git/repositories/............missing
rake aborted!
unexpected return
相关部分/home/gitlab/gitlab/config/gitlab.yml
是这样的(服务器有自定义 shh 端口):
git_host:
system: gitolite___
admin_uri: git@localhost:gitolite-admin
base_path: /home/git/repositories/
host: localhost
git_user: git
port: 2134
文件夹权限为drwxrwx--- 4 git git 4096 Jul 20 07:12 repositories
,其中的文件为(gitlab
用户在git
组中):
drwxrwx--- 8 git git 4096 Jul 20 04:22 gitolite-admin.git
drwxrwx--- 7 git git 4096 Jul 20 04:22 testing.git
即使我改变了base_path
中的值 config/gitlab.yml
,它仍会继续尝试查找同一个文件夹。
我在 Google 上找到的解决方案的唯一可能的方向表明它与 SElinux 有某种关系。建议的命令是:find . -print0 |xargs -0 -n 1 sudo setfattr -h -x security.selinux
。但我不知道在哪里执行它,它告诉我command setfattr not found
.. 或类似的东西。此外,我有点怀疑,不变的配置也可能受到 SElinux 的影响。
该怎么办 ?
答案1
也许你没有rake
以 gitlab 用户身份运行该命令?例如:
sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
遇到了类似的问题,看到其他设置gitlab.yml
根本没有被应用......
答案2
你提到:
即使我改变了 base_path 的值
config/gitlab.yml
,它仍然会尝试查找同一个文件夹。
如果你看看config/initializers/1_settings.rb
程序:
def git_base_path
git_host['base_path'] || '/home/git/repositories/'
end
因此,这是您真正的问题(在开始调整文件夹权限之前):gitlab 不知何故忽略了您的config/gitlab.yml
设置。
仔细检查其中是否有任何拼写错误,并确保完全考虑到它(例如,通过删除它,看看 gitlab 是否抱怨该文件丢失)。