У меня есть вопрос об инструменте программирования композитор который устанавливается как исполняемый файл в /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, но я бы предпочел понять, почему это происходит в первую очередь.
исходный код раскрывает некоторую дополнительную сложность того, как вычисляется домашний каталог 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 продолжит использовать это местоположение.
Других решений пока нет …