2012-09-08 8 views
8

पृष्ठभूमि: मैंने अपनी डेस्कटॉप मशीन पर, सिलेक्स के साथ एक नई परियोजना स्थापित की है और निर्भरता के साथ मेरी composer.json फ़ाइल सेट अप की है मुझे जरूरत है। मैंने किसी भी समस्या के बिना डेस्कटॉप पर "composer.phar इंस्टॉल" सफलतापूर्वक भाग लिया।संगीतकार "इंस्टॉल" का उपयोग करने पर संकुल के संस्थापक सेट को हल करने में विफल रहता है लेकिन

मैं अपने लैपटॉप पर स्विच कुछ और परियोजना पर काम करने, लैपटॉप के लिए Git रेपो क्लोन, और एक "composer.phar स्थापित" करने की कोशिश की लेकिन यह संदेश प्राप्त:

Your requirements could not be resolved to an installable set of packages. 

तो मैंने इसके बजाय "composer.phar अपडेट" किया, और यह काम किया, लेकिन मैं नहीं चाहता था कि मेरी संगीतकार। फ़ाइल को अपडेट करें।

क्या किसी और को यह समस्या है? यदि नहीं, तो क्या कोई यह बता सकता है कि मैं क्या गलत कर रहा हूं?

संपादित करें: मैंने सोचा कि मुझे शायद इस पर वापस आना चाहिए और प्रश्न को अपडेट करना चाहिए। मुझे कुछ समय में यह मुद्दा नहीं मिला है। मुझे नहीं पता कि यह संगीतकार के लिए एक अद्यतन है जिसने इसे ठीक कर दिया है (लोगों को मुझे यह बताने के लिए टिप्पणी करनी पड़ सकती है कि क्या वे अभी भी इस समस्या का सामना कर रहे हैं) या यदि अब मैंने संगीतकार के बारे में और अधिक सीखा है, तो मैं बस चीजों को इस तरह से करना कि मुझे इसका सामना नहीं करना पड़ेगा। किसी भी तरह से मैंने इस संदेश को लगभग डेढ़ साल में नहीं देखा है जब तक कि composer.json में मेरा पैकेज spec वास्तव में टूटा हुआ था। (उदाहरण के लिए शाखा rebase करने के लिए)

+2

क्या मैं पूछ सकता हूं कि आपने प्रोजेक्ट को क्लोन किया था जब इसमें विक्रेता फ़ोल्डर और संगीतकार.लॉक फ़ाइल शामिल थी? आम तौर पर जब मैं मशीनों को बदल रहा हूं तो मेरे पास कोई विक्रेता फ़ोल्डर नहीं है या फ़ाइल को लॉक किया गया है और पहली चीज जो मैं करूँगा वह है composer.phar इंस्टॉल करें – gunnx

+0

मेरे पास रेपो में विक्रेता फ़ोल्डर नहीं था, लेकिन इसमें लॉक फ़ाइल शामिल है कि सभी लोग जो परियोजना की जांच करते हैं और निर्भरता स्थापित करते हैं वे एक ही संस्करण पर हैं। – Moismyname

+0

क्या आपने कभी इसे हल किया है? –

उत्तर

1

हम, मेरा अनुमान है कि आप एक पुस्तकालय जो एक शाखा (dev-master, dev-branch-name या [email protected]), जिस पर मेंटेनर हाल ही में एक धक्का मजबूर है | पर आधारित है प्रयोग कर रहे हैं होगा।

जब भी संभव हो, स्थिर शाखाओं (एक संस्करण के साथ शाखाएं जो टैग से जुड़ी होती हैं (v1.0.0, 1.0। *, आदि) का उपयोग करने का प्रयास करें। यदि आपको नहीं पता कि कहां देखना है, तो आपको देखना चाहिए Packagist पर अपने पैकेज है, और एक संस्करण का उपयोग के लिए जो dev- से शुरू नहीं करता है, या dev को न्यूनतम-स्थिरता स्थापित करने के लिए एक @dev संशोधक का उपयोग करता है।

बेशक

, यह कभी कभी अपरिहार्य है। लेकिन इस मामले में, आप कर सकते हैं हमेशा एक संस्करण को टैग करने के लिए लाइब्रेरी के रखरखाव से पूछें। :)

मेरा दूसरा अनुमान यह होगा कि आपके मशीन पर अलग-अलग पुस्तकालय संस्करण हैं। उदाहरण के लिए symfony/icu लाइब्रेरी लें। आपके मशीन पर आईसीयू के संस्करण के आधार पर, और इस तथ्य के आधार पर कि आपने सक्षम किया है या तथ्य यह है कि आपके पास मशीन पर इंटेल एक्सटेंशन स्थापित है या नहीं, आप इन मुद्दों में भाग सकते हैं। चूंकि संगीतकार आपकी पुरानी मशीन के साथ संगीतकार से मेल करने का प्रयास करेगा। निर्भरताएं हल नहीं होंगी क्योंकि लॉक किए गए पैकेजों को आपके सिस्टम की निर्भरता की आवश्यकता होगी। इसे ठीक करने का एक आसान तरीका बस आवश्यक एक्सटेंशन इंस्टॉल करना है।

+0

यह काफी लंबा समय रहा है क्योंकि मुझे यह समस्या बिल्कुल मिली है। मैं संगीतकार के उपयोग में भी बहुत छोटा था। मैं सोच रहा हूं कि यह शायद बिल्कुल मामला है।जब से मैंने टैग किए गए संस्करणों का उपयोग करना शुरू किया, जो ईमानदार होना संभवतः काम करने का एकमात्र तरीका है, मुझे यह समस्या नहीं है। मुझे पता है कि संगीतकार इसे लॉक फ़ाइल के माध्यम से प्रबंधित करना चाहता है, लेकिन मुझे पता चला कि वास्तविक टैग किए गए संस्करणों के साथ मुझे और अधिक सफलता मिली है, भले ही मैं वाइल्डकार्ड संस्करण विनिर्देश (यानी "1. *" या "1.1। *") का उपयोग करता हूं। उत्तर देने वाले सभी के लिए धन्यवाद। – Moismyname