无法更改权限或删除 /root/.composer 目录

Posted

技术标签:

【中文标题】无法更改权限或删除 /root/.composer 目录【英文标题】:Cannot change permission or delete /root/.composer directory 【发布时间】:2018-10-03 23:09:00 【问题描述】:

这里是场景。我有一个安装了 Composer 的 php Docker,然后我尝试使用来自其他存储库的 composer 包并进行 composer 更新。我收到以下错误:

无法创建缓存目录/root/.composer/cache/repo/https---packagist.org/,或者目录不可写。不使用缓存继续

我知道 /root/.composer 目录有问题。 我试图更改权限并删除它,但我不能:

Here is the screenshot

基本上,我不能用“/root/.composer”做任何事情。 如何更改权限或删除此文件夹?

【问题讨论】:

您在容器中以 root 身份运行 Composer? PHP Docker 镜像中只有一个用户。因此,您使用 root 或非 root 用户并不重要。无论如何,谢谢你的提问。我已经找到了这个问题的根本原因。 :) 【参考方案1】:

我自己找到了解决方案。问题在于安装 Composer 的方式。

此序列将导致上述错误:

    Dockerfile

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" RUN php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') echo 'Installer verified'; else echo 'Installer corrupt'; unlink('composer-setup.php'); echo PHP_EOL;" RUN php composer-setup.php --filename=composer RUN php -r "unlink('composer-setup.php');" RUN mv composer.phar /usr/local/bin/composer

    运行 docker-compose

docker-compose up -d

解决方案:

    Dockerfile

不要从 Dockerfile 安装 Composer

    运行 docker-compose

docker-compose up -d

    在容器内 - 安装 composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') echo 'Installer verified'; else echo 'Installer corrupt'; unlink('composer-setup.php'); echo PHP_EOL;" php composer-setup.php --filename=composer php -r "unlink('composer-setup.php');" mv composer.phar /usr/local/bin/composer

【讨论】:

以上是关于无法更改权限或删除 /root/.composer 目录的主要内容,如果未能解决你的问题,请参考以下文章

您需要来自 计算机管理员 的权限才能对此文件夹进行更改

更改c盘计算机权限,Win10系统中C盘文件无法更改写入删除提示没有权限如何解决...

用cmd命令更改权限和删除文件

win10 删除旧系统windows文件夹,提示需要管理员权限,更改时无法枚举容器中的对象,访问被拒绝,怎么也删不了

无法保存对 Rundll32.exe 权限所作的更改!!!!

chattr无法删除某个文件