Problems installing gitlab on odroid (v8 lib not available?)

Installing gitlab on my odroid went fine ... Using the steps https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md before this command

sudo -u git -H bundle install --deployment --without development test postgres aws

but it just failed to install therubyracer 0.12.0 (in fact, that v8 could not be compiled because it requires the -fPIC flag). Here is the error message

/usr/bin/ld: /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/libv8-3.16.14.3/vendor/v8/out/arm.release/obj.target/tools/gyp/libv8_base.a(api.o): relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/libv8-3.16.14.3/vendor/v8/out/arm.release/obj.target/tools/gyp/libv8_base.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status

So ... I installed v8 on the system, cloned https://github.com/v8/v8 and performed a commit check 7ce3fe106a37826dc23189a78dcb9000a1b3fa06 (b / c, which is what libv8 uses in the v3.16.14.3 tag and what Gitlab needs).

The invalid flag is -fPIC, so after completion make dependenciesI made this change (making it like a patch so that it is easier to see ... I just added -fPIC whenever -Wall is used)

--- build/standalone.gypi.original  2014-02-09 21:58:48.627732201 +0000
+++ build/standalone.gypi   2014-02-09 22:02:27.236682523 +0000
@@ -96,7 +96,7 @@
     ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
        or OS=="netbsd"', {
       'target_defaults': {
-        'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
+        'cflags': [ '-fPIC', '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
                     '-Wnon-virtual-dtor', '-pthread', '-fno-rtti',
                     '-fno-exceptions', '-pedantic' ],
         'ldflags': [ '-pthread', ],
@@ -206,7 +206,7 @@
             '-fno-strict-aliasing',
           ],
           'WARNING_CFLAGS': [
-            '-Wall',
+            '-fPIC', '-Wall',
             '-Wendif-labels',
             '-W',
             '-Wno-unused-parameter',

then ran make arm.release hardfp=on library=shared -j4and waited ... when it finished, I just did sudo cp out/arm.release/lib.target/libv8.so /usr/lib/libv8.soto have lib available. I also made sudo cp include /usr/include files available.

Checking what jewels I set, I get

odroid@odroid-server:~/v8$ gem query --local

*** LOCAL GEMS ***

bundler (1.5.3)
ref (1.0.5)

So, I performed sudo gem install libv8:3.16.14.3 -- --with-system-v8

And you can see that he installed

odroid@odroid-server:~/v8/out/arm.release$ gem query --local

*** LOCAL GEMS ***

bundler (1.5.3)
libv8 (3.16.14.3)
ref (1.0.5)

But now, when I go to the folder / home / git / gitlab, run

sudo -u git -H bundle install --deployment --without development test postgres aws

Failing again ... then I read about the package configuration, so I ran

sudo -u git -H bundle config build.libv8 --with-system-v8
sudo -u git -H bundle install --deployment --without development test postgres aws

And the will!

but ... then it

odroid@odroid-server:/home/git/gitlab$ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
ruby: symbol lookup error: /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/therubyracer-0.12.0/ext/v8/init.so: undefined symbol: _ZN2v82V821AddGCPrologueCallbackEPFvNS_6GCTypeENS_15GCCallbackFlagsEES1_

I tried copying everything from v8 / out / arm.release / obj.target / tools / gyp to / usr / lib or even to / home / git / gitlab / vendor / bundle / ruby ​​/ 2.0.0 / gems / therubyracer-0.12 .0 / ext / v8 / no luck

- , v8 ? , , .

!!!

+3
3

Yeap! libv8. nodejs ommit therubyracer gem Gemfile. github issue post.

:

  • gitlab
  • Gemfile gem "therubyracer".
  • : mv /home/git/gitlab/.bundle/config{,.orig}
  • Gemfile.lock : mv /home/git/gitlab/Gemfile.lock{,.orig}
  • sudo -u git -H bundle install --path vendor/bundle, Gemfile.lock
  • nodejs
  • gitlab

Gemfile.lock , /. , sth, / :

sudo -u git -H bundle install --deployment --without development test postgres aws

. , , devel mysql postgres .., , .

Nodejs - . rails execjs, Readme, node javascript.

+4

GitLab , Gemfile.lock . nodejs .

+1

The following are options for creating a GitLab installation: https://about.gitlab.com/installation/

-2
source

All Articles