私が走るとき:
php composer.phar require kartik-v/yii2-widgets "*"
次の出力が得られます(-vvv冗長フラグを使用)。
- 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]
フラグ「--prefer-source」を使用しようとしましたが、同じエラーが発生します。 composerにMAXPATHLENを増やすように指示する方法はありますか?正確にどのパスについて不平を言っていますか?
-prefer-sourceフラグを使用してみてください
composer install --prefer-source
Composerは、ダウンロードのWindowsでPHPに対して長すぎるパスについて不平を言っています。Windowsの最大パス長(MAXPATHLEN)は260文字なので、変更できないと思います。
Symfonyのインストール時にこの問題が発生したときは、プロジェクトディレクトリ(C:\ projects\myprojectなど)の短いパスを使用して修正しました。
この問題を調査しているときに、次のように、インストール時に--prefer-sourceフラグを使用して修正することもできることがわかりました。
php composer.phar install --prefer-source
これを機能させるには、Windowsシェルパスにgitが必要であることに注意してください。これは、配布ファイルをダウンロードするのではなく、Githubからソースをチェックアウトするためです。また、遅いです。
また、vendor/
フラグを使用して再インストールする前に、--prefer-source
フォルダーを削除する必要がある場合があることにも注意してください。
rm -rf vendor/
windowsオペレーティングシステムでは250文字を超えるディレクトリが許可されていないため、プロジェクトのフルパスをc://www/yii-project
のように短くしてみてください
コマンドラインで実行してみてください
mklink /j <Link> <Target>
シンボリックリンクを作成し、ファイルパスの長さを260文字未満に減らします。詳細 https://technet.Microsoft.com/en-us/library/cc753194(v = ws.11).aspx
これは不平を言っていると思いますC:/Users/Michael/AppData/Local/Composer/files/kartik-v/bootstrap-fileinput/f95a7e5fa0a9db1ead445e438653aa71e9f599f9.Zip
はおそらく256文字以上です。私の知る限り、Windowsよりも長いパスを持つことはできません。
これに対する解決策があるかどうかはわかりません。おそらく、ショートパスを作成して、そこにアプリケーションをインストールすることができます。