0

我已经从命令行安装了一个 gem:

sudo gem install jalalidate

gem 说它已安装:

$ gem list jalalidate
*** LOCAL GEMS ***

jalalidate (0.3.2)

并且可以加载:

ruby -rubygems -e 'require "jalalidate"' # output is empty, (success?)

虽然当我尝试将这个 gem 包含在 Rakefile 中时,rake 失败了:

# Rakefile:
require "rubygems"
require "bundler/setup"
require "stringex"
require "jalalidate"

# Terminal:
$ rake new_post["title"]
rake aborted!
cannot load such file -- jalalidate

(See full trace by running task with --trace)

笔记:

  • 我正在使用 octopress 博客系统,并且正在尝试将生成的日期转换Time.now.strftime('%Y-%m-%d %H:%M')为 Jalali 日历系统,(JalaliDate.new(Date.today).strftime('%Y-%m-%d'))。
  • 我对红宝石不熟悉

更新:

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.11
  - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby1.9.1
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /var/lib/gems/1.9.1
     - /home/soroush/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/
4

2 回答 2

1

在您尝试 require 之前,您Rakefile已经拥有,这意味着您正在使用Bundler,因此您拥有,这限制了可用的 gem(和版本)。require "bundler/setup"jalalidateGemfile

为了在您的项目中使用 gem,添加行

gem "jalalidate"

Gemfile.

于 2013-09-17T00:03:35.843 回答
0

请参阅这个问题,了解为什么将 sudo 与 gem 命令一起使用通常是一个坏主意。

我建议尝试在没有 sudo 的情况下安装 gem:gem install jalalidate

于 2013-09-16T23:53:00.483 回答