2

Ruby をインストールせずに Windows でスクリプトを実行する .exe を作成しようとしています。そのためにOcraを使用していますが、スタックトレースがあります。

また、sc 全体を実行する 2 つのファイルがあり、現在 RVM を使用しており、RVM を使用しているため sudo gem install を実行していないことにも注意してください。

最初のファイルで使用されている宝石:

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

2 番目のファイルで使用される宝石:

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/ruby-head@global":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 <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [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/ruby-head@global/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/ruby-head@global"
MY_RUBY_HOME: ""
IRBRC:        ""
RUBYOPT:      ""
gemset:       ""

私のスクリプトはHTMLページを解析し、フォルダー内にファイルを作成する必要があり、このファイルに書き込み/読み取りを行い、Libnotifyはこれを設定する必要があります。正確に説明する方法はわかりませんが、ある種のパスです:

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

おそらくそれらの 1 つは Ocra が相対パスで意味するものですが、100% はわかりません。そのため、「相対パス」が明示的に意味するものと、このスタック トレースでこのエラーが発生する理由を理解したいのです。

PS: 「xxxx」はプライバシーのためにここに表示されています。

事前に助けてくれてありがとう、私は現在、プロジェクトをクロスプラットフォームにパッケージ化することに行き詰まっています。今のところ、Windowsで取得しようとしています。

これ以上の情報が必要な場合は、それを求めてください。また、これは Stack Overflow で尋ねた最初の質問であるため、間違いを犯した場合も優しくしてください。

4

1 に答える 1