Nokogiri / Rails / zlib1g-dev的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nokogiri / Rails / zlib1g-dev的问题相关的知识,希望对你有一定的参考价值。
我在我的Ubuntu机器上安装了ruby v.2.3.1p112。我最近安装了rails(v.5.2.1),但是rails最近遇到了一些与gem非安装相关的问题,特别是有两个gem和一个程序:nokogiri,sqlite3和zlib1g-dev。显然,我无法启动rails服务器并在没有这些东西的情况下开发我的应用程序,所以我很感激任何帮助安装这些东西并解决问题背后的根本问题。
这是日志:
锯:
它首先说我没有权限,如下所示:
foo@foo:~$ gem install nokogiri
ERROR: While executing gem ... (Errno::EACCES)
Permission denied @ rb_sysopen - /var/lib/gems/2.3.0/gems/nokogiri-1.8.5/.autotest
当我用“sudo”.....
foo@foo:~$ sudo gem install nokogiri
[sudo] password for foo:
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.8.5/ext/nokogiri
/usr/bin/ruby2.3 -r ./siteconf20181102-6590-1t6ljhe.rb extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
Using mini_portile version 2.3.0
checking for gzdopen() in -lz... no
zlib is missing; necessary for building libxml2
*** 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/bin/$(RUBY_BASE_NAME)2.3
--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
To see why this extension failed to compile, please check the mkmf.log which can be found here:
/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.8.5/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.3.0/gems/nokogiri-1.8.5 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.8.5/gem_make.out
zlib1g-dev问题:
foo@foo:~$ sudo apt-get install zlib1g-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
zlib1g-dev : Depends: zlib1g (= 1:1.2.8.dfsg-2ubuntu4) but 1:1.2.8.dfsg-2ubuntu4.1 is to be installed
E: Unable to correct problems, you have held broken packages.
答案
mkmf.log
可以解释为什么你不能安装nokogiri
作为sudo
,但我会检查这个文件/var/lib/gems/2.3.0/gems/nokogiri-1.8.5/.autotest
的授权规则,你不能像普通用户那样执行
您还可以查看更多信息
https://duckduckgo.com/?q=gem+Errno%3A%3AEACCES&t=canonical&ia=qa
我用rbenv
。也许如果你使用rbenv
,你将无法试验这个问题
我的宝石安装在/home/fabrizio/.rbenv
内,而不是/var/lib/gems/
内
以上是关于Nokogiri / Rails / zlib1g-dev的问题的主要内容,如果未能解决你的问题,请参考以下文章
Nokogiri / Rails / zlib1g-dev的问题
Rails -nokogiri GEM:检测 URL 中图像的 MIME 类型