在适用于 ar71xx TP-LINK MR3020 的 OpenWRT Chaos Calmer (15.05.1) 上正确安装 cURL

在适用于 ar71xx TP-LINK MR3020 的 OpenWRT Chaos Calmer (15.05.1) 上正确安装 cURL

我安装了 cURL像这样在 OpenWRT 上,因为路由器上也没有足够的可用磁盘空间,但是当我尝试运行它时,它说:

# curl
curl: can't load library 'libmbedtls.so.9'

好的,那么只需安装 libmbedtls 即可,对吗?但它不是这个存储库我发现它存在于这个存储库,所以我尝试在 将其添加为自定义 repo /etc/opkg/customfeeds.conf,并在 中添加 mipsel_24kc 作为自定义架构/etc/opkg.conf,通过在文件末尾添加一行arch mipsel_24kc 100,希望 mipsel_24kc 与 ar71xx 兼容,但每次我运行任何 opkg 命令时,我得到的只是终端上的一堵文本墙,每行都说:

Package <package_name> version <version> has no valid architecture, ignoring.

更糟糕的是,它已经安装了所有依赖项,但仍然在等待存储库中不存在的 libmbedtls 库。

# opkg depends curl
curl depends on:
    libc
    libcurl

# opkg install libc
Package libc (0.9.33.2-1) installed in root is up to date.

# opkg install libcurl
Package libcurl (7.40.0-3) installed in root is up to date.

# curl
curl: can't load library 'libmbedtls.so.9'

另外,我无法更新此操作系统。有什么办法可以解决这个问题吗?

答案1

有两个原因导致此方法未能按预期发挥作用:

  1. mips_24kc并且mipsel_24kc不兼容架构,这就是您看到所有Package <package_name> version <version> has no valid architecture, ignoring错误的原因。您需要找到一个mips_24kc包。
  2. OpenWRT 15.05.1 确实很旧,而您在问题中链接的“快照”版本将是一个非常新的预发布版本。因此,即使其中某处会有一个mips_24kc libmbedtls软件包,但这个新版本可能无法与 OpenWRT 15.05.1 的基础系统或您已安装的 libcurl 配合使用。

由于历史原因,libmbedtls.so.9Chaos Calmer 的库文件libpolarssl_1.3.14-1_ar71xx.ipk位于根据opkg update。因此,如果您删除所有配置修改和额外的软件包提要,然后重新运行,opkg install libpolarssl它可能会起作用。但是,当您第一次安装 curl 时,opkg 应该已经自动安装了 libpolarssl - 这表明当时可能发生了其他错误,例如空间不足。

即使这可行,请注意这些旧版本的 OpenWRT 非常老旧,并且存在许多已知的安全漏洞,更不用说它们会信任旧的 TLS 证书而不信任任何较新的证书。因此,最好尝试找到一种方法来运行较新的 OpenWRT(由于不受官方支持,因此很不安全),或者找到其他硬件来使用。

相关内容