6

ruby スクリプトを実行可能ファイルとして実行したいのですが、/usr/bin/ ディレクトリで実行する必要があります。私はそれがこのように可能であることを知っています。

#!/usr/bin/ruby
puts "hello"

chmod +x hello

しかし、いくつかのルビーファイルも必要です。

たとえば、追加すると

require './other_ruby_script' 

Ruby の実行可能ファイルを /usr/bin/ に移動すると、次のエラーが表示されます。

そのようなファイル「other_ruby_script」を読み込めません

/usr/bin ディレクトリにある Ruby ファイルを実行したい。

多分私はそれをコンパイルする必要がありますか?しかし、Google で「How to compile?」を検索してもわからず、コンパイルできませんでした。

自分のコードに適した形式で実行可能な Ruby コードを作成するにはどうすればよいですか。(「./other_file」が必要です)。そして、このように実行する必要はありません ./hello 私の実行可能ファイル。ただ私はこんにちはとして実行する必要があります

4

4 に答える 4

4
#!/usr/bin/env ruby
require_relative 'other_ruby_script'
puts "hello"
于 2013-11-18T19:23:03.220 に答える
2

正しい loadpathを構成する方法を尋ねたと思います。まず、スクリプトで次のことを行います。

puts $:

これにより、適切な Ruby 環境をロードしているかどうかが表示されます (rbenv または rvm を使用している場合は問題になる可能性があります)。たとえば、次のようになります。

/Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/site_ruby/1.9.1
/Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.3.0
/Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/site_ruby

loadpath にスクリプト 'other_ruby_script' を含むディレクトリが含まれていない限り、次のエラーが発生します。

LoadError: cannot load such file -- other_ruby_script

したがって、次のようにロード パスを追加してみてください。

$:.unshift "#{File.dirname(__FILE__)}/../some_path"

そもそもRuby環境をロードしていない場合、次の行:

#!/usr/bin/ruby 

Rbenv または Rvm から環境をロードするようにセットアップする必要があります

于 2013-02-06T09:17:33.103 に答える
1

rubyファイルを実行するところからシェルスクリプトを書くことができます。シェル スクリプトで PATH と GEM_HOME をエクスポートする必要があります。シェルスクリプトは次のようになります。

#!/bin/bash
export PATH = /usr/local/rvm/gems/ruby-1.9.3-p194
export GEM_HOME = /usr/local/rvm/gems/ruby-1.9.3-p194
cd /path/to/ruby_script
ruby file_name.rb

次のコマンドで PATH と GEM_HOME を取得します。

echo $PATH
echo $GEM_HOME 
于 2013-02-06T08:14:15.683 に答える