2015-03-19 8 views
15

Quando eseguo:Compositore Installare Errore: ZipArchive :: extractTo(): percorso di estrazione completa superi MAXPATHLEN (260)

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

ottengo il seguente output (utilizzando il flag -vvv verbose):

- 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] 

Ho anche provato a utilizzare il flag "--prefer-source" ma ottengo lo stesso errore. C'è un modo per dire al compositore di aumentare il MAXPATHLEN? Di quale percorso si lamenta esattamente?

risposta

0

Credo che si lamenti che questo C:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.zip sia probabilmente più di 256 caratteri. Da quello che so, non puoi avere un percorso più lungo di quello in Windows.

Non sono sicuro che ci sia una soluzione a questo. Probabilmente puoi creare un percorso in corto e far installare la tua applicazione lì.

+0

Grazie per il suggerimento. Ho trovato su [link] https://getcomposer.org/doc/04-schema.md#config [/ link] in cui è possibile aggiungere "config": { "cache-dir": "PATH"} alla tua compositore. file json. Ho eseguito di nuovo l'installazione e, sebbene abbia utilizzato il nuovo percorso, ho ricevuto lo stesso errore nello stesso punto e il percorso del file è inferiore a 90 caratteri. Guardando di nuovo l'errore penso che sia meno la directory della cache e più il percorso in cui si sta decomprimendo il file. Dovrei cercare di riconfigurare la directory del sito Web di root di WAMP per accorciarlo in qualche modo. –

22

provare utilizzando il Composer --prefer-source bandiera

composer install --prefer-source 
+0

Questo mi ha fatto il trucco. --prefer-source controlla direttamente i repositorys. Ci vuole un po 'più di tempo ma non si imbattono nei problemi del percorso. – Andreas

+1

+1 ha funzionato anche per me su Windows, ** NOTA: ** ma 'aggiornamento compositore --prefer-source' no.Solo dopo aver rimosso la cartella del fornitore e aver eseguito 'install' ho raggiunto un caso di repository di clonazione – Armen

+0

Questo ha funzionato perfettamente per me su un computer Windows 10 a 64 bit. Grazie! –

14

si lamenta un percorso che è troppo lungo per PHP su Windows nel download. Windows ha una lunghezza massima del percorso (MAXPATHLEN) di 260 caratteri, quindi non penso che tu possa cambiarlo.

Quando ho avuto questo problema durante l'installazione di Symfony, ho riparato utilizzando un breve percorso per la directory del progetto (ad esempio C: \ projects \ myproject).

Mentre indaga questo problema, ho trovato può anche essere risolto utilizzando il flag --prefer-source durante l'installazione, in questo modo:

php composer.phar install --prefer-source 

Nota che è necessario git nel tuo percorso shell di Windows per questo per funzionare, in quanto questo controlla la fonte da Github piuttosto che scaricare il file di distribuzione. È anche più lento.

Si noti inoltre che potrebbe essere necessario rimuovere la cartella vendor/ prima di installare di nuovo usando il flag --prefer-source:

rm -rf vendor/ 
1

cercare di accorciare il percorso completo del progetto come c://www/yii-project perché le finestre del sistema operativo non consentiva più di directory 250 caratteri

+0

In realtà sono 255 caratteri, per quel che mi ricordo, lo – bardzusny

+0

ha funzionato per me –

Problemi correlati