【鸿蒙PC命令行适配】基于OHOS SDK直接构建xz命令集(xz、xzgrep、xzdiff),完善tar.xz解压能力

1. 背景

近日,我在访问rust-lang.org时注意到,现已推出了适用于OpenHarmony(OHOS)平台的Rust版本。出于兴趣与探索目的,我决定下载并尝试使用这一版本。

在成功获取到rust-beta-aarch64-unknown-linux-ohos.tar.xz文件后,却发现无法直接通过鸿蒙操作系统上的tar xJf命令来解压缩该文件,提示系统中缺失xz工具。为了解决问题并增强鸿蒙PC环境下对.tar.xz格式文件的支持能力,我着手进行了xz命令及相关组件向该平台的移植工作。本文旨在分享此次移植过程中的具体步骤与经验总结,希望能够为其他开发者提供参考和帮助。

2. 编译环境准备

2.1 下载OHOS SDK

要编译鸿蒙pc版本的xz命令,需要先获取OHOS SDK,可以到https://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist 页下载。

2.2 配置OHOS SDK

下载sdk之后,解压得到ohos-sdk,然后再解压ohos-sdk/linux/native和ohos-sdk/linux/toolchains。

之后配置环境变量

exportOHOS_SDK=~/ohos-sdk/linuxexportPATH=${OHOS_SDK}/native/llvm/bin:${OHOS_SDK}/native/build-tools/cmake/bin:$PATH

3. 编译xz命令集

3.1 下载xz源码

xz源码的原始仓库维护在github上,我已经mirror到AtomGit平台,地址是https://atomgit.com/oh-tpc/xz 。

将其下载到本地:

gitclone https://atomgit.com/oh-tpc/xz.git -b v5.8

3.2 生成Makefile

xz支持2种编译框架:automake+configure+makecmake+make。这里,我们以cmake为例,进行编译。

先生成Makefile,命令如下:

mkdirbuildcdbuild cmake..

3.3 make编译

cmake成功之后,会生成Makefile,执行make命令即可触发编译。

如下图所示,编译成功后得鸿蒙PC(aarch64)架构的xz命令。

4. 测试运行

4.1 binary-sign-tool自签名

将xz工具集拷贝到鸿蒙PC之后,需要先对其进行自签名,否则无权限运行。命令如下:

binary-sign-tool sign -inFile xz -outFile xz -selfSign "1"

如上图所示,自签名之后,xz命令就可以正常执行了。

4.2 测试解压tar.xz文件

接下来,需要将xz命令所在目录添加到PATH环境,以便于让tar命令能找到并调用它来进行xz格式的解压缩。命令如下所示:

export PATH=~/bin:$PATH

如上图所示,tar xJf命令成功解压了tar.xz格式的压缩包,测试运行成功。

5. 总结

本次向OpenHarmony PC平台移植xz命令的实践,核心解决了该平台缺失.tar.xz格式解压能力的痛点。整个过程的核心难点在于适配鸿蒙专属的编译环境与权限管理机制——通过精准配置OHOS SDK环境变量、选用适配性更强的cmake编译框架,有效规避了跨平台编译中的工具链兼容问题;而binary-sign-tool自签名步骤的实施,则精准破解了鸿蒙系统对第三方二进制文件的权限限制,这也是鸿蒙平台移植工具类软件需重点关注的核心要点。

此次实践也让我们看到,鸿蒙生态的完善需要开发者通过实际需求驱动的技术探索不断补全短板,而这类常用命令行工具的移植实践,正是构建更具包容性的鸿蒙生态的重要基石。

最后,欢迎加入开源鸿蒙PC社区:https://harmonypc.csdn.net/ 一起参与鸿蒙PC的生态建设。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1123633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员必学!大模型推理加速神器KV Cache原理与实战代码解析

在大型语言模型(LLM)的推理过程中,KV Cache 是一项关键技术,它通过缓存中间计算结果显著提升了模型的运行效率。本文将深入解析 KV Cache 的工作原理、实现方式,并通过代码示例展示其在实际应用中的效果。 01 为什么需…

【MCP量子计算权威解读】:从基础理论到考点落地的完整知识图谱

第一章:MCP量子计算考点解析量子计算作为下一代计算范式的代表,已成为MCP(Microsoft Certified Professional)认证中高阶技术考察的重点领域。掌握其核心概念与实现机制,对于通过相关认证考试至关重要。量子比特基础 传…

RPA机器人流程自动化结合图像识别的典型场景

RPA机器人流程自动化结合图像识别的典型场景 引言:当RPA遇见视觉能力——从“盲操作”到“看得见”的智能自动化 传统的RPA(Robotic Process Automation)机器人流程自动化擅长处理结构化数据和固定UI路径的操作,如自动填写表单、抓…

告别手动查询:AI自动完成ASCII编码工作

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个智能ASCII工作助手,功能包括:1. 自然语言查询ASCII码(如输入空格键的ASCII)2. 批量文本编码/解码 3. 常见编码问题自动修复…

机器人视觉大脑:赋予服务机器人认知能力

机器人视觉大脑:赋予服务机器人认知能力 引言:从“看见”到“理解”的跨越 在智能服务机器人的发展进程中,视觉系统早已超越了简单的图像采集功能。现代机器人不再满足于“看到”,而是追求“看懂”——这正是机器人视觉大脑的核心…

【企业级AI运维转型必看】:MCP AI Copilot 3大关键部署技巧

第一章:MCP AI Copilot 实操概述MCP AI Copilot 是一款面向企业级 DevOps 场景的智能运维助手,集成自然语言理解与自动化执行能力,支持在 Kubernetes、CI/CD 流程及日志分析等场景中实现高效交互。用户可通过自然语言指令触发系统操作&#x…

Hunyuan-MT-7B-WEBUI支持HTML标签保留吗?格式化文本翻译测试

Hunyuan-MT-7B-WEBUI 支持 HTML 标签保留吗?格式化文本翻译实测解析 在内容全球化日益深入的今天,网页、CMS系统、邮件模板和教育平台中的多语言需求早已不再是简单的“把中文翻成英文”。真实场景下的待翻译文本往往嵌套着丰富的格式信息——加粗强调、…

1小时打造定制版POSTWOMAN:AI原型开发实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个API测试工具原型,核心功能:1) 支持Swagger/OpenAPI导入 2) 内置Mock服务器可即时生成模拟响应 3) 团队协作注释功能。要求使用轻量级架构&…

1小时打造SSL健康检查工具原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个极简SSL检查工具原型,核心功能:1) 输入域名即显示证书基本信息 2) 重大风险红色预警 3) 一键复制修复命令 4) 响应式设计。使用FastAPI提供REST接口…

万物识别可解释性:快速可视化模型注意力机制

万物识别可解释性:快速可视化模型注意力机制 作为一名AI产品经理,我经常需要向非技术背景的客户解释:为什么我们的识别模型会做出特定决策?比如当模型判断一张图片是"波斯猫"而非"布偶猫"时,客户总…

Hunyuan-MT-7B-WEBUI多语言SEO内容批量生成

Hunyuan-MT-7B-WEBUI:多语言SEO内容批量生成的工程化实践 在跨境电商、全球化内容运营和数字营销日益依赖自动化生产的今天,如何高效生成高质量的多语言SEO内容,已成为企业提升国际竞争力的关键命题。传统依赖人工翻译或商业API的方式&#…

Java日志框架冲突:小白也能懂的解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向Java新手的教学项目,逐步解释:1) 什么是LoggerFactory 2) Logback的作用 3) 类路径冲突的概念 4) 最简单的解决方案(如从pom.xml中…

SPWM零基础入门:用快马5分钟实现第一个调制波形

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个极简的SPWM教学演示程序,适合完全初学者。要求:1.使用最简单的Python代码 2.只实现单相SPWM 3.包含逐步的代码解释 4.可视化显示三角载波、正弦调制…

UFS Explorer新手入门指南:从安装到使用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 设计一个新手友好的入门指南应用,帮助用户快速上手UFS Explorer。功能包括:1. 安装步骤详解;2. 基本操作演示;3. 常见问题解答&…

收藏!爆火的AI Agent究竟是啥?一篇讲透+实战案例(小白/程序员必看)

一、前言:AI Agent凭啥成为科技圈顶流? 要说近年科技圈最火的“新晋网红”,AI Agent(人工智能代理)绝对稳居前列!不少程序员和技术爱好者都扎堆研究,甚至上手开发专属智能体。笔者近期也深度沉浸…

AI如何优化10000GDCN在线测速工具的开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个10000GDCN在线测速工具,要求使用AI自动生成前端界面和后端逻辑。前端应包括测速按钮、实时速度显示图表和历史记录功能。后端需要实现网络请求测速算法&#x…

大学实验室准入:识别授权人员与防护装备穿戴

大学实验室准入:识别授权人员与防护装备穿戴 引言:智能视觉在实验室安全管理中的实践需求 高校实验室是科研创新的重要阵地,但同时也伴随着较高的安全风险。近年来,因未经授权人员进入或防护装备未规范穿戴引发的安全事故屡见不鲜…

MCP云环境兼容性测试实战(覆盖95%企业级应用场景)

第一章:MCP云环境兼容性测试实战概述在多云与混合云架构日益普及的背景下,MCP(Multi-Cloud Platform)云环境的兼容性测试成为保障系统稳定运行的关键环节。兼容性测试不仅涉及不同云服务商之间的基础设施适配,还需验证…

对比测试:提示词网站如何将工作效率提升300%

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个效率对比工具,能够:1. 记录用户使用提示词前后的任务完成时间;2. 自动生成效率对比报告;3. 提供优化建议;4. 可…

电路板元件识别:维修检测中的快速定位工具

电路板元件识别:维修检测中的快速定位工具 引言:从“万物识别”到电子维修的智能化跃迁 在智能硬件快速迭代的今天,电子设备的故障排查与维修效率直接影响产品生命周期和用户体验。传统电路板维修依赖工程师的经验积累,通过肉眼观…