Skip to content

Instantly share code, notes, and snippets.

@abcsharp
Last active December 15, 2015 05:19
Show Gist options
  • Save abcsharp/5208342 to your computer and use it in GitHub Desktop.
Save abcsharp/5208342 to your computer and use it in GitHub Desktop.
Cubieboard+Linaro Ubuntu Server 13.02の環境にGitLabを導入しようとするとlibv8入れる所で躓く件

はじめに

GitLabの導入手順自体はここを参照してください。 ちなみに、他のARM CPUを載せたボードでも同様のエラーが出るらしいので、同じ手順で修正を加えれば問題が解決するかかもしれません。(未検証)

問題

installation.mdのInstall Gemsに従ってbundle installするとこのようなエラーが出て成功しません。

git@localhost:~/gitlab$ bundle install --deployment --without development test postgres
...
...
g++: error: /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a: No such file or directory
make: *** [v8.so] Error 1

Gem files will remain installed in /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.10.2 for inspection.
Results logged to /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/therubyracer-0.10.2/ext/v8/gem_make.out
An error occurred while installing therubyracer (0.10.2), and Bundler cannot continue.
Make sure that `gem install therubyracer -v '0.10.2'` succeeds before bundling.

解決策

上のエラーメッセージを見ての通りlibv8.aが指定のディレクトリに存在しないのでv8をビルドします。

ビルドの際にsconsが必要なのでインストールします。

sudo apt-get install scons

次にSConstructファイルを編集します。

cd /home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/
emacs SConstruct

エディタは各自好きな物を使ってください

まず51行目を次のように書き換えます。

GCC_EXTRA_CCFLAGS = ['-fPIC']

そして 298行目を削除し 保存しましょう。

準備が出来たらビルドします。

scons arch=arm library=static armeabi=hard

ビルドに時間が掛かるのでクロスビルドしたいという人は、v8の本家gitミラーからソースコードを取得し3.3.10(bundle installで入るv8と同じバージョン)にcheckoutしてから同様の手順でやれば恐らく大丈夫だと思います。(未検証)

ビルドが終わったらgitlabのディレクトリに戻ってもう1回bundle installを実行し成功したらOKです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment