Question

When I try to install perlbrew on Mac OS X v10.9 (Mavericks) and MacPorts, this is what happens:

~$ curl -L http://install.perlbrew.pl | bash

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   315    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1020  100  1020    0     0    649      0  0:00:01  0:00:01 --:--:--  3217

## Download the latest perlbrew

## Installing perlbrew
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrew

perlbrew root (~/perl5/perlbrew) is initialized.

Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:

    source ~/perl5/perlbrew/etc/bashrc

Simply run `perlbrew` for usage details.

Happy brewing!

## Installing patchperl

ERROR: Failed to retrieve patchperl executable.

~$

I then removed ~/perl5/perlbrew and tried:

~$ curl -L http://install.perlbrew.pl | bash -x
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   315    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1020  100  1020    0     0    693      0  0:00:01  0:00:01 --:--:--  5368
+ PERLBREWURL=https://raw.github.com/gugod/App-perlbrew/master/perlbrew
+ '[' -z /var/folders/7l/nhyscwy14bjb_sxr_t2gynpm0000gn/T/ ']'
+ cd /var/folders/7l/nhyscwy14bjb_sxr_t2gynpm0000gn/T/
+ LOCALINSTALLER=perlbrew-14023
+ echo

+ type curl

+ PERLBREWDOWNLOAD='curl -f -sS -Lo perlbrew-14023 https://raw.github.com/gugod/App-perlbrew/master/perlbrew'
+ echo '## Download the latest perlbrew'
## Download the latest perlbrew
+ curl -f -sS -Lo perlbrew-14023 https://raw.github.com/gugod/App-perlbrew/master/perlbrew
+ echo

+ echo '## Installing perlbrew'
## Installing perlbrew
+ chmod +x perlbrew-14023
+ /usr/bin/perl perlbrew-14023 self-install
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrew

perlbrew root (~/perl5/perlbrew) is initialized.

Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:

    source ~/perl5/perlbrew/etc/bashrc

Simply run `perlbrew` for usage details.

Happy brewing!

+ echo '## Installing patchperl'
## Installing patchperl
+ /usr/bin/perl perlbrew-14023 -f -q install-patchperl

ERROR: Failed to retrieve patchperl executable.

+ clean_exit 1
+ '[' -f perlbrew-14023 ']'
+ rm perlbrew-14023
+ exit 1
~$

I'm stuck on the first step. How can I get perlbrew installed properly?

Was it helpful?

Solution

Or you can disable certificate checking. The following worked fine for me:

echo "check-certificate = off" >> ~/.wgetrc

perlbrew install-patchperl
perlbrew install-cpanm

Happy brewing!

OTHER TIPS

Perlbrew installs cleanly for me (also on Mac OS X 10.9.1).

There is an issue report (here) that it is worth you reading through. It seems likely to be an issue with your version of cURL coupled with GitHub HTTPS URLs. There are a couple of things worth trying:

  1. curl -kL http://install.perlbrew.pl | bash
    (-k allows insecure SSL connections)

  2. Install patchperl manually:

    curl -kL https://raw.github.com/gugod/patchperl-packing/master/patchperl > ~/perl5/perlbrew/bin/patchperl`
    

Based on a suggestion of @jm666, I tracked down the problem source (at least one of them).

