php - 无法安装“全局”作曲家要求,因为“composer.json 不可写”
问题描述
我想安装 Laravel 但我一次又一次收到以下错误,
rukon@rukon-HP-Notebook:~$ composer global require laravel/installer 将当前目录更改为 /home/rukon/.config/composer ./composer.json 不可写。rukon@rukon-HP-笔记本:~$
我试图通过
$chmod 777 ./composer.json
但它不起作用。我的文件所有者不是 root
解决方案
当您运行任何composer global
命令时,composer.json
使用的是您的 HOME 目录中的命令,而不是您的项目目录中的命令。例如在~/.composer/composer.json
。
看起来您的主目录作曲家归根用户所有。
在某些时候,您已经composer
使用 root 执行并搞砸了您的安装。
要找出你的作曲家的主目录在哪里,你应该运行它(如此处所示):
composer config --list --global | grep home
例如,鉴于您的输出,您的主目录似乎位于“/home/rukon/.config/composer”:
所以你需要运行:
sudo chown -R $USER: ~/.config/composer
修复您的“全局”作曲家配置目录。
之后您应该能够运行composer global
命令。
如果你有更多的权限问题,你最好修复你的主目录,这样那里的所有东西都归你的用户所有,root 没有任何东西,如下所示:
sudo find ~ -type d -user root -exec sudo chown -R $USER: {} +
对于常规安装,上述内容应该是安全的(您的主目录中的所有文件都属于您自己的用户),但如果您有什么特别之处,您可能应该意识到并采取更手术的方法(检查每个目录)。
推荐阅读
- python - 在构建不和谐机器人时,我可以在 discord.py 中创建两个同名但参数不同的函数吗?
- node.js - 尝试使用 mongodb 制作 todolist 并使用节点表达
- python - 在python中仅使用一个装饰器使用定义的属性并将n个属性传递给包装器
- html - 旋转到横向时,iPad Pro 上的 HTML 元素不会改变宽度
- arrays - 在 dart 中解析对象(不支持的操作:无法添加到固定长度列表)
- java - Hibernate Search 6 返回结果但解释值为 0.0
- itfoxtec-identity-saml2 - 如何为 IdP Saml2 响应的自定义声明类型添加属性
- twig - 删除多个单选框之间的空格
- r - “as.POSIXlt.numeric(value) 中的错误:必须提供'origin'”尝试将 POSIXlt 添加到数据帧时
- javascript - HERE-API - 如何向 python 提供/继承 JS 对象