최근에 Ruby를 업데이트하고 몇 가지 프로젝트를 업그레이드했습니다. 그렇게 하는 동안 전에는 몰랐던 꽤 멋진 RubyGems 기능을 발견했습니다.
실행 파일이 오래된 경우
rvm
을 사용했습니다. Ruby 버전을 관리합니다. 하지만 마지막으로 기기를 설정할 때 기기 없이 사용하기로 결정했습니다. Bundler가 있으면 보석 세트가 필요하지 않으며 Homebrew를 사용하여 Ruby를 최신 상태로 유지할 수 있습니다.
이것은 Ruby를 업데이트할 때까지 훌륭하게 작동합니다. 그리고 rails new
, bundle install
다른 모든 명령이 중단됩니다. 그들은 이전 방금 설치한 버전이 아닌 Ruby 버전입니다.
각 gem을 하나씩 제거하고 다시 설치하여 이 문제를 해결할 수 있습니다. 그러나 그것은 단지 미쳤습니다. 대신 gem pristine
을 사용해 보세요. :
gem pristine --all --only-executables
gem pristine
gem을 가져 와서 원래 다운로드 한 버전으로 재설정합니다. gem을 제거하고 다시 설치하는 것과 같습니다. (디버깅하는 동안 gem을 편집하기로 결정하고 다시 변경하는 것을 잊은 경우에도 유용합니다.)
--all
"모든 보석"을 의미하고 --only-executables
/usr/local/bin/rails
와 같은 재설정 파일만 의미합니다. 및 /usr/local/bin/bundle
". 즉, 명령줄에서 gem을 실행하는 데 사용하는 스크립트만 수정하세요.
따라서 이 명령은 /usr/local/bin/rails
와 같은 파일을 재설정합니다. gem을 제거했다가 다시 설치했다면 어땠을까요?
1분 후 앱 작업으로 돌아갑니다.
이전 버전이 필요한 경우
respond_to
에 내 게시물을 작성할 때 , 그것에 대해 자세히 알아보기 위해 몇 가지 작은 앱을 만들었습니다. 몇 가지 다른 Rails 버전을 사용하여 각 버전이 respond_to
를 어떻게 처리했는지 확인했습니다. 및 respond_with
.
올바른 Rails 버전으로 각 Rails 앱을 어떻게 생성합니까? 이 작업을 수행할 필요가 없습니다.
gem install rails -v 4.0.0
rails new respond_to_4.0
gem uninstall rails
gem install rails -v 4.1.0
rails new respond_to_4.1
gem uninstall rails
더 쉬운 방법이 있습니다. 밑줄을 사용하여 명령줄에서 바로 실행할 버전을 RubyGems에 알릴 수 있습니다.
rails _4.0.0_ new respond_to_4.0
rails _4.1.0_ new respond_to_4.1
퍼지 보석 버전
그러나 마지막 섹션에는 여전히 문제가 있습니다. 아마도 실제로 4.0.0을 설치하고 싶지 않을 것입니다. 모든 사소한 업데이트가 포함된 최신 버전의 4.0을 원합니다.
하지만 Rails 4.0의 최신 마이너 버전이 무엇인지 기억하십니까?
찾아보는 방법은 많습니다. 하지만 RubyGems가 원하는 작업을 수행할 수 있는데 왜 검색합니까?
gem install rails -v "~>4.0.0"
Bundler에서 알고 있는 모든 버전 문자열을 사용할 수 있습니다.
gem install rails -v ">3.1, <4.1"
유용한! 특히 나처럼 컴퓨터가 더 잘하는 일을 하는 것을 싫어한다면.
하지만 알 필요는 없습니다 이 모든 것
이러한 문제에 부딪쳤을 때 쉬운 답이 있는지 몰랐습니다. 하지만 아마도 하나가 있을 것이라고 추측할 수 있습니다.
모두 혼자서 해결할 수 있는 상황들이었지만, 반복적이고 성가신 일이었습니다.
특히 잘 사용되는 프로젝트에서 이와 같이 반복적이고 성가신 작업을 발견하면 다음 두 가지 중 하나를 의미합니다.
- 누군가가 이미 자동화했거나
- 많은 사람들이 당신이 자동화하세요.
그러므로 바쁜 일을 하기 전에 조금 더 깊이 파헤쳐 보세요. 조금 조사하십시오. 시간을 할애할 가치가 있습니다.
이 게시물은 원래 내 목록에만 전송되었습니다. 매주 금요일 받은편지함에 유사한 게시물을 더 많이 받으려면 여기에서 가입하세요!