Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails &引用;安装导轨时出错“;因为";extconf.rb失败";在Ubuntu 18.04上_Ruby On Rails_Bash_Installation_Environment Variables_Rvm - Fatal编程技术网

Ruby on rails &引用;安装导轨时出错“;因为";extconf.rb失败";在Ubuntu 18.04上

Ruby on rails &引用;安装导轨时出错“;因为";extconf.rb失败";在Ubuntu 18.04上,ruby-on-rails,bash,installation,environment-variables,rvm,Ruby On Rails,Bash,Installation,Environment Variables,Rvm,我无法安装Rails 背景:我的(全新)系统=Ubuntu 18.04,Ruby 2.6.0,安装并更新了最新的rvm和bundler。安装Ruby后,我做的第一件事是做sudo-apt-install-Ruby-railties和sudo-apt-install-rails…我不知道为什么我没有使用gem-install。在那之后,我从未成功地执行过rails new,但我确实执行过一次部分,但失败了,那就是我开始下兔子洞的时候 当我键入rails-v时,我得到以下结果: Traceback

我无法安装Rails

背景:我的(全新)系统=Ubuntu 18.04,Ruby 2.6.0,安装并更新了最新的rvm和bundler。安装Ruby后,我做的第一件事是做
sudo-apt-install-Ruby-railties
sudo-apt-install-rails
…我不知道为什么我没有使用
gem-install
。在那之后,我从未成功地执行过rails new,但我确实执行过一次部分,但失败了,那就是我开始下兔子洞的时候

当我键入
rails-v
时,我得到以下结果:

Traceback (most recent call last):
    4: from /home/globewalldesk/.rvm/gems/ruby-2.6.0/bin/ruby_executable_hooks:24:in `<main>'
    3: from /home/globewalldesk/.rvm/gems/ruby-2.6.0/bin/ruby_executable_hooks:24:in `eval'
    2: from /home/globewalldesk/.rvm/gems/ruby-2.6.0/bin/rails:23:in `<main>'
    1: from /usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:482:in `block in replace_bin_path'
/usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:462:in `block in replace_bin_path': can't find executable rails for gem railties. railties is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
Successfully installed concurrent-ruby-1.1.4

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

Successfully installed i18n-1.5.2
Successfully installed thread_safe-0.3.6
Successfully installed tzinfo-1.2.5
Successfully installed activesupport-5.2.2
Successfully installed rack-2.0.6
Successfully installed rack-test-1.1.0
Successfully installed mini_portile2-2.4.0
Building native extensions. This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

    current directory: /home/globewalldesk/.rvm/gems/ruby-2.6.0/gems/nokogiri-1.10.1/ext/nokogiri
/usr/share/rvm/rubies/ruby-2.6.0/bin/ruby -I /usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0 -r ./siteconf20190116-22693-tbjpnz.rb extconf.rb
checking if the C compiler accepts ... yes
Building nokogiri using packaged libraries.
*** 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/share/rvm/rubies/ruby-2.6.0/bin/$(RUBY_BASE_NAME)
    --help
    --clean
    --use-system-libraries
/usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:408:in `block (2 levels) in replace_gem': mini_portile2 is not part of the bundle. Add it to your Gemfile. (Gem::LoadError)
    from extconf.rb:469:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/globewalldesk/.rvm/gems/ruby-2.6.0/extensions/x86_64-linux/2.6.0/nokogiri-1.10.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/globewalldesk/.rvm/gems/ruby-2.6.0/gems/nokogiri-1.10.1 for inspection.
Results logged to /home/globewalldesk/.rvm/gems/ruby-2.6.0/extensions/x86_64-linux/2.6.0/nokogiri-1.10.1/gem_make.out
我已经在这里和其他地方浏览了很多类似的问题,并尝试了很多东西,但似乎没有任何效果

当我尝试
gem安装nokogiri
时,我会收到类似的错误消息

救命啊


更新:以下是mkmf.log文件:

"gcc -o conftest -I/usr/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0/x86_64-linux -I/usr/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0/ruby/backward -I/usr/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0 -I.    -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable  -fPIC  conftest.c  -L. -L/usr/share/rvm/rubies/ruby-2.6.0/lib -Wl,-rpath,/usr/share/rvm/rubies/ruby-2.6.0/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic     -Wl,-rpath,/usr/share/rvm/rubies/ruby-2.6.0/lib -L/usr/share/rvm/rubies/ruby-2.6.0/lib -lruby  -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/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0/x86_64-linux -I/usr/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0/ruby/backward -I/usr/share/rvm/rubies/ruby-2.6.0/include/ruby-2.6.0 -I.    -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable  -fPIC    -Werror -c conftest.c"
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/* end */

更新2:按照Javier的建议,我查看了安装Nokogiri的文档,发现命令
gem install Nokogiri--use system libraries
,它起了作用。然后我对栏杆和栏杆做了同样的处理

现在,当我尝试运行
railsnew
时,我收到一条不同的错误消息:

Traceback (most recent call last):
    2: from /home/globewalldesk/.rvm/gems/ruby-2.6.0/bin/rails:23:in `<main>'
    1: from /usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:482:in `block in replace_bin_path'
/usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:462:in `block in replace_bin_path': can't find executable rails for gem railties. railties is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
O
回溯(最近一次呼叫最后一次):
2:from/home/globewalldesk/.rvm/gems/ruby-2.6.0/bin/rails:23:in`'
1:from/usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:482:in`block in replace_bin_path'
/usr/share/rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0/bundler/rubygems_integration.rb:462:in'block in replace_bin_path':找不到gem railties的可执行rails。railties当前未包含在捆绑包中,您是否打算将其添加到您的文件中?(Gem::例外)
O

更新3:

我接受了哈维尔的回答。我一直在使用一个新的安装(尝试),所以如果我开始完全全新的安装也没关系。我不知道到底是什么让我的系统出了问题(可能是因为我从另一个系统复制了一个旧的.bashrc文件,而没有先删除rvm行?),但完全卸载所有Ruby、Rails、其他gems和rvm,重新安装应该可以解决问题

更新最新版本:

完全卸载Ruby、Rails,尤其是RVM需要花费相当多的时间。我没有意识到Bash概要文件脚本有多么重要,或者需要彻底删除关于RVM的行,或者RVM设置的某些环境变量的状态有多么重要。我认为安装Rails时遇到问题的主要原因很简单,就是我从我的旧bash配置文件中复制了RVM设置。我应该把它们拿走的


现在一切正常。

以下是安装nokogiri的文档,rvm有一个注意事项:

RVM用户注释:您可能需要LIGBMP,考虑运行SUDO apt get安装libgmp-dev

用rvm去除红宝石

安装

红宝石

轨道

对于现有项目

bundle install

检查此线程谢谢,但我已经尝试了这些东西。没有骰子。这意味着你缺少依赖关系。那个mkmf.log说了什么?请看上面的更新1。谢谢,但那个没用。我按照说明进行操作,在stacktrace中得到了类似的错误:“extconf.rb失败”,等等。顺便说一句,
sudo apt get install libgmp dev
成功了。更新:我在页面上进一步查看,发现命令
gem install nokogiri--use system libraries
有效!然后我对栏杆和栏杆做了同样的处理。但我仍然收到一条错误消息,如上所述。你的rvm版本是什么?它是1.29.7。全新系统,因此所有设备都是全新安装的。
rvm install 2.6.0
gem install rails
bundle install