Bug 855626

Summary: Passenger installation via gem
Product: [Fedora] Fedora Reporter: kaigillmann
Component: rubygemsAssignee: Bohuslav "Slavek" Kabrda <bkabrda>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 17CC: bkabrda, mastahnke, mtasaka, vanmeeuwen+fedora, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-09-14 19:35:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description kaigillmann 2012-09-09 12:21:33 UTC
Description of problem:
Installation of (might not be only this) passenger (gem install passenger) fails with the following error:
========================================
Building native extensions.  This could take a while...

...............
ERROR:  Error installing passenger:
		ERROR: Failed to build gem native extension.

		/usr/bin/ruby extconf.rb
extconf.rb:13: Use RbConfig instead of obsolete and deprecated Config.

make
/usr/share/rubygems/rubygems/ext/builder.rb:31:in `exec': No such file or directory - make (Errno::ENOENT)
		from /usr/share/rubygems/rubygems/ext/builder.rb:31:in `block in get_status_of_forked_command'
		from /usr/share/rubygems/rubygems/ext/builder.rb:23:in `fork'
		from /usr/share/rubygems/rubygems/ext/builder.rb:23:in `get_status_of_forked_command'
		from /usr/share/rubygems/rubygems/ext/builder.rb:84:in `block in make'
		from /usr/share/rubygems/rubygems/ext/builder.rb:82:in `each'
		from /usr/share/rubygems/rubygems/ext/builder.rb:82:in `make'
		from /usr/share/rubygems/rubygems/ext/ext_conf_builder.rb:18:in `build'
		from /usr/share/rubygems/rubygems/installer.rb:536:in `block (2 levels) in build_extensions'
		from /usr/share/rubygems/rubygems/installer.rb:535:in `chdir'
		from /usr/share/rubygems/rubygems/installer.rb:535:in `block in build_extensions'
		from /usr/share/rubygems/rubygems/installer.rb:509:in `each'
		from /usr/share/rubygems/rubygems/installer.rb:509:in `build_extensions'
		from /usr/share/rubygems/rubygems/installer.rb:180:in `install'
		from /usr/share/rubygems/rubygems/dependency_installer.rb:297:in `block in install'
		from /usr/share/rubygems/rubygems/dependency_installer.rb:270:in `each'
		from /usr/share/rubygems/rubygems/dependency_installer.rb:270:in `each_with_index'
		from /usr/share/rubygems/rubygems/dependency_installer.rb:270:in `install'
		from /usr/share/rubygems/rubygems/commands/install_command.rb:121:in `block in execute'
		from /usr/share/rubygems/rubygems/commands/install_command.rb:115:in `each'
		from /usr/share/rubygems/rubygems/commands/install_command.rb:115:in `execute'
		from /usr/share/rubygems/rubygems/command.rb:278:in `invoke'
		from /usr/share/rubygems/rubygems/command_manager.rb:147:in `process_args'
		from /usr/share/rubygems/rubygems/command_manager.rb:117:in `run'
		from /usr/share/rubygems/rubygems/gem_runner.rb:65:in `run'
		from /bin/gem:30:in `<main>'


Gem files will remain installed in /usr/local/share/gems/gems/fastthread-1.0.7 for inspection.
Results logged to /usr/local/share/gems/gems/fastthread-1.0.7/ext/fastthread/gem_make.out
========================================

Version-Release number of selected component (if applicable):
ruby 1.9.3
rubygems 1.8.24

Steps to Reproduce:
Install fedora
sudo su
yum install ruby rubygems
gem install passenger
  
Expected results:
passenger installed and ready

Additional info:
Searched for several terms and messages using Google.
Might remember some other packages made problems in the past -> might be a bigger problem.
I have installed httpd, php, mysql, ..., too and tried to set up some vhosts running rails applications.

Comment 1 Bohuslav "Slavek" Kabrda 2012-09-10 06:22:41 UTC
It seems that you don't have "make" installed. Could you try "yum install make" and repeat the installation? I'm not sure, but you may also need to install some other packages to get passenger compiled properly: asciidoc, doxygen, graphviz, httpd-devel, libev-devel, source-highlight.

BTW Fedora already has passenger packaged as RPM, although not in stable repository yet. You can try that out by using "yum install rubygem-passenger --enablerepo=updates-testing". This comes with one of the great advantages of RPM-packaged gems: you will not need development dependencies (as mentioned above) on your system and the software will get installed ok with correct gem and non-gem runtime depencies.

Comment 2 kaigillmann 2012-09-14 19:35:20 UTC
Hi,

yum install make asciidoc doxygen graphviz httpd-devel libev-devel source-highlight

made it work. Thanks for your help.

The ruby errors are kinda irritating if you are not into it! What made you guess it could be make? What advice could you give me if I have further problems with ruby dependencies? How to i easily solve those problems without digging into every detail?


I hoped for a rpm because it would make things a lot easier for me.

Comment 3 Bohuslav "Slavek" Kabrda 2012-09-17 05:54:36 UTC
(In reply to comment #2)
> Hi,
> 
> yum install make asciidoc doxygen graphviz httpd-devel libev-devel
> source-highlight
> 
> made it work. Thanks for your help.
> 

Great. You're welcome.

> The ruby errors are kinda irritating if you are not into it! What made you
> guess it could be make? What advice could you give me if I have further
> problems with ruby dependencies? How to i easily solve those problems
> without digging into every detail?
> 

One of the first lines of the error message says:
/usr/share/rubygems/rubygems/ext/builder.rb:31:in `exec': No such file or directory - make
which basically says that the RubyGems C extension builder was trying to execute a program named "make".
Well, my advice here is to use system-packaged Gems. Solving these dependency problems is one of their great advantages (you don't need to care about the dependencies, distro packagers do that).

> 
> I hoped for a rpm because it would make things a lot easier for me.

Passenger took a great packaging effort and has reached Fedora official repositories very recently, therefore it is only in updates-testing yet (but it should reach the main repository any day now, AFAIK). For now, you can install it from updates-testing like this:
"yum install rubygem-passenger --enablerepo=updates-testing"