2011-06-29 38 views
0

运行的方法,我使用的是宝石称为IMGKit,当我使用宝石的to_img方法在控制台中我得到这个错误:权限被拒绝从一个Ruby宝石

IMGKit::CommandFailedError: Command failed: /rubyprograms/search --format jpg http://google.com -: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open3.rb:67:in `exec': Permission denied - /rubyprograms/search (Errno::EACCES) 
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open3.rb:67:in `popen3' 
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open3.rb:53:in `fork' 

我不知道这是怎么回事。

这是to_img方法:

def to_img(format = nil) 
    append_stylesheets 
    set_format(format) 

    result = nil 
    stderr_output = nil 
    Open3.popen3(*command) do |stdin,stdout,stderr| 
    stdin << (@source.to_s) if @source.html? 
    stdin.close 
    result = stdout.gets(nil) 
    result.force_encoding("ASCII-8BIT") if result.respond_to? :force_encoding 
    stderr_output = stderr.readlines.join 
    stdout.close 
    stderr.close 
    end 
    raise CommandFailedError.new(command.join(' '), stderr_output) unless result 
    return result 
end 

回答

0

这意味着作为被执行的Ruby程序不具有权限读取或/ ruby​​programs /搜索执行该文件(或可能的/ ruby​​programs用户目录本身)。检查目录和/或文件是否存在并可由用户执行。如果不存在,则需要安装一些软件包或调整gem配置中的路径。如果它存在,那么你可能需要使用chown/chmod来更改所有权或权限。

+0

存在文件/ ruby​​programs/search。我目前不需要什么权限? –

+0

它应该可以由用户执行。您可以通过使用运行Rails应用程序的帐户登录服务器来检查这一点,并通过在/ ruby​​programs/search中输入来尝试执行该文件 – Martijn