В доступе запрещен запуск метода из гема Ruby - PullRequest
0 голосов
/ 29 июня 2011

Я использую гем под названием IMGKit , и когда я использую метод гема 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

1 Ответ

0 голосов
/ 29 июня 2011

Это означает, что пользователь, которым выполняется ваша Ruby-программа, не имеет прав на чтение или выполнение файла в / rubyprograms / search (или, возможно, в самом каталоге / rubyprograms).Проверьте, существуют ли каталог и / или файл и являются ли они исполняемыми вашим пользователем.Если его не существует, вам нужно установить несколько пакетов или изменить путь в конфигурации гема.Если он существует, возможно, вам нужно изменить владельца или разрешения с помощью chown / chmod.

...