【发布时间】:2019-12-09 19:18:35
【问题描述】:
我正在尝试根据instructions here 在我的服务器上为 Jekyll 设置自动部署。每当我在服务器上运行 Jekyll 命令时,我都会得到以下输出:
$ bundle install && bundle exec jekyll -v
(bundle install output)
Bundle complete! 6 Gemfile dependencies, 30 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
Traceback (most recent call last):
23: from /home/nk42/gems/bin/ruby_executable_hooks:24:in `<main>'
22: from /home/nk42/gems/bin/ruby_executable_hooks:24:in `eval'
21: from /home/nk42/gems/bin/jekyll:23:in `<main>'
20: from /home/nk42/gems/bin/jekyll:23:in `load'
19: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/exe/jekyll:8:in `<top (required)>'
18: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/exe/jekyll:8:in `require'
17: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll.rb:206:in `<top (required)>'
16: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll.rb:206:in `require'
15: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-sass-converter-2.0.1/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
14: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-sass-converter-2.0.1/lib/jekyll-sass-converter.rb:4:in `require'
13: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-sass-converter-2.0.1/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
12: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/jekyll-sass-converter-2.0.1/lib/jekyll/converters/scss.rb:3:in `require'
11: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc.rb:31:in `<top (required)>'
10: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc.rb:31:in `require_relative'
9: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native.rb:5:in `<top (required)>'
8: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native.rb:6:in `<module:SassC>'
7: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native.rb:37:in `<module:Native>'
6: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native.rb:37:in `require_relative'
5: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native/lib_c.rb:3:in `<top (required)>'
4: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native/lib_c.rb:4:in `<module:SassC>'
3: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native/lib_c.rb:5:in `<module:Native>'
2: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/sassc-2.2.1/lib/sassc/native/lib_c.rb:10:in `<module:LibC>'
1: from /home/nk42/.rvm/gems/ruby-2.6.3/gems/ffi-1.11.3/lib/ffi/library.rb:275:in `attach_function'
/home/nk42/.rvm/gems/ruby-2.6.3/gems/ffi-1.11.3/lib/ffi/library.rb:275:in `attach': unhandled exception
无论我使用bundle exec jekyll ... 还是只使用jekyll ...,我都会得到相同的输出,并且无论我在哪个目录中都会发生这种情况。
我可以在本地计算机上运行相同的东西并且它可以工作。在我的计算机和服务器上,我正在运行以下命令:
- rvm 1.29.9(禁用自动库)
- 红宝石 2.6.3p62
- 宝石 3.0.3
- 捆绑器版本 2.0.2
- 杰基尔 4.0.0
服务器是 Dreamhost 共享主机帐户,运行 Ubuntu 18.04,我使用 Dreamhost's help page 上的说明设置 RVM。
我怀疑这是 Ruby/RVM 安装的问题,因为同一个项目在本地工作,但我不确定如何调试或在哪里查找信息。任何指针将不胜感激。
【问题讨论】:
-
未处理的异常是什么?错误消息的最后一部分是否丢失?
-
不,这是完整的输出。我唯一省略的是顶部的区域,该区域只有 bundle install 命令的大量输出 - 但我用“(bundle install output)”标记了它。
-
为什么部分代码运行在
/home/nk42/gems/bin/,另一部分运行在RVM下?您的服务器上是否有两个单独的 Ruby 安装?无论如何,看起来 sassc 库无法加载。 IE。我猜是某种二进制不兼容,或者缺少动态库。 -
您可以尝试将捆绑包安装到供应商而不是 RVM 下。在您的项目目录中:
bundle install --path vendor. -
如果所有其他方法都失败,请删除所有 ruby 安装,仅重新安装一个,然后重试。当您为一个 Ruby 版本构建库,然后用另一个 Ruby 版本加载它时,通常会发生与库的二进制不兼容。如果您有一个系统 Ruby 和一个 RVM Ruby 在同一台机器上运行,则很容易错误地创建这种情况。
标签: ruby rubygems jekyll bundle rvm