17

I just did a clean install of Windows 7. I've installed Apache, Mysql and PHP 5.3.5 all separated (not using XAMPP/others).

I'm getting the following error in the install: ERROR: unable to unpack phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/Structures_Graph-1.0.2.tar

The full stack trace is:

C:\Web\php-5.3.5>go-pear.bat

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : system

Below is a suggested file layout for your new PEAR installation.  To change individual locations, type the number in front of the directory.  Type 'all' to change all of them or simply press Enter to accept these locations.

 1. Installation base ($prefix)                   : C:\Web\php-5.3.5
 2. Temporary directory for processing            : C:\Web\php-5.3.5\tmp
 3. Temporary directory for downloads             : C:\Web\php-5.3.5\tmp
 4. Binaries directory                            : C:\Web\php-5.3.5
 5. PHP code directory ($php_dir)                 : C:\Web\php-5.3.5\pear
 6. Documentation directory                       : C:\Web\php-5.3.5\docs
 7. Data directory                                : C:\Web\php-5.3.5\data
 8. User-modifiable configuration files directory : C:\Web\php-5.3.5\cfg
 9. Public Web Files directory                    : C:\Web\php-5.3.5\www
10. Tests directory                               : C:\Web\php-5.3.5\tests
11. Name of configuration file                    : C:\Web\php-5.3.5\pear.ini
12. Path to CLI php.exe                           : C:\Web\php-5.3.5

1-12, 'all' or Enter to continue:
Beginning install...
Configuration written to C:\Web\php-5.3.5\pear.ini...
Initialized registry...
Preparing to install...
installing phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/Archive_Tar-1.3.3.tar...
installing phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/Console_Getopt-1.2.3.tar...
installing phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/PEAR-1.8.0.tar...
installing phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/Structures_Graph-1.0.2.tar...
installing phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/XML_Util-1.2.1.tar...
install ok: channel://pear.php.net/Archive_Tar-1.3.3
install ok: channel://pear.php.net/Console_Getopt-1.2.3
ERROR: unable to unpack phar://C:/Web/php-5.3.5/PEAR/go-pear.phar/PEAR/go-pear-tarballs/Structures_Graph-1.0.2.tar
install ok: channel://pear.php.net/XML_Util-1.2.1
install ok: channel://pear.php.net/PEAR-1.8.0
PEAR: Optional feature webinstaller available (PEAR's web-based installer)
PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer)
PEAR: Optional feature gtk2installer available (PEAR's' PHP-GTK2-based installer)

PEAR: To install optional features use "pear install pear/PEAR#featurename"

** WARNING! Old version found at C:\Web\php-5.3.5, please remove it or be sure t
o use the new c:\web\php-5.3.5\pear.bat command

The 'pear' command is now at your service at c:\web\php-5.3.5\pear.bat

* WINDOWS ENVIRONMENT VARIABLES *
For convenience, a REG file is available under C:\Web\php-5.3.5\PEAR_ENV.reg .
This file creates ENV variables for the current user.

Double-click this file to add it to the current user registry.

C:\Web\php-5.3.5>
Marcos Roriz Junior
  • 4,076
  • 11
  • 51
  • 76

7 Answers7

40

After days of googling I've found an answer. Here is it. How to solve:

With admin permission (start cmd with admin privileges):

  1. Run the go-pear.bat that comes with the default PHP installation. It'll installs PEAR, but it's going to generate an error when installing Structures_Graph. IMO Pear needs this package to generate the package dependency (graph), since it's missing it not allow us to install or upgrade any other package.

  2. Download and uncompress Structures_Graph from the pear.php.net website (direct link). Then copy the Structure folder into the PEAR folder. The archive has three folders: docs, Structures, tests. We only need the Structures one. Copy the Structures folder to your PHP_ROOT_DIRECTORY\PEAR directory. So if you installed PHP on C:\Web\php-5.3.5 copy the Structures folder to C:\Web\php-5.3.5\PEAR\, the result should be: C:\Web\php-5.3.5\PEAR\Structures

  3. Do pear install Structures_Graph. Even though the files are present, Structures_Graph is not really installed (we had a problem during installation). So we need to run the command above.

  4. Do pear upgrade PEAR. This upgrades PEAR itself to the current version.

  5. Do pear upgrade Console_Getopt. This upgrades Console_Getopt to the current version and now we can manage and install any pear package.

