Vagrant 同步文件夹上的 Composer 错误

Posted

技术标签:

【中文标题】Vagrant 同步文件夹上的 Composer 错误【英文标题】:Composer Errors On Vagrant Sync'd Folders 【发布时间】:2019-11-19 12:21:29 【问题描述】:

我在 Composer 安装/更新期间遇到了一些奇怪的问题,这些问题似乎在将 Laravel Homestead 从 v6.x 升级到 9.0.2 后开始出现。

似乎每当我在与主机同步的文件夹中运行 Composer 时,它都会被轰炸,这显然是一直存在的。当我 vagrant ssh 进入时,在同步文件夹中创建一个新的composer create-project --prefer-dist laravel/laravel,我看到以下错误,总是在同一个包上,这很奇怪:

- Installing symfony/var-dumper (v4.3.2): Loading from cache
        Skipped installation of bin Resources/bin/var-dump-server for package symfony/var-dumper: file not found in package

- Installing nikic/php-parser (v4.2.2): Loading from cache
        Skipped installation of bin bin/php-parse for package nikic/php-parser: file not found in package

- Installing psy/psysh (v0.9.9): Loading from cache
    Skipped installation of bin bin/psysh for package psy/psysh: file not found in package

- Installing phpunit/phpunit (7.5.13): Loading from cache
    Skipped installation of bin phpunit for package phpunit/phpunit: file not found in package

最后我得到了这个:

  [RuntimeException]
  Could not scan for classes inside "/home/vagrant/testapp.com/vendor/sebastian/object-enumerator/src/" which does not appear to be a file nor a folder

当我在安装依赖项时实际查看 Finder 中的 /vendor/ 文件夹时,我看到当前依赖项文件夹出现,然后消失......然后下一个,出现,然后消失。最后,/vendor/ 中剩下的唯一文件夹和文件是 /vendor/composer/installed.json,当我打开它时它看起来是正确的。

现在,当我在一个非同步的新文件夹中创建一个新的 composer create-project --prefer-dist laravel/laravel 时。繁荣一切正常。这一系列奇怪的错误也发生在我所有的旧项目中,以及在作曲家安装、作曲家更新期间,而不仅仅是在作曲家创建项目期间。

有没有人遇到过这种情况?我几乎尝试了所有方法,rm -rf /vendor/、删除 composer.lock、composer clear-cache 等。我没有想法。

谢谢

【问题讨论】:

你能发布你的 homestead.yaml 文件吗?另外,您使用的是什么主机操作系统? 嘿@PtrTon,我正在使用 Osx Mojave。似乎通过启用 NFS 我能够解决这个问题。 【参考方案1】:

在阅读了更多内容之后,OSX Mojave 和 VirtualBox 共享文件夹显然存在一些问题。通过启用 NFS,此问题已得到解决。

https://www.vagrantup.com/docs/synced-folders/nfs.html

https://tech.osteel.me/posts/2016/01/19/how-to-enable-nfs-on-laravel-homestead.html

【讨论】:

以上是关于Vagrant 同步文件夹上的 Composer 错误的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant 启用 rsync

忽略使用 NFS 作为 Vagrant 同步系统的同步文件夹文件/目录

加快 Vagrant 上主机和来宾之间的同步延迟(NFS 同步文件夹)

Vagrant 共享和同步文件夹

在 ubuntu vagrant box 中安装 gd 后出现“Composer Update”错误

Vagrant 共享/同步文件夹权限