An error occurred while installing rugged

35,274

Solution 1

First, try installing cmake:

sudo apt-get install cmake

Then, repeat the command:

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

Solution 2

For OSX if you're using homebrew:

brew install cmake 
bundle install

Solution 3

For me, gem was complaining about pkg-config missing dependence, so I did:

sudo apt-get install pkg-config

and then

sudo gem install rugged -v '0.22.2'

after that, I revert to my older version of gitlab and re-run the script for the upgrade.

My older version of gitlab was 6.9.2 and the upgraded version 8.0.5

Solution 4

Note: The above mentioned solutions did not work for me.


Here is the error log I got

checking for gmake... no
checking for make... yes
Building Rugged using system libraries.
libgit2 version is not compatible, expected ~> 0.99.0
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

It was mainly saying libgit2 version is not compatible, expected ~> 0.99.0

and I tried gem install rugged -v '0.99.0' and then bundle install.

then the problem is solved.

Share:
35,274
plieb
Author by

plieb

Ecole 42 alumni, Senior Customer Success Manager @Algolia

Updated on July 05, 2022

Comments

  • plieb
    plieb almost 2 years

    Following this tutorial [link] to install gitlab on a dedicated server. I need to :

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

    But an error occurred while installing rugged :

    Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
    
        /usr/local/bin/ruby extconf.rb
    checking for cmake... no
    ERROR: CMake is required to build Rugged.
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    
    Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby
    
    
        Gem files will remain installed in /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/rugged-0.21.2 for inspection.
        Results logged to /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/rugged-0.21.2/ext/rugged/gem_make.out
        An error occurred while installing rugged (0.21.2), and Bundler cannot continue.
        Make sure that `gem install rugged -v '0.21.2'` succeeds before bundling.
    

    So I installed rugged -> I installed CMake & config-pkg :

    /home/git/gitlab$ sudo gem install rugged
    Building native extensions.  This could take a while...
    Successfully installed rugged-0.21.2
    Parsing documentation for rugged-0.21.2
    unable to convert "\xC0" from ASCII-8BIT to UTF-8 for lib/rugged/rugged.so, skipping
    1 gem installed
    

    But it doesnt change anything :

    Errno::EACCES: Permission denied - /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/rugged-0.21.2/LICENSE
    An error occurred while installing rugged (0.21.2), and Bundler cannot continue.
    Make sure that `gem install rugged -v '0.21.2'` succeeds before bundling.
    

    Any idea ?

  • lucke84
    lucke84 about 9 years
    To me, running sudo apt-get install cmake was enough.
  • Jay Killeen
    Jay Killeen about 8 years
    This has also fixed my issue Make sure that gem install rugged -v '0.25.0b2'` succeeds before bundling.` when trying to use gem 'github-linguist' in my Gemfile in rails. Cheers.
  • Andy Ray
    Andy Ray over 4 years
    Why do so many Gem developers do this and leave install flows in terrible shape, leading to so many SO questions like this? Why don't Gem developers improve their instructions or error messages?
  • sevenseacat
    sevenseacat over 2 years
    The above didn't work for you because you have a different error message than the question. The question refers to a cmake error.
  • MjH
    MjH over 2 years
    Still the case in 2022 :)