簡體   English   中英

權限被拒絕從 Ruby gem 運行方法

[英]Permission denied running a method from a Ruby gem

我正在使用一個名為IMGKit的 gem,當我在控制台中使用 gem 的to_img方法時,我收到此錯誤:

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

這意味着執行 Ruby 程序的用戶無權讀取或執行 /rubyprograms/search 中的文件(或者可能是 /rubyprograms 目錄本身)。 檢查目錄和/或文件是否存在並且可由您的用戶執行。 如果不存在,那么您需要安裝一些包或調整 gem 配置中的路徑。 如果存在,那么您可能需要使用 chown/chmod 更改所有權或權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM