泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓Linux知识星球:1300+知识点,520+用户
请稍侯

TinyBPT 和面向 buildroot 的二进制包管理服务(2):客户端说明

Petalzu 创作于 2024/12/04

Corrector: TinyCorrect v0.2-rc2 - [tounix spaces] Author: 柴子轩 petalzu@outlook.com Date: 2024/09/27 Revisor: falcon falcon@tinylab.org Project: RISC-V Linux 内核剖析 Sponsor: PLCT Lab, ISCAS

1 前言

TinyBPT (Tiny Buildroot Packaging Tool) 是一个 buildroot 的包管理工具,主要处理 buildroot 的包依赖关系,提供包的安装、卸载等功能。

本文档主要介绍 TinyBPT 客户端的使用。

2 安装方法

如果要在 buildroot 构建的子系统中直接安装,则需要在主机下载后通过构建本地 HTTP 服务的方式提供给子系统下载。(如果在构建系统时已经配置了 HTTPS 相关服务,则可以直接使用 HTTPS 服务下载。)

默认下载为 RISC-V 64 位的版本,下载后解压到 / 目录下即可。

本地编译则需要先编译 OpenSSL,下载源码后执行如下命令:

  1. ./Configure linux64-riscv64 no-zlib no-rc2 no-idea no-des no-bf no-cast no-md2 no-mdc2 no-dh no-err no-rc5 no-camellia no-seed no-tests -static --prefix=/usr/local/openssl/riscv64 --cross-compile-prefix=riscv64-linux-gnu- -flto
  2. make -j$(nproc)
  3. make install_sw

使用 no-* 的配置选项目的是禁用多个加密算法和功能,以减少库的体积和依赖,并使用 -flto 启用链接时优化(Link Time Optimization),以提高生成代码的性能。

如果这些流程均在主机(非 riscv 机器)中完成,则需要将编译好的二进制文件,依赖文件和 CA 证书移动到嵌入式设备(riscv 机器)中。

如果是以调试为目的,可以使用 ARCH=x86_64 选项进行编译,或者使用 CMake。编译完成后,只需要将依赖文件移动到相应位置,或者在环境变量中设置 TINYBPT_DB_PATH

2.1 直接安装

  1. wget https://mirrors.lzu.edu.cn/buildroot-pkgs/riscv64/tinybpt/tinybpt-v0.1-rc1.tar.gz
  2. mkdir -p /etc/tinybpt && mkdir -p /etc/ssl/certs
  3. tar -xvf tinybpt-v0.1-rc1.tar.gz -C /

2.2 本地 Makefile 编译安装

移动到 tinybpt 目录下,执行如下命令:

  1. make ARCH=riscv64 -j$(nproc)
  1. git clone https://gitee.com/tinylab/tinybpt.git
  2. cd tinybpt
  3. wget https://curl.se/ca/cacert.pem
  4. make
  5. make install

2.3 本地 CMake 编译安装

同上,先编译 OpenSSL,然后执行如下命令:

  1. git clone https://gitee.com/tinylab/tinybpt.git tinybpt
  2. cmake -S tinybpt
  3. -B build \
  4. -G Ninja
  5. ninja -C build
  6. ninja -C tinybpt/build install

2.4 使用环境变量指定依赖和下载路径(可选)

默认情况下,TinyBPT 会将依赖和下载的文件存储在 /etc/tinybpt/var/cache/tinybpt 目录下,如果需要指定其他路径,可以使用环境变量 TINYBPT_DB_PATHTINYBPT_DOWNLOAD_PATH

  1. export TINYBPT_DB_PATH=<your_path_to>/tinybpt_db.json
  2. export TINYBPT_DOWNLOAD_PATH=<your_path_to_download>

3 使用方法

  1. # tinybpt
  2. Tiny buildroot packaging tool
  3. Usage: tinybpt <command> [options]
  4. Commands:
  5. install <package_name> Install package
  6. uninstall <package_name> [-f] Uninstall package (use -f to force uninstall)
  7. list -all/-installed List all/installed packages
  8. find <package_name> Find package
  9. Options:
  10. -h, -help
  11. Show help information
  12. -V, -version
  13. Show version information
  14. -set-mirror <url> Set mirror URL
  15. -get-mirror Show mirror URL

4 基本操作

使用 tinybpt install/uninstall/list/find <package_name> 进行包的安装、卸载、查找、列出操作。

  1. # 安装包
  2. tinybpt install <package_name>
  3. # 卸载包
  4. tinybpt uninstall <package_name>
  5. # 列出所有包
  6. tinybpt list -all
  7. # 列出已安装的包
  8. tinybpt list -installed
  9. # 查找包
  10. tinybpt find <package_name>
  11. # 设置镜像 URL
  12. tinybpt -set-mirror <url>
  13. # 获取镜像 URL
  14. tinybpt -get-mirror
  15. # 显示帮助信息
  16. tinybpt -h
  17. # 显示版本信息
  18. tinybpt -V

5 其他说明

  • 本工具仅支持 riscv64 buildroot 用户使用,其他架构的支持也将陆续开展,敬请期待!
  • 本工具使用 CA 证书为 CA certificates extracted from Mozilla。
  • 本项目使用了基于 MIT 协议的第三方库 nlohmann/jsoncpp-httplib

6 参考资料



Read Album:

Read Related:

Read Latest: