【调试笔记-20240603-Linux-在 OpenWrt-23.05 上运行 ipkg-build 生成. ipk 安装包】

调试笔记-系列文章目录

调试笔记-20240603-Linux-在 OpenWrt-23.05 上运行 ipkg-build 生成. ipk 安装包



前言

本文记录在 OpenWrt-23.05 发行版本上使用 ipkg-build 脚本生成 .ipk 安装包的步骤。

实验使用的电脑如下:

CPU:

Intel Core i5 8265U

操作系统:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

一、调试环境


操作系统:Windows 10 专业版

操作系统详细信息如下:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

调试环境

  • Windows 系统已安装 QEMU 并成功运行 OpenWrt 发行版

参考【安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT


调试目标

在 OpenWrt-23.05 发行版上不安装 SDK ,通过脚本生成 .ipk 安装包。


二、调试步骤

获取 ipkg-build 脚本

1、下载 OpenWrt-23.05 的 SDK

2、解压后在 scripts/ 目录中有 ipkg-build 脚本

3、复制 ipkg-build 脚本到 OpenWrt-23.05 的运行环境中

准备安装包目录

1、在 /tmp 目录中创建测试用的安装包目录 /tmp/foo ,执行以下命令

mkdir -p /tmp/foo/bin
cp foo /tmp/foo/bin
mkdir -p /tmp/foo/CONTROL
cat >/tmp/foo/CONTROL/control <<EOF
Package: foo
Version: 0.1
Architecture: mipsel
Maintainer: foo bar <foo@bar.com>
Section: base
Priority: optional
Description: This package provides foo, which does nothing.
Source: http://foo.bar/foo
EOF

2、尝试创建目标 .ipk 安装包

./ipkg-build -o root -g root /tmp/foo /tmp

显示出错

在这里插入图片描述

调试脚本

1、去掉 -o 和 -g 参数后继续执行

./ipkg-build /tmp/foo /tmp

显示出错信息:

./ipkg-build: line 128: realpath: not found

2、查找并安装 realpath 命令的安装包

opkg update
opkg install coreutils-realpath

3、继续执行命令

./ipkg-build /tmp/foo /tmp

显示出错信息:

/bin/tar: unrecognized option: format=gnu

4、查找并安装全功能版本的 tar 命令的安装包

opkg update
opkg install tar

5、继续执行命令

./ipkg-build /tmp/foo /tmp

显示出错信息:

./ipkg-build: line 184: stat: not found

6、查找并安装全功能版本的 stat 命令的安装包

opkg update
opkg install coreutils-stat

7、继续执行命令

./ipkg-build /tmp/foo /tmp

显示成功

在这里插入图片描述


三、应用场景

在 OpenWrt 运行环境中打包配置安装包


四、参考资料

1、[Howto] build your own iPKG packages


总结

本文记录在 OpenWrt-23.05 发行版本上使用 ipkg-build 脚本生成 .ipk 安装包的步骤,并给出了所遇到问题的解决方法。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 16:18:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 16:18:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 16:18:07       82 阅读
  4. Python语言-面向对象

    2024-06-09 16:18:07       91 阅读

热门阅读

  1. Docker面试整理-什么是Docker Hub?

    2024-06-09 16:18:07       27 阅读
  2. 每天学习一个Windows命令或Linux命令——seq

    2024-06-09 16:18:07       28 阅读
  3. LLVM Cpu0 新后端7 第二部分 窥孔优化

    2024-06-09 16:18:07       34 阅读
  4. zookeeper集群安装

    2024-06-09 16:18:07       32 阅读
  5. Github 2024-06-09 php开源项目日报Top10

    2024-06-09 16:18:07       32 阅读
  6. C++做题

    C++做题

    2024-06-09 16:18:07      25 阅读
  7. axios的用法

    2024-06-09 16:18:07       33 阅读
  8. 大学编译器课程 编译原理与实践

    2024-06-09 16:18:07       28 阅读