Я обнаружил, что есть два варианта глобальной установки пакета PHP в Linux (Ubuntu 16.04):
С помощью composer
:
composer global require symfony/finder
Пакет будет расположен по адресу ~/.config/composer/vendor/
С помощью apt-get
:
apt-get install php-symfony-finder
Пакет будет расположен по адресу /usr/share/php/
Этот каталог /usr/share/php/
также в PHP по умолчанию 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
связаны по композитору, объединяя их под одним менеджером.
Любые другие различия или исправления, которые я пропустил, приветствуются.
Других решений пока нет …