मैं कैसे "आपकी आवश्यकताओं को संकुल के एक स्थापित सेट पर हल नहीं किया जा सकता है" त्रुटि?


89

जब मैं दौड़ता composer updateहूं तो मुझे कुछ वायर्ड आउटपुट मिलते हैं।

यहां छवि विवरण दर्ज करें

यहाँ मेरा संगीतकार है। जेसन जैसा दिखता है।

{
    "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"
}

मुझसे इसका समाधान किस प्रकार होगा ?


8
अरे, कृपया कंपोज़र.जॉन की इमेज को कंपोज़र की टेक्स्ट सामग्री के साथ एक्सचेंज करें। जेसन यह आपकी मदद करने के लिए उस फ़ाइल की समस्या प्रजनन और संपादन की अनुमति देता है। धन्यवाद।
जेन्स ए कोच

2
@ JensA.Koch। काश मैं शुरुआत में ऐसा करने का इरादा रखता। StackOverflow मुझे मेरे जैसे कम प्रतिनिधि लोगों के लिए बहुत सारे कोड पोस्ट करने से रोकता है। मैं माफी चाहता हूँ दोस्तों - काश मैं उस प्रतिबंध नहीं है।
साइबर 8200

3
ठीक है। मेरी गलती, आपकी बातों को ध्यान में नहीं रखा। आगे बढ़ेंगे तो आपको कुछ और मिलेगा ...
जेन्स ए। कोच

जवाबों:


43

आपके सॉफ़्टवेयर निर्भरताओं में असंगत संस्करण विरोध है।

उसी समय आप अपनी मास्टर शाखा से किसी भी लारवेल 4.2.x संस्करण को स्थापित करना चाहते हैं, और "zizaco / entrust"। और उस मास्टर शाखा को कम से कम लारवेल 5.0 (मोटे तौर पर बोलना) की आवश्यकता होती है।

समस्या शाखाओं पर निर्भरता से आती है। यह संभावना है कि पैकेज zizaco / सौंपना एक बार इसकी मास्टर शाखा में लारवेल 4.2 का उपयोग कर रहा था, और आप उस दिन अपनी निर्भरता स्थापित करने में सक्षम थे। लेकिन जिस क्षण यह शाखा असंगत संस्करण की आवश्यकता के साथ अपडेट हो जाती है, आप कभी भी composer updateअद्यतन निर्भरता को चलाने और प्राप्त करने में सक्षम नहीं होंगे ।

हमेशा टैग किए गए संस्करणों का उपयोग करें! आदर्श रूप से आप एक आराम से संस्करण की आवश्यकता का उपयोग करते हैं जो संगत अपडेट की अनुमति देता है। इसे टिल्ड-टू-नंबर संस्करण आवश्यकता के रूप में व्यक्त किया जाना चाहिए: ~1.2एक संस्करण 1.2.0 और ऊपर (1.2.99 या 1.2.100 की तरह) स्थापित करेगा, और 1.3 और ऊपर भी। यदि आपको एक निश्चित पैच रिलीज की आवश्यकता है: कैरेट-थ्री-नंबर संस्करण ^1.2.101.2.10 या ऊपर, 1.3 और ऊपर भी इंस्टॉल होगा।

इस संस्करण की आवश्यकता का उपयोग करने के बजाय dev-masterआपको मास्टर शाखा में अस्थिर स्थिति के बजाय रिलीज़ किए गए संस्करणों का उपयोग करने की अनुमति देगा, और आपको सबसे हाल के संस्करण को संबोधित करने की अनुमति देता है जो अभी भी लारवेल 4.2 के साथ काम करता है। मुझे लगता है कि 1.3.0 संस्करण zizaco / सौंपना होगा, लेकिन संस्करण 1.2 भी योग्य होगा। साथ जाओ "zizaco/entrust": "~1.2"


7
इस पोस्ट का मुख्य उत्तर है"zizaco/entrust": "~1.2"
साइबर 8200

यह जानना उपयोगी होगा कि त्रुटि संदेश का कौन सा हिस्सा आपको लगता है कि Laravel 5.0इसके द्वारा आवश्यक था zizaco/entrust
क्वांट