What I did:

  • Removed perlbrew: rm -rf ~/perl5/* ~/.perlbrew
  • Completely removed macports
  • Installed a fresh macports package

And I tried installing my usual MacPorts and after every installed port, started a new terminal/shell and tried installing perlbrew.

After I installed the wget port, the perlbrew installation failed (installing the patchperl). After uninstalling the wget port, perlbrew installed again OK.

For the log, installing wget:

$ sudo port install wget
--->  Computing dependencies for wget
--->  Dependencies to be installed: gnutls libidn libtasn1 nettle p11-kit curl-ca-bundle desktop-file-utils glib2 libffi popt libxslt libxml2 xz libgcrypt libgpg-error pcre bzip2 libedit
--->  Fetching archive for libidn
--->  Attempting to fetch libidn-1.26_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libidn
--->  Attempting to fetch libidn-1.26_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libidn
--->  Installing libidn @1.26_0
--->  Activating libidn @1.26_0
--->  Cleaning libidn
--->  Fetching archive for libtasn1
--->  Attempting to fetch libtasn1-2.11_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libtasn1
--->  Attempting to fetch libtasn1-2.11_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libtasn1
--->  Installing libtasn1 @2.11_0
--->  Activating libtasn1 @2.11_0
--->  Cleaning libtasn1
--->  Fetching archive for nettle
--->  Attempting to fetch nettle-2.6_1.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/nettle
--->  Attempting to fetch nettle-2.6_1.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/nettle
--->  Installing nettle @2.6_1
--->  Activating nettle @2.6_1
--->  Cleaning nettle
--->  Fetching archive for curl-ca-bundle
--->  Attempting to fetch curl-ca-bundle-7.34.0_0.darwin_13.noarch.tbz2 from http://lil.fr.packages.macports.org/curl-ca-bundle
--->  Attempting to fetch curl-ca-bundle-7.34.0_0.darwin_13.noarch.tbz2.rmd160 from http://lil.fr.packages.macports.org/curl-ca-bundle
--->  Installing curl-ca-bundle @7.34.0_0
--->  Activating curl-ca-bundle @7.34.0_0
--->  Cleaning curl-ca-bundle
--->  Fetching archive for libffi
--->  Attempting to fetch libffi-3.0.13_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libffi
--->  Attempting to fetch libffi-3.0.13_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libffi
--->  Installing libffi @3.0.13_0
--->  Activating libffi @3.0.13_0
--->  Cleaning libffi
--->  Fetching archive for glib2
--->  Attempting to fetch glib2-2.38.2_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/glib2
--->  Attempting to fetch glib2-2.38.2_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/glib2
--->  Installing glib2 @2.38.2_0
--->  Activating glib2 @2.38.2_0
--->  Cleaning glib2
--->  Fetching archive for popt
--->  Attempting to fetch popt-1.16_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/popt
--->  Attempting to fetch popt-1.16_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/popt
--->  Installing popt @1.16_0
--->  Activating popt @1.16_0
--->  Cleaning popt
--->  Fetching archive for desktop-file-utils
--->  Attempting to fetch desktop-file-utils-0.15_1.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/desktop-file-utils
--->  Attempting to fetch desktop-file-utils-0.15_1.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/desktop-file-utils
--->  Installing desktop-file-utils @0.15_1
--->  Activating desktop-file-utils @0.15_1
--->  Cleaning desktop-file-utils
--->  Fetching archive for xz
--->  Attempting to fetch xz-5.0.5_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/xz
--->  Attempting to fetch xz-5.0.5_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/xz
--->  Installing xz @5.0.5_0
--->  Activating xz @5.0.5_0
--->  Cleaning xz
--->  Fetching archive for libxml2
--->  Attempting to fetch libxml2-2.9.1_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libxml2
--->  Attempting to fetch libxml2-2.9.1_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libxml2
--->  Installing libxml2 @2.9.1_0
--->  Activating libxml2 @2.9.1_0
--->  Cleaning libxml2
--->  Fetching archive for libxslt
--->  Attempting to fetch libxslt-1.1.28_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libxslt
--->  Attempting to fetch libxslt-1.1.28_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libxslt
--->  Installing libxslt @1.1.28_0
--->  Activating libxslt @1.1.28_0
--->  Cleaning libxslt
--->  Fetching archive for p11-kit
--->  Attempting to fetch p11-kit-0.20.1_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/p11-kit
--->  Attempting to fetch p11-kit-0.20.1_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/p11-kit
--->  Installing p11-kit @0.20.1_0
--->  Activating p11-kit @0.20.1_0
--->  Cleaning p11-kit
--->  Fetching archive for gnutls
--->  Attempting to fetch gnutls-3.1.10_1.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/gnutls
--->  Attempting to fetch gnutls-3.1.10_1.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/gnutls
--->  Installing gnutls @3.1.10_1
--->  Activating gnutls @3.1.10_1
--->  Cleaning gnutls
--->  Fetching archive for libgpg-error
--->  Attempting to fetch libgpg-error-1.12_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libgpg-error
--->  Attempting to fetch libgpg-error-1.12_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libgpg-error
--->  Installing libgpg-error @1.12_0
--->  Activating libgpg-error @1.12_0
--->  Cleaning libgpg-error
--->  Fetching archive for libgcrypt
--->  Attempting to fetch libgcrypt-1.5.3_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libgcrypt
--->  Attempting to fetch libgcrypt-1.5.3_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libgcrypt
--->  Installing libgcrypt @1.5.3_0
--->  Activating libgcrypt @1.5.3_0
--->  Cleaning libgcrypt
--->  Fetching archive for bzip2
--->  Attempting to fetch bzip2-1.0.6_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/bzip2
--->  Attempting to fetch bzip2-1.0.6_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/bzip2
--->  Installing bzip2 @1.0.6_0
--->  Activating bzip2 @1.0.6_0
--->  Cleaning bzip2
--->  Fetching archive for libedit
--->  Attempting to fetch libedit-20121213-3.0_0.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/libedit
--->  Attempting to fetch libedit-20121213-3.0_0.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/libedit
--->  Installing libedit @20121213-3.0_0
--->  Activating libedit @20121213-3.0_0
--->  Cleaning libedit
--->  Fetching archive for pcre
--->  Attempting to fetch pcre-8.33_1.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/pcre
--->  Attempting to fetch pcre-8.33_1.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/pcre
--->  Installing pcre @8.33_1
--->  Activating pcre @8.33_1
--->  Cleaning pcre
--->  Fetching archive for wget
--->  Attempting to fetch wget-1.14_5+ssl.darwin_13.x86_64.tbz2 from http://lil.fr.packages.macports.org/wget
--->  Attempting to fetch wget-1.14_5+ssl.darwin_13.x86_64.tbz2.rmd160 from http://lil.fr.packages.macports.org/wget
--->  Installing wget @1.14_5+ssl
--->  Activating wget @1.14_5+ssl

To customize wget, you can copy /opt/local/etc/wgetrc.sample to /opt/local/etc/wgetrc and then make changes.

--->  Cleaning wget
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.

perlbrew curl -kL http://install.perlbrew.pl | bash failed with

ERROR: Failed to retrieve patchperl executable.

Uninstalling the wget port:

$ sudo port uninstall wget
--->  Deactivating wget @1.14_5+ssl
--->  Cleaning wget
--->  Uninstalling wget @1.14_5+ssl
--->  Cleaning wget
$
$ rm -rf ~/perl5/perlbrew/ ~/.perlbrew/
$ curl -kL http://install.perlbrew.pl | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0   315    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  1020  100  1020    0     0   1551      0 --:--:-- --:--:-- --:--:--  1551

## Download the latest perlbrew

## Installing perlbrew
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrew

perlbrew root (~/perl5/perlbrew) is initialized.

Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:

    source ~/perl5/perlbrew/etc/bashrc

Simply run `perlbrew` for usage details.

Happy brewing!

## Installing patchperl

## Done.

Conclusion: Something go wrong with a combination of MacPorts' wget and perlbrew.

Check your PATH order. Watch out for macports PATHs getting added later to the search than the perlbrew paths. I just cleaned out a bunch of "helper" addenda PATHs in .bash_profile, .profile and put everything in .bashrc, in the order in which I want to search, i.e. perlbrew before macports before system. If you are left joining your path, i.e. PATH=/foo:/bar:$PATH, go in reverse order in your start up file than you want the search path to accrue. Below I add the macports /opt/local/bin:/opt/local/sbin to the path before the perlbrew path elements.

perl-swine:~ $ cat .bash_profile
[ -r /Users/perl-swine/.bashrc ] && source /Users/perl-swine/.bashrc
# $PATH in .bashrc


perl-swine:~ $ cat .profile
if [ -f ~/.bashrc ]
then
    source ~/.bashrc
fi
# $PATH in .bashrc


perl-swine:~ $ cat .bashrc 
yadda
yadda moving along to the important part
yadda
# macports
PATH=/opt/local/bin:/opt/local/sbin:$PATH
#python
PATH=/Library/Frameworks/Python.framework/Versions/2.6/bin:$PATH
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
#perlbrew
source /Users/perl-swine/perl5/perlbrew/etc/bashrc
export PATH;

perl-swine:~ $ echo $PATH
/Users/perl-swine/perl5/perlbrew/bin:/Users/perl-swine/perl5/perlbrew/perls/perl-5.18.2/bin:/Library
/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions
/2.6/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt
/X11/bin:/usr/texbin

perl-swine:~ $ which perl
/Users/perl-swine/perl5/perlbrew/perls/perl-5.18.2/bin/perl

perl-swine:~ $ perlbrew list
  perl-5.16.0 (5.16.3)
* perl-5.18.2



perl-swine:~ $ which perl5
/opt/local/bin/perl5

perl-swine:~ $ which perl5.12
/opt/local/bin/perl5.12

perl-swine:~ $ sudo port list installed | grep perl
perl5                          @5.12.4         lang/perl5
perl5.12                       @5.12.4         lang/perl5.12
perl5.16                       @5.16.1         lang/perl5.16


perl-swine:bin $ ls /usr/bin/perl*
-rwxr-xr-x   1 root  wheel  58608 Oct 23 00:47 /usr/bin/perl
-rwxr-xr-x   1 root  wheel  35440 Oct 23 00:54 /usr/bin/perl5.12
-rwxr-xr-x   1 root  wheel  35440 Oct 23 00:47 /usr/bin/perl5.16

For me it helped changing the PATH environment variable - disable MacPorts by commenting out the next line.

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

or similar in your ~/.profile.

Something doesn't play nicely from the MacPorts binaries in /opt/local/bin with perlbrew.

For example, with enabled macports, for the

perlbrew self-upgrade

you will get

Unable to detect version of new perlbrew!

with disabled macports in a PATH will get correctly:

Your perlbrew is up-to-date.

and like.

After installing perlbrew, and your perlbrew's version of Perl and (ofc) sourcing the perlberw's bashrc you can return the PATH - only don't forget comment out every time when you want use perlbrew itself. And the

source ~/perl5/perlbrew/etc/bashrc

should be after the macports PATH setting.

At least, on my installation - maybe your problem has another roots...

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top