在后进程缓存清除步骤中运行`composer require ...`失败

时间:2017-11-13 19:43:05

标签: php symfony caching composer-php

我似乎无法使用

完成捆绑包的安装

composer require <bundle-name>因为这些错误:

  

[Symfony \ Component \ Filesystem \ Exception \ IOException]无法执行   删除目录“/ var / www / emerson-suite / var / cache / de~ / pools / rDfZ
  I1q9aB“:。

完成控制台输出错误:

  

生成自动加载文件ocramius / package-versions:生成   版本类... ocramius / package-versions:...完成生成版本   类

     
    

Sensio公司\捆绑\ DistributionBundle \作曲\ ScriptHandler :: buildBootstrap     SENSIO \捆绑\ DistributionBundle \作曲\ ScriptHandler :: clearCache

  
     

//使用debug // true

清除dev环境的缓存      

Symfony \ Component \ Filesystem \ Exception \ IOException]失败   删除目录“/ var / www / emerson-suite / var / cache / de~ / pools / rDfZ
  I1q9aB“:。

     

缓存:清除[--no-warmup] [--no-optional-warmers] [-h | --help]   [-q | --quiet] [-v | vv | vvv | --verbose] [-V | --version] [ - ansi] [ - no-ansi]   [-n | --no-interaction] [-e | --env ENV] [--no-debug] [ - ]

     

脚本   SENSIO \包\ DistributionBundle \作曲\ ScriptHandler :: clearCache   处理以异常终止的post-update-cmd事件

     

安装失败,将./composer.json恢复为原始版本   内容。

     

[RuntimeException]执行时发生错误   “'cache:clear --no-warmup'”命令://清除缓存   dev环境,带有debug // true

     

[Symfony的\元器件\文件系统\异常\ IOException异常]   无法删除目录“/ var / www / emerson-suite / var / cache / de~ / pools / rDfZ   I1q9aB“:。

     

缓存:清除[--no-warmup] [--no-optional-warmers] [-h | --help]   [-q | --quiet] [-v | vv | vvv | --verbose] [-V | --version] [ - ansi] [ - no-ansi]   [-n | --no-interaction] [-e | --env ENV] [--no-debug] [ - ]

尝试使用sudo和不使用{}运行作曲家。 我运行的命令是:$ sudo composer require javiereguiluz/easyadmin-bundle

不知道该如何处理,感谢任何帮助。

更新

我的环境是Mac OS X上的Vagrant VM上的Ubuntu。

2 个答案:

答案 0 :(得分:1)

似乎它可能是涉及操作系统内部权限以及可能的开发环境的问题。

尝试在这里寻找答案,很多人似乎都有这个问题。 https://github.com/symfony/symfony/issues/19363#issuecomment-264655158

答案 1 :(得分:0)

目录 ./ de~/ 是旧的/ dev /目录,因为它已经准备好被删除了。 / pools /目录是在应用程序运行期间构建的缓存。在初次启动时,它使用一个用户帐户,但网络服务器正在运行另一个用户帐户,因此原始用户帐户无权删除某些文件。

这个简单的方法 - 至少在开发环境中 - 是dict_items。当我在prod上删除旧版本的代码时,我常常必须这样做,因为不仅仅是原始的部署用户,写入缓存目录。