【发布时间】:2020-10-31 04:03:02
【问题描述】:
我想在 laravel 5.8 中安装 zizaco/entrust 包,在他们的 github 页面中据说在 composer.json 文件中包含 "zizaco/entrust": "5.2.x-dev" 并运行 composer更新 命令。我按照下面的方法运行了 composer update 命令。
"require" : {
"php" : "^7.1.3",
"fideloper/proxy" : "^4.0",
"laravel/framework" : "5.8.*",
"laravel/tinker" : "^1.0",
"laravel/ui" : "^1.2",
"maatwebsite/excel" : "^3.1",
"zizaco/entrust" : "5.2.x-dev"
},
但是 composer update 命令在安装 zizaco/entrust 包时将所有包更新到最新版本(这些包我包含在上面的“require”字段中)。如果最新更新的软件包中存在一些编码错误,那么整个站点可能会崩溃。仅供参考,在我运行上述命令后,我看到本地 git 显示供应商文件夹下文件夹中许多文件的更改,这意味着包中有一些更新,对吗?所以建议运行 composer install 命令,这样那些依赖包就不会更新到最新版本了。
所以,在我的情况下,如上所述,在 composer.json 的 require 字段中包含 "zizaco/entrust": "5.2.x-dev" 后,如果我运行 composer install 那么它不会安装 zizaco/委托包。此外,如果我运行 composer require zizaco/entrust 5.2.x-dev,它仍然会安装最新版本的依赖包。
那么我如何防止安装我包含在 composer.json 文件的“require”字段中的最新版本的依赖包,而我只安装 zizaco/entrust 包。
这样我的 laravel 5.8 站点就不会因为故障代码或最新版本中的任何内容而因将任何软件包更新到最新版本而中断。处理这种情况非常重要,因为我们需要在 laravel 站点安装包以满足各种需求。
【问题讨论】:
-
我不会使用这个包,它已经被放弃了。我会改用spatie/permission。
-
谢谢,但我的问题是关于更新依赖项
-
运行
composer require spatie/laravel-permission应该只安装软件包而不是更新现有的。
标签: php html laravel composer-php laravel-5.8