如何把openwrt的ipk软件包安装到ubuntu上

这篇具有很好参考价值的文章主要介绍了如何把openwrt的ipk软件包安装到ubuntu上。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:都是arm64的架构的软件包。

下载openwrt的ipk软件包

1. 从https://pkgs.org/ 查找下载软件包:

本文以swconfig软件包为例,下载swconfig和相关的依赖软件包:

swconfig_12_aarch64_cortex-a72.ipk

libuci20130104_2021-10-22-f84f49f0-6_aarch64_cortex-a72.ipk

libubox20220515_2022-05-15-d2223ef9-1_aarch64_cortex-a72.ipk

libnl-tiny1_2021-11-21-8e0555fb-1_aarch64_cortex-a72.ipk

uci_2021-10-22-f84f49f0-6_aarch64_cortex-a72.ipk (可选,用于测试)

2. 解压回档文件:

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库 如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

如上图所示把ipk的软件包解压,提出出data.tar, 然后把所有的data.tar解压到一个tmp_rootfs的目录夹,这个目录夹就是我们最后要复制到ubuntu系统中的文件结构。

运行问题处理

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

上传程序之后出现程序无法运行的情况,如上图所示。

  1. 修改libc.so格式问题:

目前大多是ubuntu的发行版用的是glibc, /lib/aarch64-linux-gnu/libc.so 为一个ASCII text的,里面包含了真正的库文件路径和名称:

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

使用strace分析ldd的装在过程:strace -f -s 1024 ldd itgw/bin/swconfig,可以看到如下查找libc.so的过程

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

再查看系统当前的libc的情况:

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

把ubuntu系统中的/lib/aarch64-linux-gnu/libc-2.31.so复制到sw-rootfs的安装包里,和执行程序放在一个位置,之后执行swconfgi时,只要在swconfgi坐在的目录去执行程序,自动的就会使用当前路径下的libc.so,而不会去使用根目录下的/lib/aarch64-linux-gnu/libc.so这个ASCII text。

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

如何把openwrt的ipk软件包安装到ubuntu上,ubuntu,数据库

添加运行时的环境变量脚本,指定对应的lib查找路径:

  1. 修改ld版本问题:

cp -rf /lib/ld-linux-aarch64.so.1 /lib/ld-musl-aarch64.so.1复制一个musl名称的文件名。

制作安装打包脚本

  1. 安装脚本:
    root@easyHome:/home/forlinx/test/sw-config# cat sw-install.sh
    #!/bin/bash
    
    
    basepath=$(cd `dirname $0`; pwd)
    
    if [ "$1" != "-f" ]; then
            echo "$basepath"
            old_md5=`md5sum /xxx/switch/swconfig | awk '{printf $1}'`
            new_md5=`md5sum "$basepath"/xxx/switch/swconfig | awk '{printf $1}'`
            if [ "$old_md5" == "$new_md5" ];then
                    echo "same file, skip the install..."
                    exit 1
            fi
    
    else
            echo "force to update"
    fi
    
    echo "start to install swconfig..."
    echo "$basepath...."
    cd $basepath
    cp -rf * /
    rm -r /sw-install.sh
    
    echo "create the openwrt's running EVN..."
    cp -rf /lib/ld-linux-aarch64.so.1 /lib/ld-musl-aarch64.so.1
    cp /lib/aarch64-linux-gnu/libc.so.6 /itgw/switch/usr/local/lib/libc.so
    ldconfig
    ldconfig
    echo "enable inspur-switch service..."
    systemctl enable inspur-switch

2. 打包文件结构:文章来源地址https://www.toymoban.com/news/detail-823246.html

root@easyHome:/home/forlinx/test/sw-config# tree
.
├── etc
│   ├── netplan
│   │   └── 00-netcfg.yaml
│   └── uci-defaults
├── xxx
│   └── switch
│       ├── sw-config.sh
│       ├── sw-env.sh
│       ├── swconfig
│       ├── uci
│       └── usr
│           └── local
│               └── lib
│                   ├── libc.so
│                   ├── libnl-tiny.so
│                   ├── libubox.so -> libubox.so.20220515
│                   ├── libubox.so.20220515
│                   └── libuci.so
├── sw-install.sh
└── usr
    └── lib
        ├── config
        │   └── uci.sh
        ├── network
        │   └── switch.sh
        └── systemd
            └── system
                └── inspur-switch.service

14 directories, 14 files

