Aló chefs,
I am writing a recipe for installing and going back from ruby enterprise
edition to regular ruby in ubuntu. The guys at brightbox provide a nice apt
repo for ree. In that repo ree is packaged to overwrite regular ruby
locations.
The recipe that installs ruby enterprise from regular ruby basically adds a
file to /etc/apt/sources.list.d/ruby-ee with the repository parameters, this
notifies imediately an apt-get update, and then I have the following code
that tries to install ruby.
packages = %w(ruby ruby-dev rubygems libopenssl-ruby libreadline-ruby
librmagick-ruby librmagick-ruby1.8 rubygems1.8 ruby1.8 ruby1.8-dev
libopenssl-ruby1.8 librmagick-ruby1.8 libruby1.8)
packages.each do |p|
package p do
action [ :install, :upgrade ]
end
end
The reverse operation is performed in a similar way, I just check if ree is
installed, then I remove the /etc/apt/sources.list.d/ruby-ee file, apt-get
update, and the code above.
My problem: chef does not notice the change (apt-cache show ruby gives the
candidate though.)
Is this a problem on how chef handles the apt resource?
Should I pass an extra parameter to the package resource to force the
"upgrade"?
Thanks.
Jacobo García López de Araujo
blog: http://robotplaysguitar.com
http://workingwithrails.com/person/13395-jacobo-garc-a
On Tue, Feb 22, 2011 at 7:07 AM, Jacobo García jacobo.garcia@gmail.com wrote:
My problem: chef does not notice the change (apt-cache show ruby gives the
candidate though.)
Can you provide the package related output from running chef with "-l
debug"? For example:
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Checking apt-cache policy for
libmysqlclient-dev
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Current version is 5.1.41-3ubuntu12.9
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Current version is 5.1.41-3ubuntu12.9
Note that due to CHEF-1276 [1] the second one is the Candidate version.
Bryan
[1] http://tickets.opscode.com/browse/CHEF-1276
Hi Brian,
I did not answer sooner (my apologies) because I had to re-create the tests
environment, and then I figured it out what was going on.
It was not a chef problem at all, it was an apt problem.
According to brightbox wiki[1] to "downgrade" to regular ruby you need to do
some apt-pinning. The thing got a bit more complicated since there's a
bug[2] in aptitude and I had to workaround it through chef (that meant more
coding and testing) but now I am able to change back and forth from regular
ruby to ree with easily.
Thanks for your time.
[1] http://wiki.brightbox.co.uk/docs:ruby-enterprise
[2] Bug #508545 “Aptitude ignores /etc/apt/preferences.d/*” : Bugs : aptitude package : Ubuntu
Jacobo García López de Araujo
blog: http://robotplaysguitar.com
http://workingwithrails.com/person/13395-jacobo-garc-a
On Tue, Feb 22, 2011 at 7:15 PM, Bryan McLellan btm@loftninjas.org wrote:
On Tue, Feb 22, 2011 at 7:07 AM, Jacobo García jacobo.garcia@gmail.com
wrote:
My problem: chef does not notice the change (apt-cache show ruby gives
the
candidate though.)
Can you provide the package related output from running chef with "-l
debug"? For example:
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Checking apt-cache policy for
libmysqlclient-dev
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Current version is
5.1.41-3ubuntu12.9
[Tue, 22 Feb 2011 17:31:02 +0000] DEBUG: Current version is
5.1.41-3ubuntu12.9
Note that due to CHEF-1276 [1] the second one is the Candidate version.
Bryan
[1] http://tickets.opscode.com/browse/CHEF-1276