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 错误的主要内容,如果未能解决你的问题,请参考以下文章
忽略使用 NFS 作为 Vagrant 同步系统的同步文件夹文件/目录
加快 Vagrant 上主机和来宾之间的同步延迟(NFS 同步文件夹)