내 보석에 명령이 있습니다 : bin/tennis
. 현재 그것을 실행하려면 cd을 보석에 넣고 bin/tennis
을 실행하십시오. 일반적인 쉘 명령처럼 작동하게하는 것이 가능한지 궁금합니다. 즉 모든 dir에서 실행할 수 있습니다.일반 명령과 같은 곳에서 루비 파일을 (보석으로) 실행 가능하게 만드는 방법은 무엇입니까?
답변
전역 적으로 실행 가능한 모든 것은 $PATH
변수 (Windows의 경우 %PATH%
)에있는 디렉터리 중 하나에 있습니다. 예를 들어
, $PATH
는 다음과 같이 보일 수 있습니다 :
$ echo $PATH
/usr/local/opt/rbenv/shims:/Users/casraf/bin:/Users/casraf/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/opt/fzf/bin
당신은 :
와 분리,이 목록에 디렉토리를 추가 할 수 있으며, 이러한 경로의 각은 전 세계적으로 명령을 실행시에보고됩니다.
그래서 당신은 할 수 중 하나를 일반 내부
ln -s /your/bin/file $(ruby -rubygems -e 'puts Gem.dir')
이 당신의 빈에 대한 심볼릭 링크를 생성합니다 :
는 보석 간부 디렉토리에 실행 파일의 복사본을 저장 gem 실행 가능 디렉토리 (이미
$PATH
에 있어야합니다. 추가하지 않을 경우 추가하십시오.export PATH=$(ruby -rubygems -e 'puts Gem.dir'):$PATH
당신은 확실히 그것을
또는을 (비표준 설정이있는 경우, 당신은이를 넣어 다른 파일을 찾을 필요가 있습니다) 모든 터미널 세션에서 발생 확인하기 위해
.bashrc
또는.bash_profile
이를 넣을 수 있습니다 당신의 PATH 변수에 정규 경로를 추가PATH=/path/to/gem/bin:$PATH
답장을 보내 주셔서 감사합니다. 좀 더 자세한 예를 들어 답변을 명확히 해주시겠습니까? 당신이 정말로 의미했던 것을 얻지 못했습니다 :) –
업데이트 됨, 이것이 도움이 되길 바랍니다 :) – casraf
당신은, 당신의 질문을하시기 바랍니다 명확히 수 있습니까? "컴파일"은 "한 언어에서 다른 언어로 번역"을 의미합니다. 분명히 Ruby에서 컴파일하고 싶지만 "to"로 컴파일하고 싶습니까? 그리고 "어떤 디렉토리에서라도 실행할 수있는"것은 편집과 관련이 있습니까? 또한, * 어떤 * 정확히 * 당신이 "어떤 일반적인 쉘 명령에 의해 작동하게"의미합니까? –