[英]Unable to install PHP packages with apt-get, gives "E: Unable to locate package"
[英]PHP install package globally: apt-get vs composer
我发现有两种方法可以在Linux(Ubuntu 16.04)中全局安装PHP软件包:
使用composer
:
composer global require symfony/finder
该软件包将位于~/.config/composer/vendor/
使用apt-get
:
apt-get install php-symfony-finder
该软件包将位于/usr/share/php/
这个目录/usr/share/php/
也是默认的PHPs include_path
(我有PHP 7.2)
我有几个问题:
为什么要在全球安装软件包?
我知道在全球范围内安装php工具(例如phpunit
-它具有二进制文件,并且允许您在任何地方运行测试,因此您不必在每个项目中都安装它。 但是,例如symfony/finder
呢? 全局安装的此软件包有什么特殊用途?
1和2选项有什么区别?
它有不同的用例或不同的效果吗?
为什么要在全球安装软件包?
通常,这些是您几乎要在每个项目中使用的依赖项,因为它们在系统级别可用,因此您可以使用它们,而不必在创建的每个应用程序中复制它们的依赖项。
例如,在我的情况下,我有php_md
, php_cs
用于代码格式化, phpunit
用于测试。
1和2选项有什么区别?
两者都是软件包管理器,它们确保安装的每个软件包都具有正确的依赖性,因此它们的核心功能是相似的。
现在,它们有几个区别:
composer
特定于基于php
的软件包,而apt-get
则适用于Linux和更多面向系统级别的软件包。 composer
使用packagist,而apt-get
使用选择的存储库和ppas(可以在/var/lib/apt/lists/
找到它们)。 composer
是php
专门技术,您可以期望任何与php
相关的种类都更多。 总之,您可以清楚地使两者同时使用,但我建议您将与php
相关的所有内容保留在作曲家中,并在同一管理器下统一它们。
我忽略了任何其他差异或更正。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.