संगीतकार का उपयोग करके पैकेज का एक विशिष्ट संस्करण कैसे स्थापित किया जाए?


345

मैं कम्पोज़र का उपयोग करके पैकेज के एक विशिष्ट संस्करण को स्थापित करने का प्रयास कर रहा हूं। मैंने कोशिश की composer installऔर composer requireवे पैकेज के नवीनतम संस्करण को स्थापित कर रहे हैं। यदि मुझे पुराना संस्करण चाहिए तो क्या होगा?


इस उत्तर पर एक पढ़ें stackoverflow.com/questions/15212381/…
केविनऑर्फास

जवाबों:


602

composer require vendor/package:version

उदाहरण के लिए:

composer require refinery29/test-util:0.10.2


6
संस्करण संख्या में फ़ंक्शन ^ और ~ क्या है?
डेडी अनांतो

2
आप इसका जवाब यहां देख सकते हैं stackoverflow.com/a/22345808/1522019
alucic

1
@DediAnanto कृपया npm संकुल के इस लिंक को इसी तरह की बातचीत से देखें। stackoverflow.com/questions/22343224/…
okandas

110

वर्जन नंबर में कैरेट ऑपरेटर का उपयोग करने के लिए दोहरे उद्धरण जोड़ें।

composer require middlewares/whoops "^0.4"

3
मुझे उस समय एक बिंदु दिखाई नहीं देता जहाँ आप पैकेज के नाम और संस्करण को दो अलग-अलग तर्कों के रूप में दे सकते हैं ।
x- यूरी

1
@ x-yuri पासिंग पैकेज का नाम और संस्करण अलग-अलग तर्कों के रूप में मेरे लिए १.५.१ का उपयोग करके काम करता है
bryonbean

जबकि तकनीकी रूप से यह ओपी के प्रश्न के लिए "सही" उत्तर नहीं है, यह संभवतः अधिकांश लोगों के लिए अधिक उपयोगी है।
रिच कोर्ट

19

बस php कंपोज़र का उपयोग करें

उदाहरण के लिए :

php composer.phar require doctrine/mongodb-odm-bundle 3.0

इंस्टॉल के साथ भी उपलब्ध है।

getgetcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install


रिकॉर्ड के लिए, कस्टम बाधाओं को जोड़ना केवल - के साथ उपलब्ध नहीं है । यदि आप किसी विशिष्ट संस्करण पर स्विच करने और अपनी फ़ाइल में चेक-इन करने की उम्मीद कर रहे थे , तो आप कर सकते हैं, लेकिन आपको इसका उपयोग करना होगा और फिर बाद में परिवर्तन को वापस करना होगा । installrequirecomposer.lockcomposer requirecomposer.json
mindplay.dk

एक अलग तर्क के रूप में संस्करण? क्या वह कभी उपलब्ध था?
x- यूरी

10

जैसा कि @alucic ने बताया, उपयोग करें:

composer require vendor/package:version

या आप उपयोग कर सकते हैं:

composer update vendor/package:version

आपको संभवतः इस StackOverflow पोस्ट को कंपोज़र इंस्टॉल और कंपोज़र अपडेट के बीच अंतर के बारे में समीक्षा करनी चाहिए ।

संस्करण संख्या के बारे में प्रश्न करने के लिए, आप संस्करणों पर संगीतकार प्रलेखन की समीक्षा कर सकते हैं , लेकिन यहाँ संक्षेप में:

  • टिल्ड वर्जन रेंज ( ~ ) - ~ 1.2.3> = = 1.2.3 < 1.3.0 के बराबर है
  • कैरेट संस्करण रेंज ( ^ ) - ^ 1.2.3> = 1.2.3 < 2.0.0 के बराबर है

तो, टिल्डे के साथ आपको पैच के स्वचालित अपडेट मिलेंगे लेकिन छोटे और प्रमुख संस्करण अपडेट नहीं होंगे। हालाँकि, यदि आप कैरट का उपयोग करते हैं तो आपको पैच और मामूली संस्करण मिलेंगे, लेकिन आपको बड़े (ब्रेकिंग परिवर्तन) संस्करण नहीं मिलेंगे।

टिल्ड संस्करण को एक "सुरक्षित" दृष्टिकोण माना जाता है, लेकिन यदि आप विश्वसनीय निर्भरता (अच्छी तरह से बनाए रखा पुस्तकालयों) का उपयोग कर रहे हैं, तो आपको कैरट संस्करण के साथ कोई समस्या नहीं होनी चाहिए (क्योंकि मामूली बदलावों को तोड़ना नहीं चाहिए।


5

मान लीजिए कि आप लारवेल कलेक्टिव इंस्टॉल करना चाहते हैं। यह वर्तमान में संस्करण 6.x पर है, लेकिन आप 5.8 संस्करण चाहते हैं। आप निम्न आदेश चला सकते हैं:

composer require "laravelcollective/html":"^5.8.0"

एक अच्छा उदाहरण यहाँ प्रलेखन में दिखाया गया है: https://laravelcollective.com/docs/5.5/html


0

अपने में composer.json, आप डाल सकते हैं:

{
    "require": {
        "vendor/package": "version"
    }
}

फिर चलाएं composer installया composer updateनिर्देशिका युक्त से composer.json। कभी-कभी, मेरे लिए, संगीतकार हिंकी है, इसलिए मैं composer clear-cache; rm -rf vendor; rm composer.lockपहले composer installसे शुरू कर दूंगा ताकि यह सुनिश्चित हो सके कि यह ताज़ा सामान है।


बेशक, जैसा कि अन्य उत्तर बताते हैं कि आप टर्मिनल से निम्नलिखित को चला सकते हैं:

composer require vendor/package:version

और संस्करण पर:
- संगीतकार के आधिकारिक संस्करण लेख
- इकोसिया खोज

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.