gem install rails - can't install

45 views
Skip to first unread message

Solarflow 99

unread,
May 9, 2016, 3:16:40 AM5/9/16
to rubyonra...@googlegroups.com
Hi, I have a rhel7 system and am trying to install the rails gem, I was
wondering how to troubleshoot this since I don't see any useful error
message. I'm guessing i'm just missing something, how to see what it
might be?



# gem install rails
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
Using mini_portile version 2.0.0
checking for gzdopen() in -lz... yes
checking for iconv... yes
************************************************************************
IMPORTANT NOTICE:

Building Nokogiri with a packaged version of libxml2-2.9.2
with the following patches applied:
- 0001-Revert-Missing-initialization-for-the-catalog-module.patch
- 0002-Fix-missing-entities-after-CVE-2014-3660-fix.patch
- 0003-Stop-parsing-on-entities-boundaries-errors.patch
- 0004-Cleanup-conditional-section-error-handling.patch
- 0005-CVE-2015-1819-Enforce-the-reader-to-run-in-constant-.patch
- 0006-Another-variation-of-overflow-in-Conditional-section.patch
- 0007-Fix-an-error-in-previous-Conditional-section-patch.patch
- 0008-CVE-2015-8035-Fix-XZ-compression-support-loop.patch
- 0009-Updated-config.guess.patch
- 0010-Fix-parsering-short-unclosed-comment-uninitialized-access.patch
- 0011-Avoid-extra-processing-of-MarkupDecl-when-EOF.patch
- 0012-Avoid-processing-entities-after-encoding-conversion-.patch
- 0013-CVE-2015-7497-Avoid-an-heap-buffer-overflow-in-xmlDi.patch
- 0014-CVE-2015-5312-Another-entity-expansion-issue.patch
- 0015-Add-xmlHaltParser-to-stop-the-parser.patch
- 0016-Detect-incoherency-on-GROW.patch
- 0017-CVE-2015-7500-Fix-memory-access-error-due-to-incorre.patch
- 0018-CVE-2015-8242-Buffer-overead-with-HTML-parser-in-pus.patch
- 0019-Do-not-print-error-context-when-there-is-none.patch
- 0020-xmlStopParser-reset-errNo.patch
- 0021-Reuse-xmlHaltParser-where-it-makes-sense.patch

Team Nokogiri will keep on doing their best to provide security
updates in a timely manner, but if this is a concern for you and want
to use the system library instead; abort this installation process and
reinstall nokogiri as follows:

gem install nokogiri -- --use-system-libraries
[--with-xml2-config=/path/to/xml2-config]
[--with-xslt-config=/path/to/xslt-config]

If you are using Bundler, tell it to use the option:

bundle config build.nokogiri --use-system-libraries
bundle install

Note, however, that nokogiri is not fully compatible with arbitrary
versions of libxml2 provided by OS/package vendors.
************************************************************************
Extracting libxml2-2.9.2.tar.gz into
tmp/x86_64-redhat-linux-gnu/ports/libxml2/2.9.2... *** 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}/lib64
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby
--help
--clean
--use-system-libraries
--enable-static
--disable-static
--with-zlib-dir
--without-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--enable-cross-build
--disable-cross-build
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:344:in
`spawn': no implicit conversion of nil into String (TypeError)
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:344:in
`block in execute'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:337:in
`chdir'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:337:in
`execute'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:331:in
`extract_file'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:57:in
`block in extract'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:56:in
`each'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:56:in
`extract'
from
/usr/local/share/gems/gems/mini_portile2-2.0.0/lib/mini_portile2/mini_portile.rb:147:in
`cook'
from extconf.rb:289:in `block (2 levels) in process_recipe'
from extconf.rb:182:in `block in chdir_for_build'
from extconf.rb:181:in `chdir'
from extconf.rb:181:in `chdir_for_build'
from extconf.rb:288:in `block in process_recipe'
from extconf.rb:187:in `tap'
from extconf.rb:187:in `process_recipe'
from extconf.rb:478:in `<main>'


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

--
Posted via http://www.ruby-forum.com/.

Colin Law

unread,
May 9, 2016, 3:31:22 AM5/9/16
to Ruby on Rails: Talk
On 9 May 2016 at 08:16, Solarflow 99 <li...@ruby-forum.com> wrote:
> Hi, I have a rhel7 system and am trying to install the rails gem, I was
> wondering how to troubleshoot this since I don't see any useful error
> message. I'm guessing i'm just missing something, how to see what it
> might be?

I think you are missing something that is required to build nokigiri.
I generally recommend using rvm to install ruby and rails, as rvm will
install all the requirements for you and will help you to manage
different versions of ruby and rails, but I don't know about using rvm
with rhel7. On ubuntu this would be as simple as

gpg --keyserver hkp://keys.gnupg.net --recv-keys
409B6B1796C275462A1703113804BB82D39DC0E3
\curl -L https://get.rvm.io | bash -s stable --rails

See rvm.io

Colin

Greg Navis

unread,
May 9, 2016, 8:22:33 AM5/9/16
to rubyonra...@googlegroups.com
My hypothesis would be missing headers and libraries for libxml2, libxslt or ruby. What's inside mkmf.log?
--
Greg Navis
I help tech companies to scale Heroku-hosted Rails apps.

Solarflow 99

unread,
May 9, 2016, 11:06:08 PM5/9/16
to rubyonra...@googlegroups.com
# rpm -qa |grep libxml2
libxml2-python-2.9.1-6.el7_2.2.x86_64
libxml2-devel-2.9.1-6.el7_2.2.x86_64
libxml2-2.9.1-6.el7_2.2.x86_64

# rpm -qa |grep libxslt
libxslt-1.1.28-5.el7.x86_64
libxslt-devel-1.1.28-5.el7.x86_64


# cat /usr/local/share/gems/gems/nokogiri-1.6.7.2/ext/nokogiri/mkmf.log

"gcc -o conftest -I/usr/include -I/usr/include/ruby/backward
-I/usr/include -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -mtune=generic -fPIC conftest.c -L. -L/usr/lib64
-L. -Wl,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -m64
-lruby -lpthread -lrt -ldl -lcrypt -lm -lc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return 0;
6: }
/* end */

"gcc -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I.
-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches
-mtune=generic -fPIC -m64 -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

have_library: checking for gzdopen() in -lz... -------------------- yes

"gcc -o conftest -I/usr/include -I/usr/include/ruby/backward
-I/usr/include -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -mtune=generic -fPIC -g -DXP_UNIX -Wall
-Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline
conftest.c -L. -L/usr/lib64 -L. -Wl,-z,relro -fstack-protector
-rdynamic -Wl,-export-dynamic -m64 -lruby -lz -lpthread -lrt -ldl
-lcrypt -lm -lc "
conftest.c: In function 't':
conftest.c:7:32: warning: variable 'p' set but not used
[-Wunused-but-set-variable]
int t(void) { void ((*volatile p)()); p = (void ((*)()))gzdopen; return
0; }
^
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <zlib.h>
4:
5: /*top*/
6: extern int t(void);
7: int t(void) { void ((*volatile p)()); p = (void ((*)()))gzdopen;
return 0; }
8: int main(int argc, char **argv)
9: {
10: if (argc > 1000000) {
11: printf("%p", &t);
12: }
13:
14: return 0;
15: }
/* end */

--------------------

have_iconv?: checking for iconv... -------------------- yes

"gcc -o conftest -I/usr/include -I/usr/include/ruby/backward
-I/usr/include -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -mtune=generic -fPIC -g -DXP_UNIX -Wall
-Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline
conftest.c -L. -L/usr/lib64 -L. -Wl,-z,relro -fstack-protector
-rdynamic -Wl,-export-dynamic -m64 -lruby -lpthread -lrt -ldl
-lcrypt -lm -lc "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <stdlib.h>
4: #include <iconv.h>
5:
6: int main(void)
7: {
8: iconv_t cd = iconv_open("", "");
9: iconv(cd, NULL, NULL, NULL, NULL);
10: return EXIT_SUCCESS;
11: }
/* end */

--------------------

macs...@gmail.com

unread,
May 11, 2016, 5:17:49 PM5/11/16
to Ruby on Rails: Talk
On Monday, May 9, 2016 at 12:16:40 AM UTC-7, Ruby-Forum.com User wrote:
Hi, I have a rhel7 system and am trying to install the rails gem, I was
wondering how to troubleshoot this since I don't see any useful error
message.  I'm guessing i'm just missing something, how to see what it
might be?


Did you run: `sudo yum install -y rubygem-nokogiri` before 'gem install nokogiri` ?

And `sudo yum install -y gcc ruby-devel zlib-devel` is recommended if you have problems.

Solarflow 99

unread,
May 11, 2016, 5:57:08 PM5/11/16
to rubyonra...@googlegroups.com
Thanks for everyone's help,

Since the problem seemed to be with nokogiri, I managed to get it to
work with gem install nokogiri -- --use-system-libraries
However since there is a RPM for it, I should try that too.
Reply all
Reply to author
Forward
0 new messages