0

(免责声明:我对 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。我也尝试过捆绑器,但有相同的错误消息。

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

宝石文件

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"

配置.ru

require 'bundler'
Bundler.require

require './app'
run Sinatra::Application
4

2 回答 2

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/

于 2013-10-16T23:21:18.327 回答
0

另一个答案的两种选择:

1. 使用 Bundler 沙箱化你的 gem

我现在一直使用这个:

 bundle install --binstubs --path vendor

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

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

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

2. Sinatra Exstatic 资产

我制作了 gem 的一个分支,它发生了足够的变化,以至于它成为了自己的库

于 2013-10-19T01:49:20.880 回答