Chef를 사용하여 Ubuntu 12.04를 실행하는 노드를 설정하고 있습니다. 나는 Chef를 포함한 Ruby 1.9.3을 사용하고 싶었고, 이것을 달성하기 위해 찾은 this 커스텀 부트 스트랩 파일을 사용하고 있습니다. (이전에 Chef와 함께 RVM을 사용해 보았는데, 문제가 발생했을 때마다 오류가 발생하기 쉽습니다.)gem_package가 Ruby 1.9.3에서 실패 함 - 정의되지 않은 메소드 'full_name'for nil
이 노드에서 chef-client를 실행하면 도달합니다. 내 레일 응용 프로그램을 설치하기의 요점은, 따라서 Bundler 프로그램을 설치하려고 및 실패
Recipe: <Dynamically Defined Resource>
* gem_package[Bundler] action install
================================================================================
Error executing action `install` on resource 'gem_package[Bundler]'
================================================================================
NoMethodError
-------------
undefined method `full_name' for nil:NilClass
Resource Declaration:
---------------------
# In /var/chef/cache/cookbooks/application_ruby/providers/rails.rb
162: gem_package gem do
163: action :install
164: source src if src
165: version ver if ver && ver.length > 0
166: end
167: end
Compiled Resource:
------------------
# Declared in /var/chef/cache/cookbooks/application_ruby/providers/rails.rb:162:in `block in install_gems'
gem_package("Bundler") do
provider Chef::Provider::Package::Rubygems
action [:install]
retries 0
retry_delay 2
package_name "Bundler"
version ">1.3"
cookbook_name "tiptap_api"
end
문제를 분리하려고 시도하기 위해, 나는 배치 시도하기 전에 조리법에 gem_package
에 다음 호출을 배치 :
gem_package 'Bundler' do
version '>0'
action :install
end
T 그의 방식도 마찬가지로 실패합니다.
실제로 apt-get에서 실행 가능한 gem
실행 파일은 실제로 gem1.9.1
으로 명명되었습니다. 이것이 문제 일 수 있다고 생각하여 gem
으로 이름을 변경했습니다. 이 작업이 완료되면 sudo gem install bundler
을 정상적으로 실행할 수 있지만 요리사 클라이언트는 여전히이 오류를 생성합니다.
어떻게 될까요, 어떻게 해결할 수 있습니까? 왜이 오류 메시지가 그렇게 끔찍한가요?
''bundler ''는''Bundler''와 같지 않습니다. 케이스 문제! –
@HolgerJust 한 손으로, 나는 바보처럼 느껴진다. 반면에, 제 문제는 해결되었습니다. 당신이 대답을하고 싶다면, 행복하게 받아 들일 것입니다. – MrTheWalrus
그런 식으로 느끼지 마십시오. 때로는 필요한 것은 명백한 점을 찾기위한 눈의 또 다른 쌍일뿐입니다. –