Development repository for Opscode Cookbook build-essential
Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 319 commits behind chef-cookbooks:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
attributes
libraries
recipes
spec
test/integration/default/serverspec
.gitignore
.kitchen.cloud.yml
.kitchen.yml
.rubocop.yml
.travis.yml
Berksfile
CHANGELOG.md
CONTRIBUTING
Gemfile
Guardfile
LICENSE
README.md
Rakefile
TESTING.md
matrix
metadata.rb

README.md

Description

Cookbook Version Build Status

Installs packages required for compiling C software from source. Use this cookbook if you wish to compile C programs, or install RubyGems with native extensions.

Requirements

Chef 0.10.10+ and Ohai 0.6.12+ are required. For the latest list of supported platforms, please see the metadata.rb.

Note for OmniOS: Currently, OmniOS's Ruby package is built with GCC 4.6.3, and the path is hardcoded, as the gcc binaries are not installed in the default $PATH. This means that in order to install RubyGems into the "system" Ruby, one must install developer/gcc46. An issue is open upstream w/ OmniOS to rebuild the Ruby package with GCC 4.7.2.

Attributes

Attribute Default Description
compile_time false Execute resources at compile time

Usage

Include the build-essential recipe in your run list:

knife node run_list add NODE "recipe[build-essential::default]"

or add the build-essential recipe as a dependency and include it from inside another cookbook:

include_recipe 'build-essential::default'

Gems with C extensions

For RubyGems that include native C extensions you wish to use with Chef, you should do the following.

  1. Set the compile_time attribute to true in your wrapper cookbook or role:

    # Wrapper attribute
    default['build-essential']['compile_time'] = true
    # Role
    default_attributes(
      'build-essential' => {
        'compile_time' = true
      }
    )
  2. Ensure that the C libraries, which include files and other assorted "dev" type packages, are installed in the compile phase after the build-essential recipe is executed. For example:

    include_recipe 'build-essential::default'
    
    package('mypackage-devel') { action :nothing }.run_action(:install)
  3. Use the chef_gem resource in your recipe to install the gem with the native extension:

    chef_gem 'gem-with-native-extension'

License & Authors

Copyright 2009-2014, Chef Software, Inc. (<legal@getchef.com>)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.