berrybrew, the Perlbrew for Windows has been updated

berrybrew, the Perlbrew for Windows has been updated.

The significant new feature is the ability to automatically fetch the available Perl instances using Strawberry's new JSON releases file. This does not happen every time you use available, as I didn't want to force a user to have to be connected to the Internet while using berrybrew. Instead, I added a new berrybrew fetch command that does the work.

Things to know:

  • we now only list the most recent point version of each major release (this may change in the future)
  • we list the 64bit, 32bit and the PDL version of each major release, where available (this may also change to include other versions, such as USE_LONG_DOUBLE etc)
  • upon the first fetch, if any of the currently installed instances are lower than the most recent point release per version, we register them as custom installs. This allows them to continue to be maintained by berrybrew, and don't fall off the map as orphaned instances

I have also introduced changes to berrybrew upgrade. Previously, we'd make a backup of all JSON configuration files, then after the binary upgrade, we'd put those files back into the data/ production directory. Now, we still back up all of the configs, but the only one restored is the perls_custom.json file. If any custom modifications were made to any of the other config files, they will have to be manually merged back into the equivalent file in the data/ directory from the backups. That said, it is my understanding that very few people modify the configs anyway, so this shouldn't concern many.

To install without already having berrybrew installed, either git clone https://github.com/stevieb9/berrybrew or download the pre-built zip archive, and unzip it to anywhere other than c:\berrybrew, then:

  • cd repo_dir
  • bin\berrybrew.exe config
  • close cmd window, open new one
  • berrybrew install ...
  • close cmd, open new one
  • and you're good to go

Note that because I maintain David Farrell's original repository of the project that mine was based off of, it has been updated as well.

Here's the process to do an upgrade from a previous version. First show the list that appears within the current version:

 > berrybrew available

The following Strawberry Perls are available:

        5.24.1_64       [installed] *
        5.24.1_32
        5.24.0_64       [installed]
        5.24.0_64_PDL
        5.24.0_32
        5.22.3_64
        5.22.3_32
        5.22.2_64
        5.22.2_64_PDL
        5.22.2_32
        5.22.1_64       [installed]
        5.22.1_32
        5.20.3_64
        5.20.3_64_PDL
        5.20.3_32
        5.20.3_32_PDL
        5.18.4_64
        5.18.4_32
        5.16.3_64
        5.16.3_32
        5.14.4_64
        5.14.4_32
        5.12.3_32
        5.10.1_32

* Currently using

Then, upgrade:

> cd berrybrew_repo

Either use git pull, or extract out the zip file over the existing installation. The older version of upgrade will trample on the new configuration file, so if you use berrybrew upgrade, download the config.json file from the repository, and place it into your data/ directory.

berrybrew available will show if you have orphans that aren't listed in the new available file:

WARNING! orphaned perl installations:


  5.22.1_64
  5.24.0_64

Run the fetch, and your previous installs that don't line up with the current Perls are registered for use with berrybrew.

> berrybrew fetch

> berrybrew available

The following Strawberry Perls are available:

        5.24.1_64       [installed] *
        5.24.1_64_PDL
        5.24.1_32
        5.22.3_64
        5.22.3_64_PDL
        5.22.3_32
        5.20.3_64
        5.20.3_64_PDL
        5.20.3_32
        5.18.4_64
        5.18.4_32
        5.16.3_64
        5.16.3_32
        5.14.4_64
        5.14.4_32
        5.12.3_32
        5.10.1_32
        5.8.9_32
        5.22.1_64       [custom] [installed]
        5.24.0_64       [custom] [installed]

* Currently using

You can now...

berrybrew switch $version

... to them, and continue using them as normal.

Leave a comment

About Steve Bertrand

user-pic Just Another Perl Hacker