(免责声明:我对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
答案 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)
另一个答案的两个替代方案:
我现在一直使用这个:
bundle install --binstubs --path vendor
它将./vendor目录中的所有gem和./bin中的所有可执行文件放在一起。在项目目录中运行它,例如
$ cd /home/myRubyProjects/MyAmazingProject/
$ bundle install --binstubs --path vendor
之后,您可以运行bundle install
,因为设置保存在.bundle
中。不需要sudo
或宝石或担心来自其他项目的宝石被践踏或交互。
我做了一个宝石的分叉,它改变得足够became its own library。