2016-08-23 11 views
2

RubyをインストールせずにWindowsでスクリプトを実行するための.exeをビルドしようとしています。 私はOcraを使っていますが、私はスタックトレースを持っています。クロスプラットフォームでの使用のためにOcraを使ってRubyスクリプトをビルドしましたが、スタックトレースで 'relative_path_form'を取得しました

sc全体を実行する2つのファイルがあり、現在RVMを使用していて、RVMを使用してからsudo gemをインストールしなかったことにも注意してください。最初のファイルで使用

宝石:第二のファイルで使用

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 
require 'colorize' 
require 'colorized_string' 

宝石:ここ

require 'libnotify' 
require './firstfile' 
require 'os' 
require 'twilio-ruby' 

がOCRAが私を与えるものである:ここでは

>ocra --output test.exe firstfile.rb secondfile.rb 
/home/xxxx/.rvm/gems/ruby-head/gems/ocra-1.3.6/bin/ocra:41:in `relative_path_from': undefined method `path' for "/home/xxxx/.rvm/gems/[email protected]":String (NoMethodError) 
from /home/xxxx/.rvm/gems/ruby-head/gems/ocra-1.3.6/bin/ocra:779:in `block in build_exe' 
from /home/xxxx/.rvm/gems/ruby-head/gems/ocra-1.3.6/bin/ocra:762:in `each' 
from /home/xxxx/.rvm/gems/ruby-head/gems/ocra-1.3.6/bin/ocra:762:in `build_exe' 
from /home/xxxx/.rvm/gems/ruby-head/gems/ocra-1.3.6/bin/ocra:1177:in `block in <top (required)>' 

は詳細です私のrvmと私のルビーバージョンについては、それは 'rvm info'の正確な出力です

system: 
uname:  "Linux xxxx 4.7.1-1-ARCH #1 SMP PREEMPT Wed Aug 17 08:13:35 CEST 2016 x86_64 GNU/Linux" 
system:  "arch/libc-2.24/x86_64" 
bash:  "/usr/bin/bash => GNU bash, version 4.3.46(1)-release (x86_64-unknown-linux-gnu)" 
zsh:   " => not installed" 



rvm: 
version:  "rvm 1.27.0 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]" 
updated:  "1 day 23 hours 44 minutes 51 seconds ago" 
path:   "/home/xxxx/.rvm" 



ruby: 
interpreter: "ruby" 
version:  "2.4.0dev" 
date:   "2016-05-20" 
platform:  "x86_64-linux" 
patchlevel: "2016-05-20 trunk 55077" 
full_version: "ruby 2.4.0dev (2016-05-20 trunk 55077) [x86_64-linux]" 

    homes: 
gem:   "/home/xxxx/.rvm/gems/ruby-head" 
ruby:   "not set" 

    binaries: 
ruby:   "/home/xxxx/.rvm/rubies/ruby-head/bin/ruby" 
irb:   "/home/xxxx/.rvm/rubies/ruby-head/bin/irb" 
gem:   "/home/xxxx/.rvm/rubies/ruby-head/bin/gem" 
rake:   "/home/xxxx/.rvm/gems/ruby-head/bin/rake" 

    environment: 
PATH:   "/home/xxxx/.rvm/gems/ruby-head/bin:/home/xxxx/.rvm/gems/[email protected]/bin:/home/xxxx/.rvm/rubies/ruby-head/bin:/home/xxxx/.rvm/bin:/usr/bin" 
GEM_HOME:  "/home/xxxx/.rvm/gems/ruby-head" 
GEM_PATH:  "/home/xxxx/.rvm/gems/ruby-head:/home/xxxx/.rvm/gems/[email protected]" 
MY_RUBY_HOME: "" 
IRBRC:  "" 
RUBYOPT:  "" 
gemset:  "" 

私のスクリプトはHTMLページを解析し、そのファイル内にファイルを作成する必要があります.Libnotifyはこれを設定する必要があります。正確に説明する方法はわかりませんがそれはパスの一部のようなものだ:

Libnotify.icon_dirs << '/home/' + ENV['USER'] + '/Downloads/NotificationIcons/' 

だから多分、それらの一つは、OCRAは、相対パスで何を意味するのかですが、私はわからないんだけど、私は「相対パス」は、明示的に何を意味するのかを理解したい理由です100%となぜこのスタックトレースがこのエラーで発生しますか?

PS: 'xxxx'はプライバシーのためだけです!

私は現在、私のプロジェクトをクロスプラットフォームにパッケージ化していますが、今はWindows上で手に入れようとしています。

私はこれが私の最初の質問はスタックオーバーフローで尋ねられたので、私は何かミスを犯した場合、それ以上の情報が必要な場合は、

+0

obraのreadme:Ruby 1.8.7、1.9.3、2.0.0および2.1.5のサポートから、2.4または2.4を使用しているのに対し、rubyまたはrubygemsをダウングレードする必要があるかもしれません。ところで、この行 'require 'rubygems''は必要ではありません。1.9 –

+0

私はここで同じエラーが発生しています。これはRuby 2.0.0' /home/xxxx/.rvm/gems/ruby-2.0.0- p648/gems/ocra-1.3.6/bin/ocra:41: 'relative_path_from': '/home/xxxx/.rvm/gems/[email protected]":Stringの未定義メソッド' path ' (NoMethodError) ' – AkechiShiro

+0

これは、' ocra --version'を実行すると、この警告が表示されるのを助けることができます: '/home/xxxx/.rvm/gems/ruby-2.0.0-p648/gems/ocra-1.3。 6/bin/ocra:19:warning:既に初期化された定数File :: ALT_SEPARATOR' 'Ocra 1.3.6' – AkechiShiro

答えて

1

オクラは現在Linuxでは動作しません。

多くの人が同じ問題を持っていた示しOCRAのgithubの上hereをリンク

ocra undefined method `path' 

のためのGoogle検索、問題のページを行います。これは、プロジェクト管理者がOcraがLinux上で動作しないと言っているhereをリンクしていますが、Wineで一発の価値があるかもしれません。

関連する問題