Hey,
So it seems some of the cookbooks from Opscode by default set depends statements in their metadata.rb for cookbooks that are required by a particular OS/Distro. In the case of say tomcat cookbook it sets jpackage as a dependence but you only need that for RPM base Distro’s. Since I am deploying on a Ubuntu box I am not included jpackage in the run list and that made it very unhappy. So I just removed it from the metadata.rb but I am just wondering if this is what is expected to be done by the cookbook provided by opscode?
Thanks
Zuhaib
I've been using the "suggests" metadata field, but this also sucks.
We really want/need a platform-specific "depends" metadata.
like, maybe take a hash of platforms?
depends { "ubuntu" => [ "apt", "ubuntu", "reprepro"],
"redhat" => [ "yum", "redhat", "some_repo_software"] }
–AJ
On 21 October 2011 09:32, Zuhaib Siddique zuhaib.siddique@leapfile.com wrote:
Hey,
So it seems some of the cookbooks from Opscode by default set depends statements in their metadata.rb for cookbooks that are required by a particular OS/Distro. In the case of say tomcat cookbook it sets jpackage as a dependence but you only need that for RPM base Distro's. Since I am deploying on a Ubuntu box I am not included jpackage in the run list and that made it very unhappy. So I just removed it from the metadata.rb but I am just wondering if this is what is expected to be done by the cookbook provided by opscode?
Thanks
Zuhaib
Can't you wrap the depends in an if block?
On Oct 20, 2011, at 3:57 PM, AJ Christensen wrote:
I've been using the "suggests" metadata field, but this also sucks.
We really want/need a platform-specific "depends" metadata.
like, maybe take a hash of platforms?
depends { "ubuntu" => [ "apt", "ubuntu", "reprepro"],
"redhat" => [ "yum", "redhat", "some_repo_software"] }
–AJ
On 21 October 2011 09:32, Zuhaib Siddique zuhaib.siddique@leapfile.com wrote:
Hey,
So it seems some of the cookbooks from Opscode by default set depends statements in their metadata.rb for cookbooks that are required by a particular OS/Distro. In the case of say tomcat cookbook it sets jpackage as a dependence but you only need that for RPM base Distro's. Since I am deploying on a Ubuntu box I am not included jpackage in the run list and that made it very unhappy. So I just removed it from the metadata.rb but I am just wondering if this is what is expected to be done by the cookbook provided by opscode?
Thanks
Zuhaib
On Oct 20, 2011, at 3:32 PM, Zuhaib Siddique wrote:
So it seems some of the cookbooks from Opscode by default set depends statements in their metadata.rb for cookbooks that are required by a particular OS/Distro.
Yup. I see that throughout all (or almost all) of the cookbooks.
In the case of say tomcat cookbook it sets jpackage as a dependence but you only need that for RPM base Distro's. Since I am deploying on a Ubuntu box I am not included jpackage in the run list and that made it very unhappy. So I just removed it from the metadata.rb but I am just wondering if this is what is expected to be done by the cookbook provided by opscode?
I have the reverse problem -- I'm on CentOS, but all (or almost all) of the cookbooks I pull down have massive Ubuntu/Debian dependencies built into them. I end up having to figure out how to port the cookbook over to CentOS before I can actually use it. Sometimes this isn't a great deal of hassle, and sometimes it is quite a bit more hassle than I had anticipated.
I generally wrap all the obvious stuff in "case node['platform'] ... when" statements. But, for example, there are some cookbooks that depend on things like apt, even though they don't actually use apt to install packages -- at least, not on CentOS.
I've tried to contribute all my changes back to the project, so that hopefully others won't have to go through quite as much pain as I have done. But this is a young company and there is a lot of work to do.
--
Brad Knowles bknowles@ihiji.com
SAGE Level IV, Chef Level 0.0.1
A trick I've used when in a rush:
If the dependency is only In the manifest, and you're positive you don't need eg jpackage on any of your nodes, you can just stub it out.
That is, create a new empty jpackage cookbook and upload that one.
Not a long-term solution, but it may help in the short term. YMMV
On Oct 20, 2011, at 10:32 PM, Zuhaib Siddique zuhaib.siddique@leapfile.com wrote:
Hey,
So it seems some of the cookbooks from Opscode by default set depends statements in their metadata.rb for cookbooks that are required by a particular OS/Distro. In the case of say tomcat cookbook it sets jpackage as a dependence but you only need that for RPM base Distro's. Since I am deploying on a Ubuntu box I am not included jpackage in the run list and that made it very unhappy. So I just removed it from the metadata.rb but I am just wondering if this is what is expected to be done by the cookbook provided by opscode?
Thanks
Zuhaib