Wenn ich laufe, composer update
erhalte ich einen Kabelausgang.
Hier sieht mein composer.json aus.
{
"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"
}
Wie behebe ich das?
laravel
laravel-4
composer-php
cyber8200
quelle
quelle
Antworten:
Ihre Software-Abhängigkeiten weisen einen inkompatiblen Versionskonflikt auf.
Gleichzeitig möchten Sie eine beliebige Laravel 4.2.x-Version und "zizaco / entrust" aus der Hauptniederlassung installieren. Und dieser Hauptzweig benötigt mindestens Laravel 5.0 (ungefähr).
Das Problem ergibt sich aus der Abhängigkeit von Zweigen. Es ist wahrscheinlich, dass das Paket zizaco / entrust einmal Laravel 4.2 in seiner Hauptniederlassung verwendet hat und dass Sie Ihre Abhängigkeiten an diesem Tag installieren konnten. In dem Moment, in dem dieser Zweig mit einer inkompatiblen Versionsanforderung aktualisiert wird, können Sie niemals
composer update
Abhängigkeiten ausführen und aktualisieren.Verwenden Sie immer getaggte Versionen! Idealerweise verwenden Sie eine entspannte Versionsanforderung, die kompatible Updates ermöglicht. Dies sollte als Anforderung an eine Tilde-Two-Number-Version ausgedrückt werden:
~1.2
Installiert eine Version 1.2.0 und höher (wie 1.2.99 oder 1.2.100) sowie 1.3 und höher. Wenn Sie eine bestimmte Patch-Version benötigen: Die Caret-Three-Number-Version^1.2.10
installiert 1.2.10 oder höher, auch 1.3 und höher.Wenn Sie diese Versionsanforderung anstelle von verwenden
dev-master
, können Sie freigegebene Versionen anstelle des instabilen Status im Hauptzweig verwenden und die neueste Version adressieren, die noch mit Laravel 4.2 funktioniert. Ich denke, das wäre zizaco / entrust Version 1.3.0, aber Version 1.2 würde sich auch qualifizieren. Geh mit"zizaco/entrust": "~1.2"
.quelle
"zizaco/entrust": "~1.2"
Laravel 5.0
erforderlich hieltzizaco/entrust
.illuminate/support ^5.0
erforderlich istzizaco/entrust
, und wenn Sie wissen, dass "Laravel" und "Illuminate" im Grunde dasselbe sind, sollte die Schlussfolgerung korrekt sein.Führen Sie diesen Befehl aus:
oder
quelle
Ich stehe vor dem gleichen Problem. Ich verwende das Lumen-Microservice-Framework. Ich habe das gleiche Problem kürzlich durch die Installation von zwei Paketen behoben: -
Nach der Installation müssen Sie den folgenden Befehl ausführen: - Composer-Update
Hoffe, es wird das Problem lösen. Ich arbeite an meinem System.
quelle
sudo apt-get install php-xml
Wurden diese
dev-master
automatisch hinzugefügt? Vermeiden Sie sie als unnötige Versionsbeschränkungen, für die Verwendung "jeder geeigneten Version""*"
oder"@dev"
wenn Sie nichts gegen Entwicklungspakete haben. Ich vermute, dass Entrust der potenzielle Unruhestifter ist.Außerdem werden
"minimum-stability": "stable"
zusätzliche Einschränkungen auferlegt, und"minimum-stability": "dev", "prefer-stable": true
ist konfliktfreier, betrachten Sie es als Faustregel.
quelle
dev-master
Einschränkung darstellt. Es heißt nicht, dass lose Versionsbeschränkungen gut sind - sie werden wahrscheinlich zu einem Durcheinander führen, und dies liegt im Gewissen des Entwicklers. Die Tatsache, dass die Antwort keine Meinung zum Markieren hat, macht es nicht falsch. Ich danke übrigens für eine Ablehnung. Es ist ziemlich ethisch, benachbarte Antworten abzulehnen.Ich habe das gleiche Problem beim Einstellen der
'laravel/framework'
Abhängigkeitsversion von"^8.0"
bis gelöst"^7.0"
.Danach hat das Laufen
composer update --ignore-platform-reqs
einfach geklapptcomposer.json
quelle
Fügen Sie
"barryvdh/laravel-cors": "^0.7.3"
am Ende desrequire
Arrays in composer.json hinzuSpeichern Sie composer.json und führen Sie es aus
composer update
Du bist fertig !
quelle
Ich bin in Laravel 5.8 auf dieses Problem gestoßen. Ich habe es
composer require
für jede Bibliothek getan und alle wurden korrekt installiert.Wie so:
anstatt es der Datei composer.json hinzuzufügen oder eine Version anzugeben:
composer require msurguy/honeypot: dev-master
Ich habe stattdessen ohne Angabe einer Version verzichtet:
composer require msurguy/honeypot
Ich hoffe es hilft, danke
quelle
"config": { "platform": { "ext-pcntl": "7.2", "ext-posix": "7.2" } }
quelle
Ich habe den gleichen Fehler gelöst, indem ich
"zizaco/entrust": "*"
anstelle von hinzugefügt habe"zizaco/entrust": "~1.2"
.quelle
URSACHE:
Der Fehler tritt auf, weil Ihr Projektordner dem Root-Benutzer gehört.
LÖSUNG
Ändern Sie den Besitz auf den aktuell angemeldeten Benutzer und nicht auf den Root-Benutzer. Wenn Sie nur root als einzigen Benutzer haben, erstellen Sie einen anderen Benutzer mit Root-Rechten.
$ sudo chown -R aktueller_benutzer / mein / projekt / verzeichnis /
dann
$ composer installieren
quelle
Aktivieren Sie einfach die Locke in der Datei php.ini
zu
und dann Composer installieren
quelle