무엇을 의미하는'bin'에서'$bin/rails?'
-
26-12-2019 - |
문제
나를 따라하려고"에 따라 시작으로 엔진에"레일드의 튜토리얼에서 발견이:
$ bin/rails plugin new blorgh --mountable
할 때 내가 입력한 이에미널을 얻을:
bash: bin/rails: No such file or directory
려고 하면 그냥 $ rails
그것은 확인을 작동합니다.
었을 사용하여 명령 라인의 몇 개월,레일 뿐입니다.알$sign 하지만 난에 대한 혼란의 의미는"bin"습니다.내가 사용 유형""레일 후 오른쪽$지만,이는 튜토리얼 말을 사용하는"bin"...
무엇 bin/
의미합니까?
해결책
tl;박사
실행 bundle install --binstubs
고 그것은 작동합니다.당신은 당신이 그것을 한번에 번들러한다는 것을 기억할 것입니다 그것을 물었(한)를 이용하실 수 있습니다
더 이상 응답
설치할 경우 번들 bundle --binstubs
,번들러 설치됩니다 모든의 특정 binstubs 로 bin/
하위 디렉터리(상대적록 gemfile 을),오히려 그들을 가하고 gemset 의 글로벌 binstub 경로입니다.
당신은 일반적으로 이를 수행하기:
- 는지 확인
rails
binstub 당신은 하나에도록 gemfile 을(반대하여 다른 버전을 가지고 설치하 gemset 나중에 별도로 번들러),고 - 을 향상시킬 수행 시간(이후 그것이 기능적으로 동일
bundle exec rails
를 제외하고 뺀 하위 프로세스 호출).
글로벌 binstubs 대 번들러 binstubs
는 경우에 당신은 유형 which rails
, 을 얻을 것이 긴 경로 /usr/local/rvm/gems/jruby-1.7.18/bin/rails
, 며,내용: cat `which rails`
#!/usr/bin/env jruby_executable_hooks
#
# This file was generated by RubyGems.
#
# The application 'railties' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/
version = $1
ARGV.shift
end
end
gem 'railties', version
load Gem.bin_path('railties', 'rails', version)
후 실행 bundler --binstubs
, 는 경우에,당신 cat bin/rails
, 에,당신은 같은 것을 얻을:
#!/usr/bin/env jruby
#
# This file was generated by Bundler.
#
# The application 'rails' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
Pathname.new(__FILE__).realpath)
require 'rubygems'
require 'bundler/setup'
load Gem.bin_path('railties', 'rails')
의 주요 차이점이 있는 bin/
버전을 설정합니다 BUNDLE_GEMFILE
환경변수가 필요합 bundler/setup
, 는 무엇을 말한 번들러를 가 그것의 일을 하는 보석으로 경로입니다.이 bin/rails
스크립트가 번들러를 인식하고 인식하도록 gemfile 을 할 수 있도록 환경을 준비입니다.
나는 일반적으로 사용하는 것이 좋습 --binstubs
고 bin/x
호출을 통해 gemset 버전입니다.
다른 팁
시나리오를 생각해보십시오:
을 했다는 응용 프로그램을 사용하여 레일 버전 4.0.0.나의 목표는 업그레이드 레일 4.1.9.그렇게 했어 업그레이드하는 단계별:첫째,업그레이드 4.0.13,다음 4.1 고 마지막으로 4.1.9.
모든 것이 순조로웠습니다.모든 테스트를 통과하여 RSpec.
마지막으로,전라북도 전주시 완산구 서버 rails s
.Booom!루비가 추락했다.다음 사용 bin/rails s
.모든 것을 확인했다.
그래서 내가 생각하는 경우에 당신은 다른 버전의 레일이 설정 시스템에서,그것을 사용하는 것이 더 안전 bin/rails
옵션입니다.
P.S.는지 확인하기 위해 가정이 올바른지,나는 모두 제거 레일 버전을 제외하고 4.1.9 및을 다시 실행하여 서버 rails s
.더 충돌하는 이 시간입니다.
이 명확히 희망.
을 실행할 때 실행을 통한 쉘에서 유닉스 기반의 운영체 시스템,시스템 경로 탐색되는 것이 처음이다.모두 보시려면 디렉토리에서 당신의 $PATH
, 이 터미널에서 프롬프트
echo $PATH
레일을 실행에 존재하는 것입니다 하나의 열거된 디렉터리입니다.
편집 텍스트 아래는 완전히 잘못된 것입,나의 죄송
선택적으로,뿌리에서 당신의 레일이 디렉토리를 실행할 수 있습니다 실행 bin 디렉토리에 있습니다.이렇게 하려는 것을 보장하기 위해,당신은 로컬 실행지 중 하나에서 발견 $PATH
, 이 필요'.'전의 명령입니다.그래서,
./bin/rails
지
bin/rails