Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


perl (46) Versions 6.0.0

Installs perl and provides a resource for maintaining CPAN modules

cookbook 'perl', '= 6.0.0', :supermarket
cookbook 'perl', '= 6.0.0'
knife supermarket install perl
knife supermarket download perl
Quality 100%

perl Cookbook

Build Status Cookbook Version

Manages Perl installation and provides cpan_module, to install modules from... CPAN.



  • Debian/Ubuntu/Mint
  • RHEL/CentOS/Scientific/Amazon/Oracle
  • Fedora
  • openSUSE
  • Windows


  • Chef 12.7+


  • windows


  • default - On Linux installs perl packages and pulls cpanm from Github. On Windows installs the Strawberry Perl Chocolatey package. Requires Chocolatey to be installed prior to running this cookbook, which can be done with the chocolatey cookbook from the Supermarket.


The cookbook ships with a sane set of platform specific attributes for installing perl as well as cpanm. There should be no need to modify these attributes to use this cookbook.

  • node['perl']['packages'] - platform specific packages installed by default recipe
  • node['perl']['cpanm']['path'] - platform specific path for cpanm binary to live
  • node['perl']['cpanm']['url'] - URL to download cpanm script from (*nix only)
  • node['perl']['cpanm']['checksum'] - checksum for the above remote file (*nix only)
  • node['perl']['version'] - version of perl to install. (windows only)
  • node['perl']['cpanm']['path'] - The path to the cpanm binary. On *nix systems this is where the file will be installed. On Windows it's part of Strawberry Perl so no additional installation is required.




  • :install - install the module (default action)
  • :uninstall - uninstall the module


  • module_name - The name of the module if it's different than the name of the resource property
  • force - To force the install within cpanm (default: false)
  • test - To do a test install (default: false)
  • version - Any version string cpanm would find acceptable
  • cwd - A path to change into before running cpanm


To install a module from CPAN:

cpan_module 'App::Munchies'

Optionally, installation can forced with the 'force' parameter.

cpan_module 'App::Munchies'
  force true

You can also use cpanm's version mechanism to grab a specific version, or glob a version.

Exactly version 1.01 of App::Munchies will be installed:

cpan_module 'App::Munchies'
  version '== 1.01'

At least version 1.01 of App::Munchies will be installed:

cpan_module 'App::Munchies'
  version '1.01'

At least version 1.01 will be installed, but not version 2:

cpan_module 'App::Munchies'
  version '>= 1.01, < 2.0'

