Giter Site home page Giter Site logo

puppet-perlbrew's Introduction

NAME

puppet-perlbrew

This puppet module features the tool perlbrew. Perlbrew can be used to install different Perl versions on your OS.

SYNOPSIS

class { "perlbrew": }
perlbrew::build { "5.8.9":
  version => "5.8.9",
}
perlbrew::install_cpanm { "5.8.9": }
perlbrew::install_module { "Log::Log4perl": perl => "5.8.9" }

LICENSE

This module is licensed under The Artistic License 2.0 which is included in this package. Perlbrew is licensed under the MIT license.

puppet-perlbrew's People

Contributors

rafl avatar rhaen avatar robkinyon avatar rsrchboy avatar rwstauner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

puppet-perlbrew's Issues

PERLBREW_ROOT configurable

The location/directory for the initialization of the perlbrew toolchain - the PERLBREW_ROOT should be configurable from parameters which are being passed to the class.

Perlbrew installation failure

Hello,

In my puppet node.pp file i have the following
class { 'perlbrew': }
perlbrew::build { "5.18.1":
version => "perl-5.18.1",
}

I see the below information when i run vagrant with --verbose --debug options set.

Debug: /Stage[main]/Perlbrew::Environment/Exec[perlbrew_init]/require: requires Group[perlbrew]
Debug: /Stage[main]/Perlbrew::Environment/Exec[perlbrew_init]/require: requires User[perlbrew]

I do not see the command to run perlbrew init being ran. This I believe is causing the following:
Error: /bin/sh -c 'umask 022; /usr/bin/env PERLBREW_ROOT=/usr/local/perlbrew /usr/local/bin/perlbrew install perl-5.18.1 --as 5.18.1 -Accflags=-fPIC -Dcccdlflags=-fPIC' returned 2 instead of one of [0]
Error: /Stage[main]//Node[puppet.mb.test.local]/Perlbrew::Build[5.18.1]/Exec[perlbrew_build_5.18.1]/returns: change from notrun to 0 failed: /bin/sh -c 'umask 022; /usr/bin/env PERLBREW_ROOT=/usr/local/perlbrew /usr/local/bin/perlbrew install perl-5.18.1 --as 5.18.1 -Accflags=-fPIC -Dcccdlflags=-fPIC' returned 2 instead of one of [0]

Any ideas on why i don't see the init command being executed?

perlbrew user/group configurable

The user and group for the perlbrew installation should be configurable. The class should be rewritten to a parameterized class with optional user/group.

If no user/group are provided the perlbrew installation should have a valid and sane default (tbd)

Module rewrite (Class/define/resources)

The module has some problems in terms of inheritance, dependencies. In order to make the module style guide conform - the module should be refactored.

The rewrite and future module structure has been documented in the wiki:

Fix inherits/includes

The modules has problems to do things in the correct order.

A proper depencency chain for ressources is needed to make this module usable.

Multivendor/distribution/OS support

In order to make this module usable on different platforms with different OS and distributions support for them should be added.

Support is planned for:

  • Debian / Ubuntu
  • RHEL Linux 5/6

more support can be added at a later point.

Improvement of documentation

Every class in the module should have a valid documentation header which explains how to use the class properly.

The style of the header should be parseable by puppetdoc to generate usable output.

/usr/local/bin/perlbrew no such file or directory

first time using this module on a fresh install I get:

Error: /usr/bin/env: /usr/local/bin/perlbrew: No such file or directory

Running puppet again everything works. Which means it's a dependency order issue.

 exec {
    'perlbrew_init':
      command => "/bin/sh -c 'umask 022; /usr/bin/env PERLBREW_ROOT=${perlbrew::params::perlbrew_root} ${perlbrew::params::perlbrew_bin} init'",
      creates => "${perlbrew::params::perlbrew_root}/perls",
      user    => 'perlbrew',
      group   => 'perlbrew',
      require => [ Group['perlbrew'], User['perlbrew'] ],
  }

The require should also have

File[$perlbrew::params::perlbrew_bin]

as part of the array. Puppet is pretty dumb sometimes. To reproduce:

node 'mah.cool.host' {
  class {'perlbrew':}
  perlbrew::build {"5.18.2":
    version => "5.18.2",
  }
}

Setup test matrix for travis-ci

Right now not all ruby versions/puppet versions are tested properly. A test matrix should be introduced to test the OS related ruby/puppet versions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.