Symfony “错误”;无法删除";和作曲家一起流浪

Symfony “错误”;无法删除";和作曲家一起流浪,symfony,vagrant,Symfony,Vagrant,我有一个流浪汉在运行Linux,我正在尝试安装Symfony 在命令composer创建项目symfony/framework标准版。/“2.5.*”I出现错误: [RuntimeException] Could not delete ./.git/objects/pack/tmp_idx_llwUKb: 如果我尝试编写器更新另一个项目,我总是会出现这样的错误无法删除 有什么想法吗 编辑:对于另一个项目上的简单的sudo composer更新-vvv: - Installing son

我有一个流浪汉在运行Linux,我正在尝试安装Symfony

在命令
composer创建项目symfony/framework标准版。/“2.5.*”
I出现错误:

[RuntimeException]
  Could not delete ./.git/objects/pack/tmp_idx_llwUKb:
如果我尝试编写器更新另一个项目,我总是会出现这样的错误
无法删除

有什么想法吗

编辑:对于另一个项目上的简单的
sudo composer更新-vvv

  - Installing sonata-project/admin-bundle (dev-master 8a022aa)
Failed to download sonata-project/admin-bundle from source: Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:
Now trying to download from dist
  - Installing sonata-project/admin-bundle (dev-master 8a022aa)

Failed: [RuntimeException] Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/objects/pack/tmp_idx_hchQhc:



  [RuntimeException]
  Could not delete /vagrant/crm_neo/vendor/sonata-project/admin-bundle/.git/o
  bjects/pack/tmp_idx_hchQhc:



Exception trace:
 () at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:193
 Composer\Util\Filesystem->unlink() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:151
 Composer\Util\Filesystem->removeDirectoryPhp() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:129
 Composer\Util\Filesystem->removeDirectory() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:35
 Composer\Util\Filesystem->remove() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:80
 Composer\Util\Filesystem->emptyDirectory() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:108
 Composer\Downloader\FileDownloader->doDownload() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:89
 Composer\Downloader\FileDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/ArchiveDownloader.php:35
 Composer\Downloader\ArchiveDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:201
 Composer\Downloader\DownloadManager->download() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:156
 Composer\Installer\LibraryInstaller->installCode() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:87
 Composer\Installer\LibraryInstaller->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:152
 Composer\Installer\InstallationManager->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:139
 Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:548
 Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:217
 Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:128
 Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:252
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:889
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:193
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:135
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:124
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:84
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
 require() at /usr/local/bin/composer:15

这件事曾经发生在我身上,结果发现我正在按作曲者的暂停时间