ठीक है, अगर मुझे सही से याद है तो मैं उल्लिखित लाइब्रेरी को देख रहा था और उसमें संगीतकार.जॉन की आवश्यकताओं को देखा। और मैंने शायद वही देखा जो मैंने देखा था क्योंकि कोई स्पष्ट आवश्यकता नहीं थी, लेकिन इसके कुछ घटक थे। त्रुटि संदेश में, आप देखते हैं कि इसके illuminate/support ^5.0लिए आवश्यक है zizaco/entrust, और यदि आप जानते हैं कि "लारवेल" और "इल्लुमनेट" मूल रूप से एक ही बात है, तो निष्कर्ष सही होना चाहिए।
स्वेन

110

यह आदेश चलाएँ:

संगीतकार स्थापित --ignore-platform-reqs

या

संगीतकार अपडेट --ignore-platform-reqs


1
एक जादू की तरह काम किया! धन्यवाद!
लिजेश शाक्य

3
डॉकटर का उपयोग करते समय उपयोगी।
केयटलोव्च

1
इसका उपयोग करने का कोई नुकसान?
एडेम टेप


बहुत बढ़िया, इस कमांड ने उम्मीद के मुताबिक काम किया।
सोहन जांगिड

40

मैं उसी मुद्दे का सामना कर रहा हूं। मैं 'लुमेन' माइक्रोसिस्टवर्क फ्रेमवर्क का उपयोग कर रहा हूं। मैंने हाल ही में दो पैकेजों को स्थापित करके एक ही मुद्दे को हल किया है: -

  1. sudo apt-get install php7.0-mbstring ,
  2. sudo apt-get install php7.0-xml या sudo apt-get install php-xml

इसे स्थापित करने के बाद, आपको इस कमांड को निष्पादित करने की आवश्यकता है: - संगीतकार अपडेट

आशा है, यह मुद्दे को हल करेगा। मैं अपने सिस्टम पर काम करता हूं।


लोगों को कभी भी उत्पादन में कंपोजर अपडेट का उपयोग नहीं करना चाहिए, इससे समस्या हो सकती है। कंपोज़र इंस्टॉल इंस्टॉल करने का सही कमांड है। मैंने आपको नीचा दिखाया लेकिन मैं 1 और 2 सही कर रहा हूं।
Marcelo Agimóvel

1
मेरी स्थिति में php-gd को स्थापित करने ने चाल चली। कंपोज़र (-vvv) फ्लैग पर भी विफलता आउटपुट में संगीतकार ने कहीं भी इसका उल्लेख नहीं किया।
ब्रैड

1
मैं Ubuntu 20.04 पर काम कर रहा हूं। केवल यह कमांड चलाना पर्याप्त था:sudo apt-get install php-xml
Loch

8

क्या वे dev-masterस्वतः जोड़ दिए गए थे ? 'किसी भी उपयुक्त संस्करण' के उपयोग "*", या के लिए अनावश्यक संस्करण बाधाओं के रूप में उनसे बचें"@dev" यदि आप देव पैकेजों को बुरा नहीं मानते तो । मेरा अनुमान है कि Entrust संभावित संकटमोचक है।

इसके अलावा, "minimum-stability": "stable"अतिरिक्त बाधाओं को लगाता है, और

"minimum-stability": "dev",
"prefer-stable": true

अधिक संघर्ष-मुक्त है, इसे अंगूठे का नियम मानें।


समस्या अस्थिर देव संस्करणों का उपयोग है। नेत्रहीन उन्हें अनुमति देते हैं (भले ही स्थिर पसंद करते हैं) एक अजेय गड़बड़ की कुंजी है।
स्वेन

@ उत्तर उत्तर समस्या को सीधे संबोधित करता है, जो कि dev-masterबाधा है। यह नहीं बताता है कि ढीले संस्करण की कमी अच्छी है - वे शायद एक गड़बड़ में परिणाम करेंगे, और यह डेवलपर के विवेक पर है। तथ्य यह है कि जवाब टैगिंग के बारे में राय नहीं है यह गलत नहीं करता है। मैं एक downvote के लिए धन्यवाद, वैसे। पड़ोसी के जवाब को नीचा दिखाने के लिए यह काफी नैतिक है।
एस्टुस फ्लास्क

