udo
udo

Reputation: 5180

MAMP: How to upgrade PEAR

When trying to upgrade MAMP pear the following error is raised:

Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
ERROR: The default config file is not a valid config file or is corrupted.

Some suggestions how to fix this?

Steps to reproduce:

Update (1):

Based on answer 8375349/420953 I tried 2 possibilities to fix this

both resulted in error:

Could not get contents of package "/Applications/MAMP/bin/php/php5.3.6/bin/pear". Invalid tgz file.
upgrade failed

Update (2):

running

results in output

With this, I noticed that I was using the "local" version of PEAR.

I removed it with

and then tried to upgrade the MAMP version of PEAR with

this results in error

Cannot install, php_dir for channel "pear.php.net" is not writeable by the current user

upgrading with

installs it locally (again).

running

outputs

this brings me back to the starting point of Update (2). Seems that I am not able to upgrade PEAR under a MAMP directory.

Update (3):

I posted question

because my assumption is that the root of this issue is related to MAMP PEAR config.

Update (4):

I did not install a local PEAR version and this was causing quite some issues. After also installing a local version (and not only the MAMP) version, upgarding the MAMP version worked perfectly.

Upvotes: 21

Views: 9857

Answers (4)

Volzy
Volzy

Reputation: 225

Just chipping in with a late response for others finding this answer. My PEAR config had several issues and not just the php_dir config setting.

I had to go over all of my settings to verify that the count was correct. When all errors where fixed my PEAR was working fine again.

Seeing this message in the terminal:

Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050
ERROR: The default config file is not a valid config file or is corrupted.
  1. Go to your PEAR Config file (probably located here /MAMP/bin/php/php7.0.10/conf/pear.conf)
  2. Go to the 276th character in that file and verify that the string length matches the s43 that's defined before the string.
  3. Run a PEAR command again (e.g. pear version)
  4. If you have more errors located at e.g. 317th character you count that string and write the length in the s:XX before the string.

Just for clarifying for others finding this issue. The PEAR Config file is a serialized object that is unserialized when running commands.

A serialized object looks like s:5:"value" with the s:5 defining the length the string.

Upvotes: 1

Soben
Soben

Reputation: 41

Edit the pear.conf: Adding a forward slash "/" to the end of the php_dir path, while keeping the s:44 solved the problem for me and a couple coworkers.

Upvotes: 4

Spec
Spec

Reputation: 329

I have XAMPP installed, and I just deleted /xampp/php/pear.ini and that solved the same problem

Upvotes: 2

Alex
Alex

Reputation: 9471

People with the your exact problem seem to has solved it in this MAMP forum thread.

You can either delete /Applications/MAMP/bin/php/php5.3.6/conf/pear.conf, or change a line in that file from "php_dir";s:44 to "php_dir";s:43.

Upvotes: 26

Related Questions