安装宝石被封锁?

时间:2013-10-16 22:22:31

标签: ruby rubygems gem sinatra bundler

(免责声明:我对RubyGems很新。)我有一个Sinatra应用程序,其中有大量require个关键字,所以我想将它们移动到Gemfile中。到目前为止,所有这些(DataMapper,Prawn等)工作正常,直到我遇到这个:

gem install sinatra-static-assets

并且出现此错误消息:Permission denied - /Users/daryll/.rvm/gems/ruby-2.0.0-p247/gems/sinatra-static-assets-1.0.4/.gitignore。我也试过捆绑包但是有相同的错误信息。

试图通过sudo gem install强制它(不知道是否有效)并且它似乎不起作用(我能够运行应用程序,但我得到了一个“undefined method stylesheet_link_tag”这意味着没有看到宝石?)。是什么给了什么?

的Gemfile

source 'https://rubygems.org'

gem "sinatra", "1.4.3"
gem "sinatra-static-assets", "~> 1.0.4"
gem "json", "~> 1.8.0"
gem "data_mapper", "~> 1.2.0"
gem "dm-sqlite-adapter", "~> 1.2.0"
gem "prawn", "~> 0.12.0"
gem "active_support", "~> 3.0.0"

Config.ru

require 'bundler'
Bundler.require

require './app'
run Sinatra::Application

2 个答案:

答案 0 :(得分:0)

我认为这可以解决您的问题:stackoverflow.com/questions/5583422/rvm-gem-install-error

sinatra_static_assets的说明建议运行sudo gem install sinatra-static-assets -s http://gemcutter.org - 您尝试过使用它吗?

此外,请务必按照官方页面上的说明进行操作,以确保正确配置 - https://github.com/wbzyl/sinatra-static-assets/

答案 1 :(得分:0)

另一个答案的两个替代方案:

1。使用Bundler

对您的宝石进行沙盒处理

我现在一直使用这个:

 bundle install --binstubs --path vendor

它将./vendor目录中的所有gem和./bin中的所有可执行文件放在一起。在项目目录中运行它,例如

 $ cd /home/myRubyProjects/MyAmazingProject/
 $ bundle install --binstubs --path vendor

之后,您可以运行bundle install,因为设置保存在.bundle中。不需要sudo或宝石或担心来自其他项目的宝石被践踏或交互。

2。 Sinatra Exstatic Assets

我做了一个宝石的分叉,它改变得足够became its own library