我有一个关于编程工具撰写器的问题,该工具作为可执行文件安装在/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
变量?
我注意到这一点是因为我获取了包括全局作曲家bin路径在内的常见dotfiles。我知道我可以通过COMPOSER_HOME
在bashrc中手动设置来解决此问题,但是我宁愿理解为什么会首先发生这种情况。
在源代码中发现一些额外的复杂性作曲家的主目录是如何计算的。
如果您的系统使用freedesktop.org标准(通过查找以开头的环境变量XDG_
来进行检测),则Composer使用$XDG_CONFIG_HOME/composer/
,$HOME/.config/composer/
如果未设置,则使用。
您可能会想知道有一个特殊情况:如果$HOME/.composer/
存在并且是一个目录,它将被使用来支持freedesktop.org逻辑。大概是为了向后兼容。如果您手动创建此目录,则Composer应该使用它。
我不确定为什么这只会影响您的Ubuntu 16.04计算机。我的旧笔记本电脑运行的是Ubuntu 14.04的变体,它使用XDG_
环境变量。
我怀疑您是在2015年7月添加freedesktop.org逻辑后在该计算机上首次安装Composer的,而在此之前您的其他计算机都都先安装了Composer。然后,它们的现有~/.composer/
目录将确保Composer继续使用该位置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句