2015-03-19 14 views
15

Wenn ich laufen:Composer installieren Fehler: ZipArchive :: extractTo(): Volle Abzugsstrecke überschreiten MAXPATHLEN (260)

php composer.phar require kartik-v/yii2-widgets "*" 

ich die folgende Ausgabe (die -vvv ausführliche Flag verwendet):

- Installing kartik-v/bootstrap-fileinput (v4.1.7) 
Downloading https://api.github.com/repos/kartik-v/bootstrap-fileinput/zipball/f95a7e5fa0a9db1ead445e438653aa71e9f599f9 
    Downloading: connection... 
    Downloading: 0% 
    Downloading: 5% 
    ... 
    Downloading: 95% 
    Downloading: 100% 
    Downloading: 100% 
Writing C:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.zip into cache 
    Extracting archive 

    [ErrorException] 
    ZipArchive::extractTo(): Full extraction path exceed MAXPATHLEN (260) 

Exception trace: 
() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ZipDownloader.php:79 
Composer\Util\ErrorHandler::handle() at n/a:n/a 
ZipArchive->extractTo() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ZipDownloader.php:79 
Composer\Downloader\ZipDownloader->extract() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/ArchiveDownloader.php:44 
Composer\Downloader\ArchiveDownloader->download() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Downloader/DownloadManager.php:201 
Composer\Downloader\DownloadManager->download() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/LibraryInstaller.php:156 
Composer\Installer\LibraryInstaller->installCode() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/LibraryInstaller.php:87 
Composer\Installer\LibraryInstaller->install() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/InstallationManager.php:152 
Composer\Installer\InstallationManager->install() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer/InstallationManager.php:139 
Composer\Installer\InstallationManager->execute() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:578 
Composer\Installer->doInstall() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Installer.php:225 
Composer\Installer->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Command/RequireCommand.php:154 
Composer\Command\RequireCommand->execute() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:253 
Symfony\Component\Console\Command\Command->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874 
Symfony\Component\Console\Application->doRunCommand() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195 
Symfony\Component\Console\Application->doRun() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:147 
Composer\Console\Application->doRun() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126 
Symfony\Component\Console\Application->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Composer/Console/Application.php:84 
Composer\Console\Application->run() at phar://C:/ProgramData/ComposerSetup/bin/composer.phar/bin/composer:43 
require() at C:\ProgramData\ComposerSetup\bin\composer.phar:25 


require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--sort-packages] [packages1] ... [packagesN] 

Ich habe sogar versucht, die Flagge "--prefer-source", aber ich bekomme den gleichen Fehler. Gibt es eine Möglichkeit, Komponisten zu sagen, die MAXPATHLEN zu erhöhen? Über welchen Weg beklagt er sich gerade?

Antwort

0

Ich glaube es beschweren sich, dass diese C:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.zip wahrscheinlich mehr als 256 Zeichen ist. Von dem, was ich weiß, können Sie keinen Pfad länger als in Windows haben.

Nicht sicher, dass es eine Lösung dafür gibt. Sie können wahrscheinlich einen kurzgeschlossenen Pfad erstellen und Ihre Anwendung dort installieren lassen.

+0

Danke für den Vorschlag. Ich habe auf [link] https://getcomposer.org/doc/04-schema.md#config [/ link] gefunden, wo Sie "config": {"cache-dir": "PATH"} zu Ihrem Komponisten hinzufügen können. JSON-Datei. Ich habe die Installation erneut ausgeführt, und obwohl es den neuen Pfad verwendet, habe ich immer noch den gleichen Fehler an der gleichen Stelle erhalten, und dieser Dateipfad hat weniger als 90 Zeichen. Wenn ich den Fehler nochmal betrachte, denke ich, dass es weniger das Cache-Verzeichnis und mehr der Pfad ist, zu dem es die Datei entpackt. Ich müsste das Root-Website-Verzeichnis von WAMP neu konfigurieren, um es irgendwie zu kürzen. –

22

versuchen die --prefer-Quelle Flagge

composer install --prefer-source 
+0

Das hat tatsächlich den Trick für mich getan. --prefer-source checkt direkt die Repositors aus. Es dauert ein wenig mehr Zeit, aber läuft nicht in die Pfadprobleme. – Andreas

+1

+1 es funktionierte auch für mich auf Windows, ** HINWEIS: ** aber 'Composer Update --prefer-source' nicht.Erst nach dem Entfernen des Lieferantenordners und dem Ausführen von 'install 'habe ich den Fall des Klonens von Repos erreicht. – Armen

+0

Dies funktionierte perfekt für mich auf einer Windows 10 64-Bit-Maschine. Vielen Dank! –

14

Komponist beschwert sich über einen Pfad, der für PHP unter Windows im Download zu lang ist. Windows hat eine maximale Pfadlänge (MAXPATHLEN) von 260 Zeichen, also glaube ich nicht, dass du das ändern kannst.

Als ich dieses Problem bei der Installation von Symfony hatte, habe ich es mit einem kurzen Pfad für das Projektverzeichnis (zB C: \ projects \ myproject) behoben.

Während dieses Problem zu untersuchen, fand ich es kann auch unter Verwendung der --prefer-Source-Flag festgelegt werden bei der Installation, wie folgt aus:

php composer.phar install --prefer-source 

Beachten Sie, dass git in der Windows-Shell-Pfad für diese müssen zu arbeiten, da dies die Quelle von Github auscheckt, anstatt die Verteilungsdatei herunterzuladen. Es ist auch langsamer.

Beachten Sie auch, dass Sie wieder die vendor/ Ordner entfernen könnten müssen vor der Installation des --prefer-source Flag verwendet:

rm -rf vendor/ 
1

versucht Ihr Projekt vollständigen Pfad wie c://www/yii-project zu verkürzen, da Windows-Betriebssystem nicht Verzeichnis mehr zuließ als 250 Zeichen

+0

Eigentlich sind es 255 Zeichen, soweit ich mich erinnern kann – bardzusny

+0

das funktionierte für mich –