我有一个通过 puppet 安装的 ruby on rails 应用程序 (gitlab)。
测试系统上一切运行正常,但生产系统上出现有关 rake 的错误
Running /home/git/gitlab-shell/bin/check
Could not find rake-10.1.0 in any of the sources
Run bundle install to install missing gems.
以下是完整的佣金检查:
root@gitlab:/home/git# sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment ...
Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes
Checking Environment ... Finished
Checking GitLab Shell ...
GitLab Shell version >= 1.7.1 ? ... OK (1.7.1)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
update hook up-to-date? ... yes
update hooks in repos are links: ...
Could not find rake-10.1.0 in any of the sources
Run `bundle install` to install missing gems.
gitlab-shell self-check failed
Try fixing it:
Make sure GitLab is running;
Check the gitlab-shell configuration file:
sudo -u git -H editor /home/git/gitlab-shell/config.yml
Please fix the error above and rerun the checks.
Checking GitLab Shell ... Finished
Checking Sidekiq ...
Running? ... yes
Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking GitLab ...
Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
projects have namespace: ...
Spencer Owen / bar ... yes
Projects have satellites? ...
Spencer Owen / bar ... can't create, repository is empty
Redis version >= 2.0.0? ... yes
Your git bin path is "/usr/bin/git"
Git version >= 1.7.10 ? ... yes (1.8.4)
Checking GitLab ... Finished
步骤 'gitlab-shell check' 有效地运行以下命令。如果我手动运行该命令,则一切都会通过。
root@gitlab:/home/git/gitlab# sudo -u git -H /home/git/gitlab-shell/bin/check
Check GitLab API access: OK
Check directories and files:
/home/git/repositories: OK
/home/git/.ssh/authorized_keys: OK
我已经确认 rake 确实已安装
root@gitlab:/home/git/gitlab# gem install rake -v 10.1.0
root@gitlab:/home/git/gitlab# bundle install
root@gitlab:/home/git/gitlab# sudo -u git -H gem install rake -v 10.1.0
root@gitlab:/home/git/gitlab# sudo -u git -H bundle install
Ruby 已安装并更新
root@gitlab:/home/git/gitlab# sudo -u git -H ruby --version
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
root@gitlab:/home/git/gitlab# sudo -u git -H ls -l `which ruby`
lrwxrwxrwx 1 root root 22 Oct 8 20:26 /usr/bin/ruby -> /etc/alternatives/ruby
root@gitlab:/home/git/gitlab# sudo -u git -H gem --version
2.1.10
root@gitlab:/home/git/gitlab# sudo -u git -H ls -l `which gem`
lrwxrwxrwx 1 root root 21 Oct 10 20:50 /usr/bin/gem -> /etc/alternatives/gem
我已经尝试了下面提到的解决方案,以允许共享宝石
https://stackoverflow.com/questions/19284914/bundle-exec-fails-with-could-not-find-rake-10-1-0-in-any-of-the-sources
https://stackoverflow.com/questions/18978002/could-not-find-rake-with-bundle-exec
root@gitlab:/home/git/gitlab# cat /home/git/gitlab/.bundle/config
---
BUNDLE_FROZEN: '1'
BUNDLE_PATH: vendor/bundle
BUNDLE_WITHOUT: development:test:postgres
BUNDLE_DISABLE_SHARED_GEMS: '1'
我已经用尽了谷歌搜索,所以我希望有更熟悉 ruby 的人可以提供任何解决错误的想法。Could not find rake-10.1.0 in any of the sources
我在解决这个问题时的所有笔记都是位于此处
答案1
dpkg -L 显示安装了 3 个版本的 ruby:1.8、1.9.1 和 2.0。我卸载了所有 1.9.1 和 2.0(但保留了 1.8,因为它自带了 puppet)。
然后我运行了傀儡模块再次重新安装 ruby。现在一切正常。