संगीतकार के साथ एकल पुस्तकालय कैसे अपडेट करें?


311

मुझे अपने SF2 वितरण (DoctrineFixtures) के लिए केवल 1 पैकेज स्थापित करने की आवश्यकता है।

जब मैं दौड़ता हूं

php composer.phar update

मुझे मिला

  - Updating twig/twig (dev-master 39d94fa => v1.13.0)
    The package has modified files:
    M CHANGELOG
    M doc/filters/batch.test
    M doc/filters/index.rst
    M doc/filters/url_encode.rst
    M doc/functions/index.rst
    M doc/tags/index.rst
    M doc/tests/index.rst
    M lib/Twig/Autoloader.php
    M lib/Twig/Compiler.php
    M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list

ऐसा प्रतीत होता है कि अंतिम डेवलपर ने विक्रेता के अंदर बहुत सारी फाइलें संपादित की हैं।

इस के आसपास पाने के लिए, मैंने कोशिश की

php composer.phar update <package_name>

लेकिन वह काम नहीं करता है। मैं कंपोजर.जॉन से केवल एक लाइब्रेरी को कैसे अपडेट / इंस्टॉल कर सकता हूं?


आप सही कमांड का उपयोग कर रहे हैं। क्या आप हमें अपना दिखा सकते हैं composer.json?
चीज़केम

कृपया मेरे उत्तर में दिए गए आदेशों के साथ प्रयास करें अन्यथा कृपया प्राप्त होने वाली त्रुटि का विवरण प्रदान करें (अर्थात संगीतकार शिकायत होने पर संगीतकार आउटपुट)
निकोलाई फ्रोइलिच

आपका कंपोज़र.जॉन किसी प्रोजेक्ट के वैकल्पिक कांटे का उल्लेख कर सकता है।
आइकनोकॉस्ट

मैंने अपने लार्वा प्रोजेक्ट में एक विशिष्ट निर्भरता को अपडेट किया और विशिष्ट घटक को स्पष्ट रूप से स्थापित करने के लिए निर्दिष्ट किया: संगीतकार अपडेट लारवेल्कलेक्टिव / एचटीएमएल। वह काम करने लगा था।
चिह्न

जवाबों:


526

doctrine/doctrine-fixtures-bundleसंस्करण 2.1.*और न्यूनतम स्थिरता के साथ स्थापित करने के लिए @devइसका उपयोग करें:

composer.phar require doctrine/doctrine-fixtures-bundle:2.1.*@dev

तब केवल इस एकल पैकेज को अद्यतन करने के लिए:

composer.phar update doctrine/doctrine-fixtures-bundle

9
मददगार हो सकता है: -vvv (क्रिया मोड: कंपोज़र .phar अपडेट -vvv पैकेज / पैकेज) के साथ रनिंग अपडेट / इंस्टॉल कभी-कभी बेहतर हो सकता है क्योंकि कभी-कभी एक इंटरेक्टिव प्रॉम्प्ट दिखाई देगा जो अन्यथा छिपा हो सकता है
टाइमहैस्क 22

1
यदि अन्य पैकेजों में त्रुटियां हैं तो क्या होगा? (मेरे मामले में स्थापना बंद हो गई)।
थॉमस डेकाक्स

2
आवश्यकता के बारे में क्या एक अलग पैकेज के अद्यतन को ट्रिगर करता है?
हकर्रे

1
आप वास्तव में क्या जानना चाहेंगे? क्या आप कृपया अधिक विशिष्ट हो सकते हैं? क्या आप जानना चाहते हैं कि ऐसा हो सकता है कि एक और पैकेज - स्पष्ट रूप requireसे पहले या पहले एक निर्भरता के रूप में डाउनलोड किया गया था - composer require <package>:<version-constraint>@<stability-flag>कमांड चलाते समय स्वचालित रूप से अपडेट किया जाएगा ?
निकोलाई फ्रोइलिच

