Foundation 5 SASS 安装 - Thor gem 崩溃

Foundation 5 SASS Install - Thor gem crashes

我最近花了很多时间尝试在我的服务器上安装 Foundation 5 SASS,但是 运行 一直出现错误。但是,我终于到了可以将其缩小到一个问题的地步,thor gem。我的服务器安装了来自 Digital Ocean 的一键式 LEMP Ubuntu 应用程序堆栈安装。

我已经重置服务器超过 10 次,都是为了尝试不同的方法。以下是一些最近出现的错误。

=========================================== 第一次尝试

* 节目单 *

/usr/share/nginx$ git --version
    git version 1.9.1
/usr/share/nginx$ node --version
    v0.10.25
/usr/share/nginx$ ruby --version
    ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
/usr/share/nginx$ sudo bower --version
    1.4.1

/usr/share/nginx$ gem list
    ** LOCAL GEMS **

    bundler (1.10.3)
    chunky_png (1.3.4, 1.3.3)
    compass (1.0.3)
    compass-core (1.0.3, 1.0.1)
    compass-import-once (1.0.5)
    ffi (1.9.8, 1.9.6)
    foundation (1.0.4)
    fssm (0.2.10)
    multi_json (1.11.0, 1.10.1)
    rb-fsevent (0.9.5, 0.9.4)
    rb-itnotify (0.9.5)
    sass (3.4.14)
    thor (0.19.1)

* 错误 *

*************:/usr/share/nginx$ foundation new [FOLDERNAME]
Creating ./[FOLDERNAME]
create html
/usr/lib/ruby/1.9.1/fileutils.rb:247:in 'mkdir': Permission denied -/usr/share/nginx/[FOLDERNAME] (Errno::EACCES)
from /usr/lib/ruby/1.9.1/fileutils.rb:247:in 'fu_mkdir'
from /usr/lib/ruby/1.9.1/fileutils.rb:221:in 'block (2 levels) in mkdir_p'
from /usr/lib/ruby/1.9.1/fileutils.rb:219:in 'reverse_each'
from /usr/lib/ruby/1.9.1/fileutils.rb:205:in 'each'
from /usr/lib/ruby/1.9.1/fileutils.rb:205:in 'mkdir_p'
from /usr/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:50:in 'block in invoke!'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb.116:in 'call'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:116:in 'invoke_with_conflict_check'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:49:in 'invoke!'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions.rb:94:in 'action'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/actions/empty_directory.rb:14:in 'empty_directory'
from /var/lib/ruby/1.9.1/gems/foundation-1.0.4/lib/foundation/cli/generator.rb:126:in 'new'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/command.rb:27: in 'run'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/invocation.rb:126:in 'new'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor.rb:359: in 'dispatch'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/base.rb:440:in 'start'
from /var/lib/ruby/1.9.1/gems/thor-0.19.1/lib/thor/foundation:4:in '<top (required)>'
from /usr/local/bin/foundation:23:in 'load'
from /usr/local/bin/foundation.23:in '<main>'

=========================================== 第二次尝试

(作为 ROOT)

adduser admin
usermod -a -G sudo admin
logout

(作为管理员)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove

sudo apt-get install git
sudo apt-get install ruby
sudo apt-get install nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo apt-get install npm

git --version
    git version 1.9.1
ruby --version
    ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
node --version
    v0.10.25
nodejs --version
    v0.10.25
npm --version
    1.3.10

sudo npm install -g bower grunt-cli
bower --version
    1.4.1

gem install foundation
    Fetching: thor-0.19.1.gem (100%)
    ERROR: While executing gem ... (Errno::EACCES)
    Permission denied - /var/lib/gems

sudo gem install foundation

sudo gem install compass
    Fetching: sass-3.4.15.gem (100%)
    Fetching: multi_json-1.11.1.gem (100%)
    Fetching: compass-core-1.0.3.gem (100%)
    Fetching: compass-import-once-1.0.5.gem (100%)
    Fetching: chunky_png-1.3.4.gem (100%)
    Fetching: rb-fsevent-0.9.5.gem (100%)
    Fetching: ffi-1.9.10.gem (100%)
    Building native extensions. This could take a while...
    ERROR: Error installing compass.
    ERROR: Failed to build gem native extension.
    /usr/bin/ruby1.9.1 extconf.rb
    /usr/lib/ruby/1.9.1/rubygems/custome_require.rb:36:in 'require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custome_require.rb:36:in 'requre'
    from extconf.rb:4:in '<main>'
    Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.9.10 for inspection
    Results logged to /var/lib/gems/1.9.1/gems/ffi-1.9.10/ext/ffi_c/gem_make.out

从这次可以看出,gem首先是在我尝试安装foundation时出现的,并给出了Errno::EACCES错误。但是,我 "fixed" 和 sudo 一起,并且能够更进一步,我完全不得不停下来。似乎是雷神 gem 导致了我所有的问题,但我对 Ruby 完全一无所知。

会不会是我使用的是一键安装?如果我手动安装 LEMP 堆栈会更好吗?另外,我是否应该以 root 身份安装所有内容,然后尝试以启用 sudo 的用户身份创建项目?

我已经在 Foundation 论坛和 Ruby 论坛上发帖,但还没有得到任何东西。

Foundation Forum

Ruby Forum

如果我需要添加任何其他内容,请告诉我!

故障似乎与用户权限有关。出于绝望,我尝试从 /home/admin 创建一个新的基础项目,并且成功了!我 运行 SASS 设置的其余部分,然后立即将文件夹移动到 /usr/share/nginx/html,并且现在一直在修复我网站的其余部分。

显然,我在 ../nginx/ 文件夹中没有我需要的必要权限(对于 thor gem),但我在 ../admin/ 文件夹中拥有它们.这是因为 ../admin/ 文件夹是为我的用户创建的主目录,而 nginx 文件夹是由 root 创建的。要解决此问题,我只需将 nginx 权限更改为 root sudo,而不是 root root

总之,问题出在权限上,而不是 Foundation 安装过程。他们页面上的说明应该是正确安装产品所需的全部内容。