openwrt 软件安装依赖冲突

今天在安装一个插件curl,安装失败了。报错内容如下:

root@R619AC_co-router:/tmp/tmp# opkg install curl
Installing curl (7.68.0-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/arm_cortex-a7_neon-vfpv4/base/curl_7.68.0-1_arm_cortex-a7_neon-vfpv4.ipk
Installing libmbedtls12 (2.16.4-1) to root...
Downloading http://downloads.openwrt.org/snapshots/packages/arm_cortex-a7_neon-vfpv4/base/libmbedtls12_2.16.4-1_arm_cortex-a7_neon-vfpv4.ipk
Collected errors:
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedcrypto.so.2.16.3
        But that file is already provided by package  * libmbedtls
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedcrypto.so.3
        But that file is already provided by package  * libmbedtls
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedtls.so.12
        But that file is already provided by package  * libmbedtls
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedtls.so.2.16.3
        But that file is already provided by package  * libmbedtls
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedx509.so.0
        But that file is already provided by package  * libmbedtls
 * check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedx509.so.2.16.3
        But that file is already provided by package  * libmbedtls
 * opkg_install_cmd: Cannot install package curl.

其中最重要的就一句话

check_data_file_*es: Package libmbedtls12 wants to install file /usr/lib/libmbedtls.so.2.16.3 But that file is already provided by package * libmbedtls

有一个需要安装一个依赖包libmbedtls12 但是已经存在的依赖包  libmbedtls 已经有这个文件了,查了一下版本号是2.16.3-2

openwrt 软件安装依赖冲突

而新的版本号看文件也是2.16.3。但是实际安装完了显示是2.16.4-1。

openwrt 软件安装依赖冲突

为什么是这样?我想想估计是我安装的openwrt的版本比较低,导致内置集成libmbedtls 版本,与官方软件源里不一致。而在线安装curl是是根据官方源最新的版本。

这时候,我只能卸载原来的libmbedtls 包,手工安装libmbedtls12包才可以继续安装。这样也会导致原有的依赖libmbedtls的软件无法运行,所以底包很重要