composer-php - 是否使用 sudo 何时执行“composer require”命令?
问题描述
通常,它会遇到Do not run Composer as root/super user! See https://getcomposer.org/root for details
何时执行的问题sudo composer require somePackage
。
这是我安装 swiftmailer 的记录。
首先在 composer require somePackage
没有sudo
.
debian9@machine:~$ composer require "swiftmailer/swiftmailer:^6.0"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Installation failed, reverting ./composer.json to its original content.
[RuntimeException]
/home/debian9/vendor/doctrine/lexer does not exist and could not be created
.
require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...
让我们尝试使用 sudo。
debian9@machine:~$ sudo composer require "swiftmailer/swiftmailer:^6.0"
Do not run Composer as root/super user! See https://getcomposer.org/root for details
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing doctrine/lexer (v1.0.1)
Downloading: 100%
- Installing egulias/email-validator (2.1.6)
Downloading: 100%
- Installing swiftmailer/swiftmailer (v6.1.3)
Downloading: 100%
egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation)
swiftmailer/swiftmailer suggests installing ext-intl (Needed to support internationalized email addresses)
swiftmailer/swiftmailer suggests installing true/punycode (Needed to support internationalized email addresses, if ext-intl is not installed)
Writing lock file
Generating autoload files
我很困惑,如果没有sudo
,swiftmailer 无法安装,sudo
会发生错误Do not run Composer as root/super user!
。
解决方案
您过去可能使用过 Composer sudo
。这使某些目录vendor/
归根目录所有,从而使您无法正常使用 Composer。
将整个vendor
目录的所有权更改为您的 shell 用户,或完全删除该目录。(您需要以 root 身份执行此操作。)完成此操作后,您应该能够正常使用 Composer。
推荐阅读
- node.js - POST 和 Patch 在 POSTMAN 中无法使用 JSON 数据
- ssh - 如何在有或没有跳转主机的情况下运行相同的剧本和库存?
- javascript - Bazel 自动为 ts_library 生成依赖项
- python-3.x - Anaconda 无法在 Windows10 上创建进程
- python - 点击计数/页面查看功能 Django 应用程序
- site-prism - 是否有关于使用部分的 Siteprism 最佳实践
- java - 遍历多维数组后,如何仅打印一次消息?
- android - 键入时替换 Edittext 中的字符
- python - 如何转换 PySpark Word2Vec 模型并加载它如何 gensim Word2Vec 模型?
- python - 检查子进程是否中断,如果为真则重新启动