我只需要为我的SF2发行版(DoctrineFixtures)安装一个包。
运行
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
上一个开发人员似乎在vendor内部编辑了很多文件。
为了绕过这个问题,我尝试了
php composer.phar update <package_name>
但这似乎不起作用。如何从composer.json中更新/安装一个库?
安装doctrine/doctrine-fixtures-bundle
版本2.1.*
和最低稳定性@dev
使用:
composer require doctrine/doctrine-fixtures-bundle:2.1.*@dev
然后只更新这个单独的包:
composer update doctrine/doctrine-fixtures-bundle
如果您只想更新几个软件包而不是全部,您可以列出它们:
php composer.phar update vendor/package:2.* vendor/package2:dev-master
你也可以使用通配符一次更新一堆包:
php composer.phar update vendor/*
正如@ZeroThe2nd评论的那样,ZSH用户可能需要将他们的供应商/*用引号括起来:
php composer.phar update "vendor/*"
- ——prefer-source:安装
source
可用的软件包。 - ——prefer-dist:当
dist
可用时安装包。 - ——ignore-platform-reqs:忽略
php
,hhvm
,lib-*
和ext-*
要求,即使本地机器不满足这些要求也强制安装。参见platform
配置选项。 - ——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自动加载转换为classmap以获得更快的自动加载器。特别建议在生产环境中这样做,但是可能需要一些时间来运行,所以目前默认情况下没有这样做。
- ——lock:只更新锁文件哈希值以抑制锁文件过期的警告。
- ——with-dependencies:将白名单包的所有依赖项也添加到白名单中。
- ——Prefer -stable:选择稳定版本的依赖。
- ——Prefer -lowest:选择最低版本的依赖。用于测试需求的最小版本,通常用于
--prefer-stable
。
install, update和require的区别
假设如下场景:
composer.json
"parsecsv/php-parsecsv": "0.*"
作曲家。锁文件
"name": "parsecsv/php-parsecsv",
"version": "0.1.4",
最新版本是
1.1.0
。0.*
的最新版本是0.3.2
install: composer install parsecsv/php-parsecsv
这将安装版本0.1.4
在锁文件中指定
update: composer update parsecsv/php-parsecsv
这将更新包到0.3.2
。composer.json的最高版本。composer.lock
中的条目将被更新。
require: composer require parsecsv/php-parsecsv
这将更新或安装最新版本的1.1.0
。您的composer.lock
文件和composer.json
文件也将被更新。
您可以使用以下命令更新任何模块及其依赖项
composer update vendor-name/module-name --with-dependencies
您基本上可以按照以下操作来安装新包。
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
然后按回车键。终端会要求安装另一个包,如果你不想安装另一个包,只要按回车键就可以了。
就用
composer require {package/packagename}
composer require phpmailer/phpmailer
如果包不在vendor文件夹中。Composer安装它,如果包存在,Composer将包更新到最新版本。
:
require
安装或更新最新的软件包版本。如果你想更新一个包,只需使用update
.
确保在您在composer中设置的版本限制内,将一个已经安装的包更新到最新版本。Json删除供应商的包,然后执行:
php composer.phar update vendor/package
因为您想要安装特定的软件包"我只需要为我的SF2发行版安装一个包(DoctrineFixtures)。"
php composer.phar require package/package-name:package-version