到了这里,关于如何把openwrt的ipk软件包安装到ubuntu上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu 有 1 个软件包没有被完全安装或卸载

    下面是我安装 sqlite3 出现的问题: 根据以上提供的信息,看起来系统试图安装 sqlite3,但遇到了一些问题。问题可能是软件包没有完全安装成功。可以尝试以下几个步骤来解决这个问题: 1.重新运行安装命令:有时候,网络连接或其他因素可能导致软件包下载不完整或解压缩

    2024年02月14日
    浏览(56)
  • 如何向Docker镜像安装rpm软件包

    我们在构建镜像容器的时候,容器需要使用的工具,可能在基础镜像中并没有,这时候就需要我们人工的向Docker镜像中补充这些软件工具,这里对这些应用场景进行了实践梳理。 例如,我们在性能测试的时候,往往有很多问题需要JPS、JSTACK等工具帮助分析,如果所有应用都是

    2024年02月06日
    浏览(53)
  • Mac ❀ 如何在MacOS上安装pip软件包

    以 requests 工具包为例:

    2024年01月18日
    浏览(60)
  • Ubuntu18.04/20.04/22.04的Apollo8.0软件包安装(免编译)

    本文主要介绍在如何使用软件包(即 deb 包)的方式来安装 Apollo,相对于源码方式安装,软件包安装方式不需要编译,更加快捷。但是对环境的支持比较单一,如果在自定义环境内安装,请移步源码安装方式 1. 安装 Ubuntu Linux 安装 Ubuntu 18.04+ 的步骤,参见 官方安装指南。 完

    2024年02月05日
    浏览(65)
  • 在linux下如何使用yum命令查看安装了哪些软件包

    Linux 系统下 yum 命令查看安装了哪些软件包: 1. 使用 yum 查找软件包 命令: 2. 列出所有可安装的软件包 命令: 3. 列出所有可更新的软件包 命令: 4. 列出所有已安装的软件包 命令: 5. 列出所有已安装但不在 Yum Repository 内的软件包 命令: 6. 使用 yum 获取软件包信息 命令:

    2024年02月02日
    浏览(84)
  • ubuntu20.04安装ROS出现E: 无法定位软件包 ros-noetic-desktop-full

    只是对自己解决问题的过程进行记录。 按照这篇文章进行操作。 ROS安装与报错的解决办法_e: 无法定位软件包 ros-noetic-desktop-full_几度春风里的博客-CSDN博客完成添加密钥步骤后: 进行更新: 然后安装对应版本的ROS 就成功解决了。

    2024年02月08日
    浏览(66)
  • 一篇文章打好SQL基础,熟悉数据库的基础操作和方法,以及安装MySQL软件包和Python操作MySQL基础使用

    SQL的全称:Structured Query Language,结构化查询语言,用于 访问和处理数据库的标准计算机语言 。 SQL语言1974年有Boyce和Chamberlin提出的,并且首先在IBM公司研制的关系数据库系统SystemR上实现。 经过多年发展,SQL已经成为数据库领域同意的数据操作标准语言,可以说几乎市面上所

    2024年02月08日
    浏览(81)
  • Ubuntu 软件包管理

    Ubuntu 软件包管理主要用到了 apt 和 dpkg 两个工具。我们用的最多的就是用他们提供的命令来安装和卸载软件,但他们是如何工作的,我们也许并不十分清楚,这几天,我专门梳理了一下,以下是我整理出来的一些资料,供大家参考。 1. /var/lib/apt/lists/ 软件包索引文件, apt u

    2024年02月02日
    浏览(48)
  • 浅谈Ubuntu中的软件包

    还记得大学第一次接触Ubuntu和Linux的时候,觉得用apt安装想要的软件非常方便。但是有时候出现了问题,各种报错,自己又不懂原理,就会非常抓狂。现在稍微理解一点了,故以较为容易理解的方式记录在这里,方便他人。 Linux里的软件就是一些可执行文件。就像是你自己写

    2024年02月03日
    浏览(43)
  • Ubuntu下软件包的清理与删除

    在linux系统中,有时候我们需要删除不需要的软件包,或者删除一个安装出错的软件包,可以使用以下命令操作 说明: Ubuntu是基于 Debian 的Linux系统,而Debian系统的软件是使用apt和dpkg进行管理,dpkg是\\\"Debian Packager\\\"的简写,是一个底层的软件包管理工具,与之相关apt-get工具可以

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包