Отказано в разрешении на запуск метода из Ruby gem

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

person Justin Meltzer    schedule 29.06.2011    source источник


Ответы (1)


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

person Martijn    schedule 29.06.2011
comment
файл / rubyprograms / search существует. какое разрешение мне нужно, которого у меня сейчас нет? - person Justin Meltzer; 29.06.2011
comment
Ну, это должно быть выполнено вашим пользователем. Вы можете проверить это, войдя на сервер, используя учетную запись, которая запускает ваше приложение Rails, и попытавшись выполнить файл, набрав / rubyprograms / search - person Martijn; 06.07.2011