当前位置: 首页 > news >正文

OpenHarmony中默认export 添加环境变量

笔者最近遇到一个问题,需要将cpython的环境变量默认添加至OpenHarmony中,每次只能通过export来临时设置。笔者花了一点时间研究,于是将方法分享如下

文章涉及开发环境

OpenHarmony 5.1.0开发环境

分析OpenHarmony已经有的环境变量是如何添加上去的

# env
_=/bin/env
currentslot=1381256773
HOME=/
PULSE_STATE_PATH=/data/data/.pulse_dir/state
UV_THREADPOOL_SIZE=16
TMP=/data/local/mtp_tmp/
PULSE_RUNTIME_PATH=/data/data/.pulse_dir/runtime
TERM=linux
default_boot_device=fe310000.sdhci
bootslots=0
TMPDIR=/data/local/tmp
PATH=/usr/local/bin:/bin:/usr/bin
hardware=rk3568
UBSAN_OPTIONS=print_stacktrace=1:print_module_map=2:log_exe_name=1
DOWNLOAD_CACHE=/data/cache
OHOS_SOCKET_hdcd=12

image.png

通过执行env命令可以发现PULSE_STATE_PATH=/data/data/.pulse_dir/state这条环境变量很特殊,我们从这里入手。在源码中搜索代码

image.png

可以知道5.1.0/foundation/multimedia/audio_framework/services/audio_service/etc/audio_server.cfg中含有"export PULSE_STATE_PATH /data/data/.pulse_dir/state", 可以知道在audio_server中会自动设置PULSE_STATE_PATH 的环境变量

image.png

新建cfg开机自启动文件默认添加环境变量

新建python_oh_arm.cfg文件,添加笔者想添加的环境变量。然后讲文件推送到开发板/system/etc/init目录下

{"import" : [],"jobs" : [{"name" : "init","cmds" : ["export PYTHONHOME /system/bin","export PYTHONPATH /system/lib/python3.8:/system/lib/python3.8/lib-dynload","export LD_LIBRARY_PATH /system/lib/python3.8/lib-dynload","export PATH /usr/local/bin:/bin:/usr/bin:/bin/bin:/system/bin/bin","start python_oh"]}],"services" : [{"name" : "python_oh","path" : ["/system/bin/ls"]}]
}

效果

笔者添加的环境变量,已经开机默认加入系统中

image.png

如果是手动执行,笔者设置的环境变量是

export PYTHONHOME=/system/bin
export PYTHONPATH=/system/lib/python3.8:/system/lib/python3.8/lib-dynload
export LD_LIBRARY_PATH=/system/lib/python3.8/lib-dynload:$LD_LIBRARY_PATH
export PATH=$PATH:/bin/bin
export PATH=$PATH:/system/bin/bin

注意

  • 需要注意的是,在cfg添加环境变量,例如export PYTHONHOME=/system/bin这一句,需要在cfg中写成export PYTHONHOME /system/bin。不能有=,否则不生效

  • 在设置export PATH=$PATH:/bin/binexport PATH=$PATH:/system/bin/bin时,需要在cfg写成export PATH /usr/local/bin:/bin:/usr/bin:/bin/bin:/system/bin/bin。其中/usr/local/bin:/bin:/usr/bin是OpenHarmony中原有的。/bin/bin:/system/bin/bin是笔者追加的

http://www.lqws.cn/news/488233.html

相关文章:

  • 用html实现数字生命
  • 日志技术-Logback入门程序
  • Life:Internship in OnSea Day 1
  • 【nvidia-H100-ib排障实战2】:服务器 InfiniBand 网络性能问题深度分析
  • 深入理解JavaScript设计模式之迭代器模式
  • 【python实用小脚本-111】基于PyTorch的人脸口罩检测系统技术文档
  • 构建你的API防护盾 - 抵御恶意爬虫、注入与业务欺诈
  • qwen 的词编码模型中tokenid 到 高维向量是什么实现的,tokenid的排列有什么特点
  • 【Altium Designer】---- 02创建元器件符号和封装
  • 基本图算法介绍
  • Maven 之 JUnit 测试体系构建全解析
  • 淘宝直播带货API开发:弹幕抓取与商品点击热力图生成系统
  • 春秋云镜【CVE-2017-18349】fastjson wp
  • 从java到vue3:第一天
  • 支持向量机(SVM):数学引擎与工程实践深度解析——从最大间隔到核技巧的完整推导与应用
  • 【技术分享】XR技术体系浅析:VR、AR与MR的区别、联系与应用实践
  • 从 0 到 1 构建 Graph RAG 系统:本地图谱 + 通义千问落地实践
  • 【DeepSeek实战】2、DeepSeek特训:Function Calling与ReAct双引擎驱动大模型智能升级实战指南
  • Redis04
  • Solidity 入门教程(三):函数 Function 详解 —— 用对函数,写好合约
  • npm ci对比npm install
  • 榕壹云无人售货机管理系统:开源架构赋能私有化部署,打造智能零售技术解决方案
  • Angular进阶之十二:Chrome DevTools+Angular实战诊断指南
  • mfc与vs成功在xp系统所需做的修改
  • leetcode83.删除排序链表中的重复元素
  • mongoDB服务本地化部署
  • 利用栈,实现括号匹配功能
  • OVS Faucet练习(下)
  • 百胜软件胜券AI:打造智慧零售运营新范式
  • 预训练语言模型基础知识概述