Additionally, you can use the cpan_module LWRP to delete a given package (uses cpanm's --uninstall param)

cpan_module 'App::Munchies'
  action :uninstall


This cookbook is maintained by Chef's Community Cookbook Engineering team. Our goal is to improve cookbook quality and to aid the community in contributing to cookbooks. To learn more about our team, process, and design goals see our team documentation. To learn more about contributing to cookbooks like this see our contributing documentation, or if you have general questions about this cookbook come chat with us in #cookbok-engineering on the Chef Community Slack


Copyright: 2009-2017, Chef Software, Inc.

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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

windows >= 3.0

Contingent cookbooks

apache2_odin_auth Applicable Versions
backuppc-server Applicable Versions
bamboo Applicable Versions
freightyard Applicable Versions
gitlab Applicable Versions
ldapknife Applicable Versions
logwatch Applicable Versions
mogilefs Applicable Versions
munin-statsd Applicable Versions
nginx_simplecgi Applicable Versions
openvas Applicable Versions
rackspaceknife Applicable Versions
radiator Applicable Versions
sanoid Applicable Versions
smokeping Applicable Versions
snmp Applicable Versions
spacewalk-server Applicable Versions
sparrow Applicable Versions
sqitch Applicable Versions
stash Applicable Versions
taskwarrior Applicable Versions
zone2ldif Applicable Versions

perl Cookbook CHANGELOG

This file is used to list changes made in each version of the perl cookbook.

6.0.0 (2017-11-27)

Breaking changes

  • On Windows this cookbook now uses the Chocolatey package manager to install Strawberry Perl instead of downloading the zip file and manually installing it. This does require chocolatey to first be installed on the system and will use the C:\strawberry\perl path

Other Changes

  • Fixed Amazon Linux support on Chef 13
  • Removed build-essential from the Berksfile since it wasn't needed there
  • Fixed cpan_module resource to work on Windows as well
  • Added Windows 2016 Testing
  • Improved attribute and resource documentation in the readme

5.3.0 (2017-11-27)

  • Fixing the removal of the leading v and the conversion of the underscores to dots in Perl module versions when the version strings already have dots (ex: v1.2.0)
  • Enable FC016 testing again
  • Use the latest cpanm which has 4 years of bug fixes and enhancements

5.2.1 (2017-08-30)

  • Do not use an explicit owner and group on Windows. Let Chef do the right thing here which prevents breakage when the Administrator account has been renamed

5.2.0 (2017-05-06)

  • Fix license string to be a SPDX standard license string
  • Simplify true/false statement
  • Depend on a modern windows cookbook
  • Require Chef 12.7+ to workaround an action_class bug

5.1.0 (2017-03-01)

  • Resolve resource cloning in the test cookbook
  • Test with Local Delivery instead of Rake
  • Use the root_group attribute from Ohai instead of defining it ourselves
  • Use multi-package to speed up installs in the default recipe
  • Don't use "module" as a resource property since its reserved. Instead use module_name and wire it up so a user can actually define a module name here instead of the module name coming from the name of the resource

5.0.0 (2017-02-27)

  • Convert the existing HWRP to a custom resource and require Chef 12.5 and later

4.0.0 (2016-09-03)

  • Testing updates
  • Require Chef 12 or later

v3.1.0 (2016-08-05)

  • Added support for SUSE / openSUSE and IBM zlinux

v3.0.0 (2016-04-07)

  • Removed installation of the libwww-perl package, which is not required for Perl to function out of the box and can be installed by CPAN instead
  • Resolved Chef 13 compatibility warnings in the cpan_module provider
  • Updated the Windows Perl download URL to the new server
  • Updated Perl to on Windows
  • Added the windows cookbook as a dependency so the Windows install converges
  • Added module install / uninstall to the default Test Kitchen suite
  • Added a basic Kitchen Inspec test to ensure perl is installed
  • Added build-essential to the test cookbook so module installs would complete
  • Added perl-devel to RHEL 6+ hosts

v2.0.0 (2015-09-24)

  • Rewrote cpan_module definition as a LWRP with Chefspec tests and matchers
  • Add the ability to select version in the cpan_module LWRP
  • Fixed cpan_module incompatibility with Chef 12
  • Fixed download location for cpanm to prevent failures on the redirect
  • Removed Chef 10 compatibility. This cookbook now requires 11+
  • Added libwww-perl installation on Debian systems
  • Added support for RHEL/CentOS 7 and Fedora to the default.rb recipe
  • Added source_url and issues_url metadata
  • Added a chefignore file to limit files uploaded to the server
  • Updated Contributing and Testing docs
  • Added a rakefile for simplified testing
  • Added and maintainers.toml file and a Rake task for generating MD from TOML
  • Updated platforms tested in Kitchen CI and update the Kitchen config format
  • Updated to the standard chef .rubocop.yml file
  • Updated all testing and development gems to the latest
  • Add basic Chefspec test
  • Updated Travis CI to test on modern ruby versions and reenabled rspec and foodcritic testing
  • Added cookbook version and Travis CI badges to the readme
  • Added a .foodcritic file to skip FC015
  • Removed all references to Opscode
  • Remove the Gemfile.lock that shouldn't have been committed

v1.2.4 (2014-06-16)

  • [COOK-4725] Use windows_path to set the PATH


New Feature

  • COOK-4013 - add omnios support to perl cookbook





  • [COOK-2973]: perl cookbook has foodcritic errors


  • [COOK-1765] - Install Strawberry Perl on Windows in Perl Cookbook


  • [COOK-1300] - add support for Mac OS X


  • [COOK-1129] - move lists of perl packages to attributes by platform
  • [COOK-1279] - resolve regression from COOK-1129
  • [COOK-1299] - use App::cpanminus (cpanm) to install "cpan packages"


  • [COOK-1279] Re-factor recipe and fix platform_version 5 bug for redhat family platforms


  • [COOK-1129] centos/redhat needs the CPAN RPM installed


  • Current released version

Collaborator Number Metric

6.0.0 passed this metric

Contributing File Metric

6.0.0 passed this metric

Foodcritic Metric

6.0.0 passed this metric

License Metric

6.0.0 passed this metric

No Binaries Metric

6.0.0 passed this metric

Testing File Metric

6.0.0 passed this metric

Version Tag Metric

6.0.0 passed this metric