web-dev-qa-db-ja.com

Composerで単一のライブラリを更新する方法

私は私の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から1つのライブラリだけを更新/インストールするにはどうすればよいですか?

239
Tool

doctrine/doctrine-fixtures-bundleをバージョン2.1.*および最小安定性@devとともにインストールするには、次のようにします。

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

それから、この単一のパッケージだけを更新します。

composer.phar update doctrine/doctrine-fixtures-bundle
421
nifr

全部ではなく、いくつかのパッケージを更新したいだけであれば、それらを以下のようにリストすることができます。

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

ワイルドカードを使用して一度にたくさんのパッケージを更新することもできます。

php composer.phar update vendor/*
  • --prefer-source :利用可能であればsourceからパッケージをインストールします。
  • --prefer-dist :利用可能な場合はdistからパッケージをインストールします。
  • --ignore-platform-reqs phphhvmlib-*およびext-*の要件を無視し、ローカルマシンがこれらを満たさなくてもインストールを強制する。 platformconfigオプション も参照してください。
  • --dry-run :実際には何もせずにコマンドをシミュレートします。
  • --dev require-devにリストされているパッケージをインストールします(これがデフォルトの動作です)。
  • --no-dev require-devにリストされているパッケージのインストールをスキップします。オートローダの生成はautoload-dev規則をスキップします。
  • --no-autoloader :オートローダの生成をスキップします。
  • --no-scripts :composer.jsonで定義されているスクリプトの実行をスキップします。
  • --no-plugins :プラグインを無効にします。
  • --no-progress :バックスペース文字を扱えない端末やスクリプトで混乱する可能性のある進行状況表示を削除します。
  • --optimize-autoloader(-o) :PSR-0/4オートロードをクラスマップに変換して、より高速なオートローダを取得します。これは特に本番環境ではお勧めですが、実行には少し時間がかかることがあるため、現在デフォルトでは行われていません。
  • --lock :ロックファイルハッシュが更新されるだけで、ロックファイルが期限切れになっているという警告が表示されなくなります。
  • --with-dependencies :ホワイトリストに登録されたパッケージのすべての依存関係もホワイトリストに追加します。
  • --prefer-stable :安定版の依存関係を優先します。
  • --prefer-lowest :最も低いバージョンの依存関係を優先します。最小限のバージョンの要件をテストするのに役立ちます。通常は--prefer-stableとともに使用されます。
150
Yosvel Quintero

新しいパッケージをインストールするためにも、基本的に次のようにすることができます。

php composer.phar require

その後、terminalは検索のためにパッケージの名前を入力するようにあなたに尋ねます。

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

そうするとterminalはパッケージのバージョンを尋ねます(最新のバージョンを空白にしたい場合)

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

それならリターンキーを押すだけです。別のパッケージをインストールしたくない場合には、Terminalは別のパッケージを要求しますので、リターンキーを押すだけで完了です。

8
orhankutlu

インストールvs更新vs必須

以下のシナリオを想定してください。

composer.json

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

composer.lockファイル

  "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.jsonに関する最高のバージョン。 composer.lockのエントリが更新されます。

composer require parsecsv/php-parsecsv

これにより、最新バージョンの1.1.0が更新またはインストールされます。あなたのcomposer.lockファイルとcomposer.jsonファイルも同様に更新されます。

6
Adam

Composer.jsonで設定したバージョン制限内で、すでにインストールされている1つのパッケージを確実に最後のバージョンに更新するには、そのパッケージをベンダーから削除して実行します。

php composer.phar update vendor/package
4
Tsounabe

ただ使う

composer require {package/packagename}

好き

composer require phpmailer/phpmailer

packageがベンダーフォルダにない場合.. composerインストールし、packageが存在する場合は、composerパッケージを最新バージョンに更新します。

0
Mostafa

あなたは特定のパッケージをインストールしたいと思ったので "私は私のSF2ディストリビューション(DoctrineFixtures)のために1つのパッケージだけをインストールする必要があります。"

php composer.phar require package/package-name:package-versionで十分でしょう

0
The Anh