使用 --prefer-install=dist 或 source 更新作曲家

问题描述 投票:0回答:1

首先我有一个问题,使用 dist 和 source 选项进行更新有什么区别。根据我的阅读和理解,如果你想修改代码中的某些内容,源代码会更好,因为它从 github 下载所有内容。 问题是我目前开始在使用 dist 时遇到问题,其中出现错误“无法删除 /path/file”,因为该文件甚至不存在,并且我意识到这不会发生与来源。 我尝试过其他替代方案,但只有这个有效。 所以我想知道在实践中从远程切换到源是否会改变很多,从而节省时间

我尝试过更改权限、清除缓存等解决方案

php composer-php
1个回答
0
投票

使用 dist 和 source 选项进行更新的区别主要在于下载的包的类型。

当您使用 dist 选项时,您正在下载软件包的“分发”版本。这通常是包的稳定、预编译或缩小版本,可以开箱即用。它的下载和安装速度通常更快,但它不包含完整的源代码或版本控制历史记录,因此如果您想修改代码或跟踪随时间的变化,它不适合。

另一方面,当您使用源选项时,您将下载包的完整源代码,包括版本控制历史记录。如果您想要修改代码、跟踪更改或者需要自己编译代码,这非常有用。但是,它通常比 dist 版本更大且下载和安装速度更慢。

现在我们已经回答了标题中的问题了... 听起来您遇到的错误是文件系统或权限问题。该错误消息表明更新过程正在尝试删除不存在的文件,这可能是由于多种原因造成的。这可能是更新过程中的错误,也可能是在更新过程检查文件存在之后但在尝试删除文件之前,文件被另一个进程删除了。

从 dist 切换到 source 可能会避免此错误,但这并不是真正解决根本问题的方法。这更多的是一种解决方法。实际上,它可能对您没有太大影响,除非您需要 dist 版本提供的功能(例如更快的下载和安装时间)。然而,尝试理解并解决根本问题而不是仅仅解决它通常是一个好主意。

您提到您已尝试更改权限并清除缓存,但您是否也检查过文件系统是否有错误?可能值得运行文件系统检查,以防万一有一些损坏导致此问题。另外,我强烈建议尝试以更高级别的详细程度或调试输出运行更新过程,看看这是否可以为您提供有关出现问题的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.