Marcos Roriz Junior
  • 4,076
  • 11
  • 51
  • 76
  • Instructions 1 & 2 helped me, but I still cant get it to upgrade. Thanks for getting me on the right track. – Neil Aitken Jan 27 '11 at 11:28
  • 4
    Solved it, after the first 2 steps I ran pear upgrade-all which forced pear to the latest version. – Neil Aitken Jan 27 '11 at 11:35
  • Just ran into this issue and it worked for me. Thanks! Wish they'd fix this. – canadiancreed Aug 06 '11 at 04:47
  • Thanks a bunch. You saved me hours of troubleshooting. I did pear upgrade-all after copying the Structures files as Neil did and it worked. FYI you need to run run the command line with admin privileges so it will be able to create the directories. – Venkat D. Oct 02 '11 at 17:36
  • Just a few notes to save others from the trouble I had trying to follow the instructions above: 1. In step 2, the directory where Structures must be copied to was for me PEAR\pear (this is already mentioned in another answer below) 2. When I tried step 3, I always got the message that it could not unpack the Structures_Graph-1.0.4.tgz file. After a lot of trials and errors, I deleted everything in the PEAR\tmp folder, where PEAR temporarily downloads packages, and it worked. – AsGoodAsItGets Mar 29 '13 at 11:42
5

Marcos Roriz solution does indeed work, but to clarify point 2:

The uncompressed "Structures" folder (inside the tgz) needs to be placed inside the folder: "PEAR\pear" -> e.g. C:\wamp\bin\php\php5.3.5\PEAR\pear

Michael Noyb
  • 305
  • 2
  • 10
4

This is a combination of the things you need to do and a couple of new tweaks. Worked on WinXP Pro with WAMP (Wampserver 2.2.1)

Change your go-pear.bat file:

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 -d phar.require_hash=0 PEAR\go-pear.phar
pause

Run it - go-pear.bat

Now you've go a Pear install with a missing graph.php

Download and uncompress Structures_Graph from the pear.php.net website. Copy the Structure folder into the PEAR folder so that the key files are located as such:

PEAR\Structures\Graph.php
PEAR\Structures\Graph\Node.php

Change this line in Node.php:

require_once '/Structures/Graph.php';

Execute in the PEAR directory:

pear upgrade=all

That did it for me.

Benjol
  • 63,995
  • 54
  • 186
  • 268
Steve
  • 41
  • 1
1

First of all, run as administrator.

Then - try to write something in target directory in the console to isolate any remaining permissions problems.

BarsMonster
  • 6,483
  • 2
  • 34
  • 47
  • HAve you tried to run console and write any file in target directory? (where PEAR isntaller is trying to unpack archive)? – BarsMonster Jan 21 '11 at 15:42
1

I've been having many issues after upgrading my wampserver which now comes with php 5.3.5.

I have solved the problem by installing php 5.3.0 alongside and using it to run the installer found at http://pear.php.net/go-pear. I set the php cli setting to the php5.3.5 folder without any issues.

This might be wampserver specific. To gauge if you are experiencing a similar problem here are some of the issues I encountered:

Using the go-pear.bat packaged with php5.3.5 i had the same unable to unpack error as the original poster.

Using the go-pear.bat packaged with php5.3.0 i was able to complete the installation but the pear installer was v1.8.0

Using the installer on the pear site mentioned previously with php5.3.5 i had an error "Warning: rmdir(D:\temp): Directory not empty in D:\go-pear.php on line 1237". Looking at the stack trace the Archive_Tar class was throwing an error and the installer was failing to clean up after itself.

dancras
  • 11
  • 2
1

the web frontend not write correct paths to pear.ini ig phph setting is magic_quotes_gpc = On
its doubles all slashes "\" in paths to "\" is it a bug ? Than the packages for example can be unpacked (wrong paths ?)

"unable to unpack" Message when installing packages

http://pear.php.net/bugs/bug.php?id=18212

Mike
  • 11
  • 1
1

I tried all of the above with no luck. After downloading and extracting the "Structures" folder I had to edit all paths and add "PEAR/". Then I was able to do "pear install Structures_Graph" and then "pear upgrade-all"

Graph.php

require_once 'PEAR/Structures/Graph/Node.php';

Node.php

require_once 'PEAR/Structures/Graph.php';

AcyclicTest.php

require_once 'PEAR/Structures/Graph.php';
require_once 'PEAR/Structures/Graph/Node.php';

TopologicalSorter.php

require_once 'PEAR/Structures/Graph.php';
require_once 'PEAR/Structures/Graph/Node.php';
require_once 'PEAR/Structures/Graph/Manipulator/AcyclicTest.php';
moleculezz
  • 7,513
  • 4
  • 25
  • 25