मैं मानता हूं कि जो पूछा गया था, उसके आधार पर यह उत्तर सही है। इसने मेरे लिए भी काम किया। वोट दिया!
तमरोईस

2

मैंने उसी समस्या को हल किया है जिससे 'laravel/framework'निर्भरता संस्करण सेट हो रहा "^8.0"है "^7.0"

उसके बाद composer update --ignore-platform-reqsबस चलाने का काम किया

composer.json


आज तक, नवीनतम लारवेल फ्रेमवर्क संस्करण 7.10 है। तो आपकी निर्भरता 8.0 तक कैसे हो गई?
दिग्विजय

ईमानदारी से यकीन नहीं है क्योंकि मैं लारवेल के साथ बहुत नया हूं। यह
कंपोजर.जॉन

1

कंपोज़र के अंदर सरणी "barryvdh/laravel-cors": "^0.7.3"के अंत में जोड़ें । requireJson

संगीतकार को बचाओ। आगजनी और भागो composer update

आप कर चुके हैं !


2
लोगों को निर्भरता स्थापित करने के लिए कभी भी संगीतकार अपडेट का उपयोग नहीं करना चाहिए। यह संगीतकार स्थापित का उपयोग करना चाहिए। संगीतकार अद्यतन सभी निर्भरता को अद्यतन करेगा और यह भयावह हो सकता है।
Marcelo Agimóvel

0

मुझे लारवेल 5.8 में इस समस्या का सामना करना पड़ा, मैंने जो किया वह composer requireप्रत्येक पुस्तकालय के लिए करना था और जहां सभी सही तरीके से स्थापित थे।

इस तरह:

कंपोजर.जोन फ़ाइल में जोड़ने या किसी संस्करण को निर्दिष्ट करने के बजाय:

composer require msurguy/honeypot: dev-master

मैंने इसके बजाय किसी भी संस्करण को निर्दिष्ट किए बिना किया:

composer require msurguy/honeypot

मुझे आशा है कि यह मदद करता है, धन्यवाद



0

मैंने उसी त्रुटि को हल किया, के "zizaco/entrust": "*"बजाय जोड़कर "zizaco/entrust": "~1.2"


0

मैं उपयोग करता हूं PHP 8 और लवलेर 8 के साथ काम विंडोज 10 मशीन का और मुझे वही त्रुटि मिली, मैंने निम्नलिखित कमांड का उपयोग किया: -

composer update --ignore-platform-reqs

संस्करण की परवाह किए बिना सभी संकुल को अद्यतन करने के लिए।


-1

कारण:

त्रुटि इसलिए हो रही है क्योंकि आपका प्रोजेक्ट फ़ोल्डर रूट उपयोगकर्ता के स्वामित्व में है।

उपाय

उपयोगकर्ता में वर्तमान में हस्ताक्षर किए गए स्वामित्व को बदलें और रूट उपयोगकर्ता को नहीं। यदि आपके पास केवल एकमात्र उपयोगकर्ता के रूप में रूट है, तो रूट विशेषाधिकारों के साथ एक और उपयोगकर्ता बनाएं।

$ sudo चाउन -R current_user / my / परियोजना / निर्देशिका /

फिर

$ संगीतकार स्थापित


-7

बस php.ini फ़ाइल में कर्ल को सक्रिय करें

;extension=php_curl.dll

सेवा

extension=php_curl.dll

और फिर संगीतकार स्थापित करें


मुझे यकीन नहीं है कि php_curl.dll को सक्रिय करने वाला एक संस्करण बेमेल (Laravel 4.x vs Laravel 5.x) के लिए क्या करेगा। क्या आप बता सकते हैं कि यह सवाल कैसे हल करेगा?
क्रिस फॉरेन्स

मुझे ऊपर वर्णित समस्या हो रही थी, इसलिए मैंने कर्ल को सक्रिय किया और समस्या हल हो गई। मेरा मानना ​​है कि संगीतकार या लार्वा पैकेज डाउनलोड करने के लिए इस php एक्सटेंशन का उपयोग करता है। मेरे मामले में यह लार्वा पैकेज के लिए बिल्कुल असंगत नहीं होगा, यह केवल संगीतकार के लिए संकुल डाउनलोड करने में कठिनाई होगी।
गिदैयो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.