Почему COMPOSER_HOME пуст?

У меня есть вопрос об инструменте программирования композитор который устанавливается как исполняемый файл в /usr/local/bin/composer на 3 разных машинах, которые я использую между работой и домом. В соответствии с:

composer help global
COMPOSER_HOME is c:\Users<user>\AppData\Roaming\Composer on Windows
and /home/<user>/.composer on unix systems.

Note: This path may vary depending on customizations to bin-dir in
composer.json or the environmental variable COMPOSER_BIN_DIR.

Но оба они пусты:

echo $COMPOSER_HOME
echo $COMPOSER_BIN_DIR

Когда я бегу:

composer global require <package>

Устанавливается в /home/<user>/.config/composer/vendor/bin только на моем рабочем столе Ubuntu 16.04, но везде он устанавливается соответствующим образом /home/<user>/.composer/vendor/bin

Почему он устанавливается на ~/.config вместо ~/.composer и не устанавливая COMPOSER_HOME переменная?

Я заметил это, потому что я использую мои общие точечные файлы, которые включают в себя глобальный путь к хранилищу композитора. Я знаю, что могу обойти это путем ручной настройки COMPOSER_HOME в моем bashrc, но я бы предпочел понять, почему это происходит в первую очередь.

3

Решение

исходный код раскрывает некоторую дополнительную сложность того, как вычисляется домашний каталог Composer.

Если ваша система использует стандарты freedesktop.org, которые она обнаруживает, ища переменные среды, начинающиеся с XDG_, тогда Composer использует $XDG_CONFIG_HOME/composer/отступая к $HOME/.config/composer/ если это не установлено.

Вам может быть интересно увидеть, что есть особый случай: если $HOME/.composer/ существует и является каталогом, который будет использоваться в пользу логики freedesktop.org. Предположительно это для обратной совместимости. Если вы создаете этот каталог вручную, Composer должен использовать его.

Я не уверен, почему это влияет на вашу машину с Ubuntu 16.04. Мой старый ноутбук работает под управлением версии Ubuntu 14.04 XDG_ переменные среды

Я подозреваю, что вы впервые установили Composer на эту машину после логики freedesktop.org был добавлен в июле 2015 и что на других ваших машинах сначала был установлен Composer. Тогда их существующие ~/.composer/ каталоги будут гарантировать, что Composer продолжит использовать это местоположение.

8

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

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

По вопросам рекламы [email protected]