2012-07-19 4 views
7

나는 루비가 처음이므로 보석으로 패키지 된 일부 루비 앱을 디버깅해야한다.python setup.py와 동등한 루비는 무엇입니까?

저는 패키지를 보석으로 설치 한 rvm을 사용하고 있으며 해당 패키지에 대한 새로운 github 체크 아웃을 가지고 있습니다. 설치된 보석 대신 github repo에서 코드를 사용하도록 내 rvm 환경에 어떻게 알릴 수 있습니까?

이것은 파이썬에 익숙한 사람들에게 python setup.py develop과 같습니다.

Setuptools를 사용하면 파일을 복사하지 않고도 공용 디렉토리 또는 준비 영역에서 프로젝트를 사용할 수 있습니다. 따라서, 당신은 그것의 체크 아웃 디렉토리에

https://pythonhosted.org/setuptools/setuptools.html#development-mode

답변

7

그래 각 프로젝트의 코드를 수행 할 수 있습니다 편집 할 수 있습니다.

체크 아웃 Bundler 그것을 사용하는 사실상의 표준입니다.

+0

번들러를보고 다음을 수행했습니다. 먼저 rvm에서 새 gemset을 만든 다음 gem을 설치하고 bundler를 설치합니다. 예상대로 모든 종속성을 설치하지만 실제로 번들을 설치 한 실제 응용 프로그램을 실행하려고하면 추적이됩니다. 그것이 rvm/gemset/무엇이든간에 내 사용법에서 오는 것인지 확실하지 않습니다. 추적은 "/Users/cournape/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in'to_specs ': 찾을 수 없습니다. vagrant (> = 0) [...] (방랑자는 내가 찾고있는 앱이 됨) –

+0

Hm. 방랑자를 어떻게 운영하고 있습니까? 설치를 번들 한 다음에는이를 설치할 수 있습니다. 'bin/vagrant'를 실행하고 방금 체크 아웃 한 코드를 실행하십시오 .gemset이 무관하게해야하지만'bundle exec/vagrant'도 할 수 있습니다. ('bundle exec'는 사용할 수있는 보석을 샌드 박스에 넣습니다. 'Gemfile.lock' 파일에있는 파일들입니다. 그러나 새로운 gemset을 가지고 있다면 거의 동일해야합니다.) –

+0

제가 잘못 생각한 것 같습니다. 더 이상 문제가 보이지 않습니다. 어떤 경우에도 번들 사용에 대한 조언 임원은 완벽하게 작동합니다. 감사합니다 –

0

이전 답변 외에.

때로는 보석/패키지가 실행 파일을 제공합니다. python setup.py develop의 좋은 점은 항상 경로에 해당 실행 파일의 최신 버전이 있다는 것입니다. 개발을위한 일종의 편리합니다. 내가 아는 한 보석은 그러한 기능을 제공하지 않습니다. 당신이 Bundler를 사용할 수있는 에뮬레이션과는 어떻게하려면

  • 먼저 만드는 새로운 Gemfile : bundle init
  • 은 다음 (가 Nanoc 나를 위해) 해당 파일을 편집하고 작업중인 지역의 보석을 추가 gem "nanoc", path: "path/to/local/nanoc"bundle exec nanoc ... 다음

bundle exec이 Gemfile에서 보석 버전을 가지고 그것을 사용합니다 :

  • 그런 다음 들러 그 방법을 보석에 의해 제공되는 실행 파일을 사용할 수있는 액세스 할 수 있습니다. 해당 보석이 :path 옵션으로 지정되면 해당 보석이 사용됩니다.

    파이썬에서는 당연히 덜 편리하지만 Ruby에서 가장 가까운 해결책입니다.