Linux — глобальный пакет установки PHP: apt-get vs composer

Я обнаружил, что есть два варианта глобальной установки пакета PHP в Linux (Ubuntu 16.04):

  1. С помощью composer:

    composer global require symfony/finder
    

    Пакет будет расположен по адресу ~/.config/composer/vendor/

    введите описание изображения здесь

  2. С помощью 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 вариантами?

Есть ли у него разные варианты использования или разные эффекты?

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 связаны по композитору, объединяя их под одним менеджером.

Любые другие различия или исправления, которые я пропустил, приветствуются.

4

Другие решения

Других решений пока нет …