composer update
を実行すると、いくつかの有線出力を受け取ります。
以下は、私のcomposer.jsonの外観です。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.", "keywords": ["framework", "laravel"],
"license": "MIT",
"repositories": [{
"type": "vcs",
"url": "https://github.com/Zizaco/ardent.git"
}],
"require-dev": {
"phpunit/phpunit": "4.3.*"
},
"require": {
"laravel/framework": "4.2.*",
"laravelbook/ardent": "dev-master as 2.4.0",
"zizaco/entrust": "dev-master",
"sebklaus/profiler": "dev-master",
"doctrine/dbal": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations", "app/database/seeds", "app/tests",
"app/libraries"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
どうすれば修正できますか?
ソフトウェアの依存関係に互換性のないバージョンの競合があります。
同時に、任意のLaravel 4.2.xバージョン、およびそのマスターブランチから「zizaco/entrust」をインストールする必要があります。そして、そのマスターブランチには少なくともLaravel 5.0(大まかに言って)が必要です。
問題は、ブランチへの依存性から生じます。パッケージzizaco/entrustはかつてmasterブランチでLaravel 4.2を使用しており、その日に依存関係をインストールできた可能性があります。しかし、このブランチが互換性のないバージョン要件で更新された瞬間、composer update
を実行して更新された依存関係を取得することは決してできなくなります。
常にタグ付きバージョンを使用してください!理想的には、互換性のある更新を可能にする緩和されたバージョン要件を使用します。これは、チルダ2番号のバージョン要件として表現する必要があります。~1.2
は、バージョン1.2.0以降(1.2.99や1.2.100など)、および1.3以降をインストールします。特定のパッチリリースが必要な場合:Caret-three-numberバージョン^1.2.10
は1.2.10以降、1.3以降もインストールします。
dev-master
の代わりにこのバージョン要件を使用すると、masterブランチで不安定な状態の代わりにリリースバージョンを使用でき、Laravel 4.2で引き続き動作する最新バージョンに対処できます。それはzizaco/entrustバージョン1.3.0ですが、バージョン1.2も対象となるでしょう。 "zizaco/entrust": "~1.2"
を使用します。
私は同じ問題に直面しています。 「Lumen」マイクロサービスフレームワークを使用しています。私は最近2つのパッケージをインストールすることで同じ問題を解決しました:
これをインストールした後、このコマンドを実行する必要があります:composer update
問題が解決することを願っています。私は自分のシステムで作業しています。
それらのdev-master
sは自動的に追加されましたか?不要なバージョンの制約としてそれらを避けてください。「適切なバージョン」には"*"
を使用してください。devパッケージを気にしない場合は"@dev"
を使用してください。私の推測では、Entrustは潜在的なトラブルメーカーです。
また、"minimum-stability": "stable"
は追加の制約を課し、
"minimum-stability": "dev",
"prefer-stable": true
競合がより少ないため、経験則と考えてください。
次のコマンドを実行します:
composer install --ignore-platform-reqs
または
composer update --ignore-platform-reqs
Composer.json内のrequire
配列の最後に"barryvdh/laravel-cors": "^0.7.3"
を追加します
Composer.jsonを保存し、composer update
を実行します
できました!
原因:
プロジェクトフォルダーがルートユーザーによって所有されているため、エラーが発生しています。
ソリューション
所有権を、rootユーザーではなく現在サインインしているユーザーに変更します。 rootが唯一のユーザーである場合は、root特権を持つ別のユーザーを作成します。
$ Sudo chown -R current_user/my/project/directory /
それから
$ composerインストール
Laravel 5.8でこの問題が発生しました。各ライブラリおよび正しくインストールされたすべての場所でcomposer require
を実行しました。
そのようです:
composer.jsonファイルに追加したり、バージョンを指定したりする代わりに:
composer require msurguy/honeypot: dev-master
代わりに、バージョンを指定せずにした:
composer require msurguy/honeypot
お役に立てば幸いです
"config":{"platform":{"ext-pcntl": "7.2"、 "ext-posix": "7.2"}}