2013-02-06 10 views
4

나는 루비 스크립트를 실행 파일로 실행하고 싶다. 또한/usr/bin/디렉토리에서 실행해야한다. 나는 이것이 가능하다는 것을 안다.Ruby 스크립트를 어떻게 실행 파일로 실행할 수 있습니까?

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

그리고

chmod +x hello 

그러나 나는 또한 몇 가지 루비 파일을 필요로합니다.

등의 파일을로드 할 수 없습니다 'other_ruby_script'

는 내 코드에

require './other_ruby_script' 

를 추가하고 내가는/usr/빈 /에 루비 실행 파일을 이동하는 경우 예를 들어, 나에게 오류를 제공

/usr/bin 디렉토리에서 Ruby 파일을 실행하고 싶습니다.

그럼 내가 컴파일해야할까요? 하지만 내가 컴파일 할 때 구글이 언제 검색하는지 이해하지 못해 컴파일 할 수 없었다.

내 코드에 적합한 형식으로 실행 가능한 루비 코드를 어떻게 만들 수 있습니까? ('./other_file'필요). 그리고이 ./hello 내 실행 파일처럼 실행할 필요가 없습니다. 그냥 hello로 실행해야합니다

+1

'other_file'은 라이브러리 경로에 있어야합니다. 하나의 옵션은 그것을 보석으로 포장하는 것입니다. –

답변

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 
2

내가 어떻게 configure the right loadpath에 물어 생각합니다. 첫째, 스크립트에서 내가 할 것 : 이것은 당신이 바로 루비 환경을로드 여부를 인쇄해야

puts $: 

(당신이 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" 

당신이 첫번째 장소에있는 루비 환경을로드하지 않는 경우, 당신의 라인 :

,754,946,

요구 Rbenv 또는 RVM

+0

5 월 내 루비 스크립트를 컴파일하면 더 쉬울까요? 루비 프로젝트에서 일하기 때문에. 그것은 다른 많은 루비 파일을 가지고 있습니다. – deniz

+0

Ruby는 Java, Python 또는 Perl과 같이 코드를 동적으로 컴파일하는 가상 머신에서 작동하기 때문에 Google은 해당 주제에 대한 결과를 제공하지 않습니다. 내가 아는 한 컴파일러가 없다. Ruby로 작업 할 때 동적으로 종속성을로드하는 방법을 배워야합니다. – poseid

2
#!/usr/bin/env ruby 
require_relative 'other_ruby_script' 
puts "hello" 
0

문제는 리눅스 환경을위한에서 환경을로드하기 위해 설정 될 수 있지만,이 대답은 앞으로이에 비틀 거리고 Windows 사용자를하는 데 도움이 될 수 있습니다.

Ruby 용 포장재가 있습니다. here.

가장 인기있는 것은 OCRA (원 클릭 루비 응용 프로그램)입니다.이 응용 프로그램은 보석 및 독립 실행 형 루비 파일로 제공되며 Ruby 프로젝트를 Windows 실행 파일로 패키지화합니다.

관련 문제