-
Notifications
You must be signed in to change notification settings - Fork 216
Deploying Perl bindings from tools installed with Homebrew on OS X
by Lieven Hollevoet @hollie
I have been using Perlbrew happily on OS X to install custom/recent Perl versions. Sometimes I need a more or less exotic Perl binding that I could easily install using Homebrew. Recent updates to Homebrew made that process a bit less automatic.
Below I describe how to install the perl-shared binding for RRDTool on a recent OS X with a recent version of Homebrew.
There are two issues with the combination of Perlbrew and Homebrew:
- Homebrew assumes you're using the system Perl and does not automatically detect your locally-installed Perl.
- Latest versions of Homebrew work in a sandbox environment. This means that the build chain has no write permissions to the folder that contains the Perlbrew site modules.
This can be forced by passing to brew
the option --env=std
. For more information and the discussion about this please see the last posts in this support ticket.
When you're install a packet with brew, the sandbox seems to prohibit writes to other folders than the target folder for the brew process. This means that if a packet creates a Perl module, this module cannot be written to the Perl site module folder. To work around that:
- enable the option to not delete the build folder
- navigate to the build folder yourself and install the perl module.
brew install --env=std --build-from-source --keep-tmp rrdtool
Then navigate to the temp folder where the build results are retained. The full path is listed in the output of the previous command.
Go into the subfolder bindings/perl-shared
and do make install
there. You'll see the RRDs.pm nicely be deployed into your favorite Perl version module folder.
I've discussed this with a developer from Homebrew.