7
> composer.phar अपडेट सिद्धांत / सिद्धांत-जुड़नार-बंडल इस अद्यतन को अन्य सभी पैकेजों में भी अपडेट करें ((
podarok

184

यदि आप केवल कुछ पैकेजों को अपडेट करना चाहते हैं और सभी को नहीं, तो आप उन्हें इस प्रकार सूचीबद्ध कर सकते हैं:

php composer.phar update vendor/package:2.* vendor/package2:dev-master

आप एक बार में संकुल का एक गुच्छा अपडेट करने के लिए वाइल्डकार्ड का उपयोग कर सकते हैं:

php composer.phar update vendor/*
  • -परफर-सोर्स : sourceउपलब्ध होने पर पैकेज स्थापित करें ।
  • -परफर-डिस्ट : distजब उपलब्ध हो, तब से पैकेज स्थापित करें ।
  • --ignore मंच-reqs : उपेक्षा php, hhvm, lib-*और ext-*आवश्यकताओं और भले ही स्थानीय मशीन इन को पूरा नहीं करता स्थापना के लिए मजबूर। platform कॉन्फिग विकल्प भी देखें ।
  • -dry-run : वास्तव में कुछ भी किए बिना कमांड का अनुकरण करें।
  • -देवी : में सूचीबद्ध संकुल स्थापित करें require-dev(यह डिफ़ॉल्ट व्यवहार है)।
  • -no-dev : में सूचीबद्ध संकुल को स्थापित करना छोड़ें require-dev। ऑटोलैडर पीढ़ी autoload-devनियमों को छोड़ देती है।
  • -नो-ऑटोलैडर : स्किप्स ऑटोलैडर पीढ़ी।
  • -न-लिपियाँ : कंपोज़र.जॉन में परिभाषित लिपियों का निष्पादन।
  • -no-plugins : प्लगइन्स को निष्क्रिय करता है।
  • -कोई-प्रगति : प्रगति प्रदर्शन को हटाता है जो कुछ टर्मिनलों या स्क्रिप्ट के साथ गड़बड़ कर सकता है जो बैकस्पेस वर्णों को नहीं संभालता है।
  • --optimize-autoloader (-o) : PSR-0/4 को ऑटोलैडिंग से एक तेज़ ऑटोलॉडर पाने के लिए क्लासमेट में कनवर्ट करें। यह विशेष रूप से उत्पादन के लिए अनुशंसित है, लेकिन इसे चलाने के लिए थोड़ा समय लग सकता है इसलिए यह वर्तमान में डिफ़ॉल्ट रूप से नहीं किया जाता है।
  • --lock : केवल लॉक फ़ाइल हैश को अपडेट करता है ताकि लॉक फ़ाइल के पुराने होने की चेतावनी दी जा सके।
  • - निर्भरता के साथ : श्वेतसूची में श्वेतसूची पैकेजों की सभी निर्भरता भी जोड़ें।
  • -प्रेरक-स्थिर : निर्भरता के स्थिर संस्करणों को प्राथमिकता दें।
  • --prefer-निम्नतम : निर्भरता के निम्नतम संस्करणों को प्राथमिकता दें। आवश्यकताओं के न्यूनतम संस्करणों के परीक्षण के लिए उपयोगी, आम तौर पर के साथ प्रयोग किया जाता है --prefer-stable

कृपया ध्यान दें कि ZSH उपयोगकर्ताओं को vendor/*उद्धरण चिह्नों में लपेटने की आवश्यकता हो सकती है :composer update "vendor/*"
ZeroThe2nd

51

इंस्टॉल, अपडेट और आवश्यकता के बीच अंतर

निम्नलिखित परिदृश्य मान लें:

composer.json

"parsecsv/php-parsecsv": "0.*"

कंपोज़र .लॉक फ़ाइल

  "name": "parsecsv/php-parsecsv",
            "version": "0.1.4",

नवीनतम रिलीज है 1.1.0। नवीनतम 0.*रिलीज है0.3.2

इंस्टॉल: composer install parsecsv/php-parsecsv

यह 0.1.4लॉक फ़ाइल में निर्दिष्ट संस्करण को स्थापित करेगा

अपडेट करें: composer update parsecsv/php-parsecsv

यह पैकेज को अपडेट करेगा 0.3.2। आपके कंपोज़र.जॉन के संबंध में उच्चतम संस्करण। में प्रवेश composer.lockअद्यतन किया जाएगा।

आवश्यकता होती है: composer require parsecsv/php-parsecsv

यह नवीनतम संस्करण को अपडेट या इंस्टॉल करेगा 1.1.0। आपकी composer.lockफ़ाइल और composer.jsonफ़ाइल भी अपडेट की जाएगी।


भयानक, इसलिए विवश संस्करण के भीतर एक पैकेज को ताज़ा करने के लिए composer update author/packageऔर फिरcomposer install author/package
विलियम रैंडोकुन

@WilliamRandokun यदि आपने इसे पहले स्थापित किया है, तो बस composer update packageपर्याप्त है, इसके बाद कॉल करने की आवश्यकता नहीं है
एडम

1
बिल्कुल वही, जिसकी मुझे तलाश है। अच्छी तरह से समझाया। upvoted
कपतान

14

आप मूल रूप से नए पैकेज को स्थापित करने के लिए एक का अनुसरण कर सकते हैं।

php composer.phar require

तब टर्मिनल आपको खोज के लिए पैकेज का नाम दर्ज करने के लिए कहेगा।

$ Search for a package []: //Your package name here

तब टर्मिनल पैकेज के संस्करण को पूछेगा (यदि आप नवीनतम संस्करण को खाली छोड़ना चाहते हैं)

$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here

फिर आप सिर्फ रिटर्न की दबाएं। टर्मिनल दूसरे पैकेज के लिए पूछेगा, यदि आप एक और स्थापित नहीं करना चाहते हैं तो बस रिटर्न कुंजी दबाएं और आपको किया जाएगा।


6

आप किसी भी मॉड्यूल को उसकी निर्भरता के साथ अद्यतन करने के लिए निम्न आदेश का उपयोग कर सकते हैं

composer update vendor-name/module-name --with-dependencies

5

यह सुनिश्चित करने के लिए कि संगीतकार आपके द्वारा कंपोज़र में सेट किए गए संस्करण की बाधाओं के भीतर पहले से इंस्टॉल किए गए एक पैकेज को अपडेट कर देता है। विक्रेता से पैकेज को हटा दें और फिर निष्पादित करें:

php composer.phar update vendor/package

4
आपको इस पोस्ट में एक ही सुझाव मिलेगा: github.com/composer/composer/issues/3112 । पुनश्च: स्पष्टीकरण के बिना डाउन वोट करना इतना आसान है और इतना बेकार।
Tsounabe

5

महज प्रयोग करें

composer require {package/packagename}

पसंद

composer require phpmailer/phpmailer

अगर पैकेज विक्रेता फ़ोल्डर में नहीं है .. संगीतकार इसे स्थापित करता है और यदि पैकेज अंतिम संस्करण के लिए संगीतकार अपडेट पैकेज मौजूद है।


2

क्योंकि आप विशिष्ट पैकेज स्थापित करना चाहते थे "मुझे अपने एसएफ 2 वितरण (डॉक्ट्रिनफाइक्चर्स) के लिए केवल 1 पैकेज स्थापित करने की आवश्यकता है।"

php composer.phar require package/package-name:package-version पर्याप्त होगा

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