You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

替换GitLab内置服务后Passenger无法找到Ruby依赖Gem

解决Passenger无法找到GitLab-Rails依赖Gem的问题

核心问题是Passenger启动GitLab-Rails时,未加载GitLab嵌入式环境的Gem路径,导致依赖缺失。以下是具体解决步骤:

1. 在Nginx配置中添加Gem环境变量

打开gitlab.conf配置文件,在对应的server块(或全局http块)内添加以下配置,强制Passenger使用GitLab的Gem路径:

# 确保已正确设置Ruby路径
passenger_ruby /opt/gitlab/embedded/bin/ruby;

# 指定GitLab专属的Gem路径
passenger_env_var GEM_HOME /opt/gitlab/embedded/lib/ruby/gems/2.7.0;
passenger_env_var GEM_PATH /opt/gitlab/embedded/lib/ruby/gems/2.7.0;
# 指定GitLab运行环境(默认生产环境)
passenger_env_var RAILS_ENV production;

2. 恢复Passenger全局配置locations.ini

你之前修改的locations.ini是Passenger的系统级Ruby库路径配置,而Gem的查找逻辑由GEM_PATH和GEM_HOME环境变量控制,修改该文件无法解决Gem依赖问题,建议将其恢复为默认值:

ruby_libdir=/usr/share/ruby/vendor_ruby

3. 验证配置并重启服务

  • 先检查GitLab嵌入式环境的Gem是否完整:
/opt/gitlab/embedded/bin/bundle check --gemfile=/opt/gitlab/embedded/service/gitlab-rails/Gemfile
  • 重启Nginx服务:
systemctl restart nginx
  • 查看Nginx的error.log,确认是否仍有Gem缺失报错。

内容的提问来源于stack exchange,提问作者fred

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:55:32