您可以采取以下措施来提高速度:

  • 增加composer进程超时(默认值300)(如果以下设置有助于提高速度,则实际上不需要,但不会造成伤害)
  • dist
    设置为首选安装类型
  • 为github启用
    https
    协议,速度更快
  • ~/.composer/config.json

    {
        "config": {
            "process-timeout":      600,
            "preferred-install":    "dist",
            "github-protocols":     ["https"]
        }
    }
    
    如果此后仍有问题,还可以清除composer的缓存:

    rm -rf ~/.composer/cache
    

    我们也遇到了一些问题。有几个人似乎有这个问题,但尚未提供解决方案。有关更多信息,您可以查看vagrant winnfsd的详细信息。

    在AWS上,我在部署Yii框架项目时遇到了此错误

    /变量/应用程序/当前/供应商/


    文件夹我删除了其中的所有内容,然后返回到我的文档根目录并运行composer update。它再次获取了所有的repo。

    在我的情况下,通过删除插件并重新创建框来解决问题。

    只需运行即可

    sudo chmod -R 777 /folder/path
    
    这将授予您对正在运行composer的文件夹的写入权限。
    我知道这是一篇老文章,但它很有效,所以我必须与大家分享。

    我在配置机器时遇到了这个问题,机器是引导运行
    composer安装的。我只是简单地退出了虚拟机,在主机上的代码上运行了
    composer安装
    ,它就工作了

    因此,如果在VM内部运行Composer时遇到此问题,请尝试从VM外部运行Composer


    更新:正如下面的评论所指出的,由于本地环境和漫游环境之间的系统配置不同,这可能会给安装的不同版本的软件包带来一些问题,因此在尝试此操作时请谨慎。

    对我来说,这是由composer超时造成的。我检查了我的网速,发现网速降到了0.7M,几乎无法使用。在我重新连接wifi并使internet连接速度恢复正常后,错误就消失了。

    刚刚遇到了同样的问题

    我看到了访问一些本地文件的问题。在我的例子中,目标目录位于“root”之下,而我不是root用户

    解决方案

    更改文件/目录的权限/所有者。

  • 重新定义所有者:

    sudo chown myuser:myuser-R/path/to

  • 可能您所在的组缺少权限。
    因此,尝试运行:

    sudo chmod g+rwX-R/path/to

  • 或者,如果“sudo”适合您,您也可以使用它运行命令(不推荐)。:)

    附言。它不安全

    UPD1

    另一件事,您可能会发现解决问题根源的方法很有用,将
    编写器
    二进制文件包装起来,以便始终代表某个用户运行它

    $ cat /usr/local/bin/composer
    #!/bin/bash
    
    # run composer behalf www-data user
    
    set -o pipefail
    set -o errexit
    set -o nounset
    #set -o xtrace
    
    [[ "${DEBUG:-}" = "true" ]] && set -o xtrace || true
    
    composer_debug=$([[ 'true' != "${COMPOSER_DEBUG:-}" ]] || echo '-vvv' )
    
    sudo -u www-data -- /usr/bin/composer ${composer_debug:-} $@
    

    这与主机和来宾操作系统之间的文件夹同步有关,该文件夹可能只是从主机临时锁定

    解决方法是从主机操作系统中删除有问题的
    .git
    文件夹,或者重新启动计算机,然后再次启动
    composer安装

    理想情况下,每个操作系统都有自己的依赖项和不同的二进制文件,因此您应该将您的
    /vendor
    文件夹从rsync/vagrant文件夹共享中隔离出来,同样,您也可以对Nodejs项目上的
    /node\u模块执行相同的操作。

    适用于Windows用户 哇,我真不敢相信我花了多长时间才意识到这一点,不幸的是,这已经发生了多次,我终于写下了这封信,这样我和其他人下次就能很快恢复过来

  • 只需使用Windows资源管理器删除
    /vendor/whatever\u project\u name
    文件夹,而不是尝试从Vagrant命令行中删除它

  • 然后运行
    composer update
    重新安装依赖项


  • 在我的例子中,我尝试了
    composer更新
    ,但是我得到了

    [运行时异常] 无法删除…/vendor/bin/php解析:

    尽管我使用的是Laravel框架,但这个问题是谷歌的第一个链接,所以我决定发布一个答案

    我的解决方案是授予
    供应商的所有权
    sudo chown-R$USER:www-data-vendor/

    sudo chown-R$USER:www-data-composer.json



    更新:我的主机操作系统是Ubuntu16.04。

    另一件需要检查的事情是,Composer需要在它有权限访问的目录的上下文中运行

    在我的例子中,我试图从/var/www发出一个createproject命令,目标是/var/www/html/var/www归root所有,/var/www/html归我执行Composer的用户(www-data)所有。我得到了以下错误;无法删除/var/www/html/:


    从/var/www/html本身发出了相同的Composer命令,它工作得非常好。

    对我来说,它通过下载主页上的命令行帮助安装了一个(新)版本。我可以排除一些文件权限,因为我是chmod+R 0777的root用户,尽管我安装了virtualbox驱动器。无论如何,由于新版本可以工作,这意味着它是一个新版本,或者通过PHPHAR运行一个新版本,并且原始bin属于root

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    

    在本地Homestead环境中的Laravel Framework升级练习中,我试图更新项目依赖项(使用
    composer update
    ),但没有
    Could not delete /home/vagrant/projects/projectname/vendor/kylekatarnls/update-helper/src/UpdateHelper
    
    composer update --no-plugins
    
    {
        "config": {
            "preferred-install": "source"
        }
    }
    
    folders:
        - map: ~/code/cs-cart-trial
          to: /home/code/cs-cart-trial
          type: "nfs"