Kiedy uruchamiam composer update
, otrzymuję wyjście przewodowe.
Oto mój plik 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"
}
Jak to naprawić?
laravel
laravel-4
composer-php
cyber8200
źródło
źródło
Odpowiedzi:
W zależnościach oprogramowania występuje konflikt niezgodnej wersji.
Jednocześnie chcesz zainstalować dowolną wersję Laravela 4.2.x i "zizaco / entrust" z jego głównej gałęzi. A ta gałąź główna wymaga przynajmniej Laravel 5.0 (z grubsza mówiąc).
Problem wynika z zależności od gałęzi. Prawdopodobnie pakiet zizaco / entrust kiedyś używał Laravel 4.2 w swojej gałęzi master i tego dnia mogłeś zainstalować zależności. Ale w momencie, gdy ta gałąź zostanie zaktualizowana z niekompatybilną wersją, nigdy nie będziesz w stanie uruchomić
composer update
i uzyskać zaktualizowanych zależności.Zawsze używaj wersji oznaczonych! W idealnym przypadku używasz mniej rygorystycznej wersji, która pozwala na zgodne aktualizacje. Powinno to być wyrażone jako wymaganie dla
~1.2
wersji z dwoma tyldami : zainstalowałoby wersję 1.2.0 i nowsze (np. 1.2.99 lub 1.2.100), a także 1.3 i nowsze. Jeśli potrzebujesz określonego wydania poprawki: Wersja z trzema numerami Caret^1.2.10
zainstaluje 1.2.10 lub , a także 1.3 i nowsze.Użycie tego wymagania wersji zamiast
dev-master
pozwoli ci na użycie wydanych wersji zamiast niestabilnego stanu w gałęzi master i pozwoli ci zaadresować najnowszą wersję, która nadal działa z Laravel 4.2. Wydaje mi się, że byłaby to wersja zizaco / entrust 1.3.0, ale wersja 1.2 również by się kwalifikowała. Idź z"zizaco/entrust": "~1.2"
.źródło
"zizaco/entrust": "~1.2"
Laravel 5.0
to wymagane przezzizaco/entrust
.illuminate/support ^5.0
jest to wymagane przezzizaco/entrust
i jeśli wiesz, że „Laravel” i „Illuminate” to w zasadzie to samo, wniosek powinien być poprawny.Uruchom to polecenie:
lub
źródło
Mam ten sam problem. Używam struktury mikrousług „Lumen”. Niedawno rozwiązałem ten sam problem, instalując dwa pakiety: -
Po zainstalowaniu tego, musisz wykonać to polecenie: - aktualizacja kompozytora
Mam nadzieję, że to rozwiąże problem. Pracuję na moim systemie.
źródło
sudo apt-get install php-xml
Czy zostały
dev-master
dodane automatycznie? Unikaj ich jako niepotrzebnych ograniczeń wersji, do użycia „dowolnej odpowiedniej wersji”"*"
lub"@dev"
jeśli nie masz nic przeciwko pakietom programistycznym. Domyślam się, że Entrust jest potencjalnym sprawcą kłopotów.Ponadto
"minimum-stability": "stable"
nakłada dodatkowe ograniczenia i"minimum-stability": "dev", "prefer-stable": true
jest bardziej wolny od konfliktów, potraktuj to jako praktyczną zasadę.
źródło
dev-master
ograniczenie. Nie stwierdza, że ograniczenia luźnej wersji są dobre - prawdopodobnie spowodują bałagan, a to na sumieniu programisty. Fakt, że w odpowiedzi nie ma opinii na temat tagowania, nie oznacza, że jest błędna. Nawiasem mówiąc, dziękuję za głos przeciw. Negowanie odpowiedzi na sąsiednie odpowiedzi jest dość etyczne.Rozwiązałem ten sam problem ustawiając
'laravel/framework'
wersję zależności od"^8.0"
do"^7.0"
.Po tym bieganie
composer update --ignore-platform-reqs
po prostu działałocomposer.json
źródło
Dodaj
"barryvdh/laravel-cors": "^0.7.3"
na końcurequire
tablicy wewnątrz pliku composer.jsonZapisz plik composer.json i uruchom
composer update
Gotowe!
źródło
Napotkałem ten problem w Laravel 5.8, co zrobiłem, to zrobiłem
composer require
dla każdej biblioteki i wszystkie zostały poprawnie zainstalowane.Tak jak to:
zamiast dodawać go do pliku composer.json lub określać wersję:
composer require msurguy/honeypot: dev-master
Zamiast tego zrobiłem bez określania żadnej wersji:
composer require msurguy/honeypot
Mam nadzieję, że to pomoże, dzięki
źródło
"config": { "platform": { "ext-pcntl": "7.2", "ext-posix": "7.2" } }
źródło
Rozwiązałem ten sam błąd, dodając
"zizaco/entrust": "*"
zamiast"zizaco/entrust": "~1.2"
.źródło
Używam maszyny z systemem Windows 10 współpracującej z PHP 8 i Lavarel 8 i otrzymałem ten sam błąd, użyłem następującego polecenia: -
composer update --ignore-platform-reqs
aby zaktualizować wszystkie pakiety niezależnie od konfliktów wersji.
źródło
PRZYCZYNA:
Błąd występuje, ponieważ właścicielem folderu projektu jest użytkownik root.
ROZWIĄZANIE
Zmień własność na aktualnie zalogowanego użytkownika, a nie użytkownika root. Jeśli masz tylko roota jako jedynego użytkownika, utwórz innego użytkownika z uprawnieniami roota.
$ sudo chown -R current_user / my / project / directory /
następnie
$ composer install
źródło
Po prostu aktywuj curl w pliku php.ini
do
a następnie zainstaluj program Composer
źródło