过程有一点曲折,还是记录一下免得自己也忘记了。

安装过程基本参考 Gitlab 的官方指导 https://github.com/gitlabhq/gitlabhq/blob/5-4-stable/doc/install/installation.md

选的是5-4-stable这个分支,如果要选其他版本的话,要在选branch 的地方选到对应的分支,文档里面一些具体的配置和要求会有变化。

照着文档一步步做下来,卸掉 ruby 1.8,下载1.9编译安装,一路走到安装 gitlab 的 gem 的时候,出问题了,

提示是装 therubyracer-0.11.4的时候依赖的一个文件找不到,是 libv8-3.11.8.17这个包里的某个库木有,我检查了几遍,发现装好的 libv8 里压根就没有那个文件,

一开始认为是 therubyracer 这个包的问题,google 了好久也没找到什么解决方案,手动修改里面的 gemfile 神马的也都不行,被折腾了好久,

后来仔细检查了一下 therubyracer 的依赖配置,发现里面要求的 libv8 需要的版本是3.11.8.12….

less /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.11.4/therubyracer.gemspec
靠,版本不一致啊!gitlab 的脚本给装的是3.11.8.17,说不定就是这个原因造成的。

在网上搜了半天,发现有人碰到了类似的问题,解决办法就是。。先手动装一个正确版本的,然后拷贝过来骗 gitlab 脚本是那个版本。。。

gem install libv8 -v ‘3.11.8.12’
拷贝到 gitlab 目录下
cp -r /usr/local/lib/ruby/gems/1.9.1/gems/libv8-3.11.8.12  /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/
因为 ruby 是编译安装到/usr/local下面的,所以包会在/usr/local/lib/ruby下

然后把原来错误的版本干掉,把拷贝过来的这个版本做个链接

cd /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/
rm -rf libv8-3.11.8.17-x86_64-linux
ln -s libv8-3.11.8.12 libv8-3.11.8.17-x86_64-linux
然后重新进行 Install Gems 这一步,总算可以顺利完成了。