Nokogiri / Rails / zlib1g-dev的问题

时间:2018-11-02 17:15:53

标签: ruby-on-rails ruby linux ubuntu

我在Ubuntu计算机上安装了ruby v.2.3.1p112。我最近安装了Rails(v.5.2.1),但Rails最近一直遇到一些与未安装gem有关的问题,特别是使用两个gem和一个程序:nokogiri,sqlite3和zlib1g-dev。显然,如果没有这些东西,我将无法启动Rails服务器并开发我的应用程序,因此,我很乐意安装这些东西并解决问题的根源。

以下是日志:

nokogiri:

首先要说我没有权限,例如:

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.

1 个答案:

答案 0 :(得分:0)

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/