Windows 10のcomposerのglobal環境で、ブランチのmaster, mainや開発版がインストールされる。Linuxではそんなことないのに。
composer.jsonを見たら設定がそうなってた。LinuxとWindowsを比較してもやっぱり設定がちがう。
設定を変えた記憶がないのに。
ここ数年、Windows 10のcomposerのパッケージを更新してなかったので、久しぶりにアップデートしました。
composer global update
すると、パッケージのバージョンがこうなっている。
composer global show
Changed current directory to C:/Users/***/AppData/Roaming/Composer
composer/xdebug-handler 1.4.x-dev f27e06c Restarts a process without Xdebug.
felixfbecker/advanced-json-rpc v3.2.1 A more advanced JSONRPC implementation
felixfbecker/language-server dev-master 9dc1656 PHP Implementation of the Visual Studio Code Language Ser...
felixfbecker/language-server-protocol dev-master 9d846d1 PHP classes for the Language Server Protocol
jetbrains/phpstorm-stubs dev-master 45cb2ea PHP runtime & extensions header files for PhpStorm
microsoft/tolerant-php-parser v0.0.23 Tolerant PHP-to-AST parser designed for IDE usage scenarios
netresearch/jsonmapper v1.6.0 Map nested JSON structures onto PHP classes
phpdocumentor/reflection-common dev-master a0eeab5 Common reflection classes used by phpdocumentor to reflec...
phpdocumentor/reflection-docblock 4.3.4 With this component, a library can provide support for an...
phpdocumentor/type-resolver 1.x-dev 4b3579f A PSR-5 based resolver of Class names, Types and Structur...
psr/log 1.1.4 Common interface for logging libraries
sabre/event 5.1.2 sabre/event is a library for lightweight event-based prog...
sabre/uri 2.2.1 Functions for making sense out of URIs.
squizlabs/php_codesniffer 4.0.x-dev 745d952 PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files a...
symfony/polyfill-ctype dev-main f24ae46 Symfony polyfill for ctype functions
webmozart/assert dev-master b419d64 Assertions to validate method input/output with nice erro...
webmozart/glob 4.1.0 A PHP implementation of Ant's glob.
webmozart/path-util dev-master 95a8f7a A robust cross-platform utility for normalizing, comparin...
正式版じゃなくてGitのブランチ(master, main)や開発版(***-dev)が多くなってる。
composer.jsonファイルを確認したら設定がそうなってた。
{
"minimum-stability": "dev",
"require-dev": {
"felixfbecker/language-server": "dev-master"
},
"require": {
"squizlabs/php_codesniffer": "4.0.x-dev"
}
}
'minimum-stability' が 'dev' になってるので、まだリリースされてない最新版がインストールされた。
念の為、Linux環境のglobalを確認したらこの記述はない。ということでこれを削除。
'minimum-stability' の未指定(デフォルト)は 'stable' でリリース版。
{
"require-dev": {
"felixfbecker/language-server": "*"
},
"require": {
"squizlabs/php_codesniffer": "*"
}
}
パッケージのバージョンも最新版をダウンロードするように変えときます。そうしないとエラーが出るから。
composer global update
Changed current directory to C:/Users/***/AppData/Roaming/Composer
Composer is operating significantly slower than normal because you do not have the PHP curl extension enabled.
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires felixfbecker/language-server dev-master -> satisfiable by felixfbecker/language-server[dev-master].
- felixfbecker/language-server dev-master requires jetbrains/phpstorm-stubs dev-master -> found jetbrains/phpstorm-stubs[dev-master] but it does not match your minimum-stability.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
エラーの内容は、リリース版をインストールするのにバージョンはそうじゃないものになってるよ? というもの。
改めて全パッケージをまとめてアップデート
composer global update
composer global show
Changed current directory to C:/Users/***/AppData/Roaming/Composer
felixfbecker/advanced-json-rpc v1.2.10 A more advanced JSONRPC implementation
felixfbecker/language-server v2.3.1 PHP Implementation of the Visual Studio Code Language Server Protocol
netresearch/jsonmapper v0.11.0 Map nested JSON structures onto PHP classes
nikic/php-parser v3.1.5 A PHP parser written in PHP
phpdocumentor/reflection-common 1.0.1 Common reflection classes used by phpdocumentor to reflect the code stru...
phpdocumentor/reflection-docblock 3.3.2 With this component, a library can provide support for annotations via D...
phpdocumentor/type-resolver 0.4.0
sabre/event 4.0.0 sabre/event is a library for lightweight event-based programming
squizlabs/php_codesniffer 3.6.0 PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects viol...
symfony/polyfill-ctype v1.23.0 Symfony polyfill for ctype functions
webmozart/assert 1.10.0 Assertions to validate method input/output with nice error messages.
ぜんぶ、リリース版に変わりました。
Windowsのglobalはスタビリティのデフォルトが 'dev' ?
ボクは、minimum-stability の設定を変えた記憶がありません。Linux環境では未設定だったのでWindowsもそうだと思ってた。
Windowsではデフォルトがちがうんだろうか?
ボクのかんちがいの可能性もけっこうあるので断定はできませんが、もし同じようなことになったら、composer.jsonを確認しましょう。
ちなみに、minimum-stability はルートパッケージにしか設定できません。ルートパッケージとは、プロジェクトのルートディレクトリにあるcomposer.jsonにだけ設定できるということ。