加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.028zz.cn/)- 科技、云开发、数据分析、内容创作、业务安全!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

鸿蒙开发环境Unix调试失败?90%卡在这3个隐蔽配置

发布时间:2026-11-03 08:26:12 所属栏目:Unix 来源:DaWei
导读:  “鸿蒙Unix调试失败”?我原以为是DevEco Studio版本兼容问题,结果扒日志发现是ssh配置里那行StrictHostKeyChecking yes——就这七个字母,卡了我们三轮回归。  去年8月上线前那个致命问题,就是它。凌晨两点,张工在测

  “鸿蒙Unix调试失败”?我原以为是DevEco Studio版本兼容问题,结果扒日志发现是ssh配置里那行StrictHostKeyChecking yes——就这七个字母,卡了我们三轮回归。


  去年8月上线前那个致命问题,就是它。凌晨两点,张工在测试机上跑通了,李婷换台Mac连上去就挂;我拿自己那台带SecureCRT的老本子试,弹窗报错“host key verification failed”,再点重试,直接断联。白板上的数字擦了一半,底下还剩个“2048”——那是上次配SSH密钥时写的RSA位数,现在看像句遗言。


  第一个坑:/etc/ssh/sshd_config里PermitRootLogin被设成no,但咱们dev环境压根没开root用户,而是用harmonyos用户跑hdc server——谁改的?没人认。上周问运维,王磊头都没抬,说“应该是上个迭代CI脚本自动注入的”,然后继续敲键盘。他键盘上有个键按下去不回弹,F12,每次按都得用手戳回来。


  第二个坑:hdc进程启动时默认走的是~/.hdc/hdc.conf,可你猜怎么着?Mac和Linux下这个路径权限不一样。Linux下chmod 700 ~/.hdc,Mac下必须755——不是644,不是755带exec,就非得755,差一位都不行。我查到这儿的时候,外卖凉透了,汤全浮在表面,像层油膜。


  第三个坑最绝:/usr/local/bin/hdc软链接指向/usr/lib/hdc,而/usr/lib/hdc实际是个wrapper脚本,里头调用了/usr/libexec/hdc-daemon——但它硬编码了LD_LIBRARY_PATH=/usr/lib/hdc/lib,而我们打的包把lib放到了/usr/lib/hdc/lib64下。对,就差个64。不是符号链接错了,是硬编码漏改了。张工当时蹲在工位角落,对着终端反复cat wrapper,嘴里念“-D_GNU_SOURCE -fPIC -std=gnu99”,其实根本没在看编译参数,是在等log里那行“failed to load libhdc_core.so”。会议室又被占了,门缝底下透出PPT翻页的激光红点。


  我原以为只要统一用arm64-v8a ABI重打一遍就能过,结果提单回退三次,第三次才有人翻出build.gradle里那个abiFilters=['arm64-v8a']下面藏着一行ndk { abiFilters += ['armeabi-v7a'] }——注释掉了,但还在。谁注释的?git blame到李婷,她说“我记得是你们测完说要兼容老平板,我就加了”,我查用例,第37号用例明确写了“仅验证arm64-v8a平台”,可它旁边手写补了一句“含v7a兜底”,字迹潦草得像刚从梦里抄的。用例管理工具一直在转圈,转了三分钟才加载出这行备注。


  优胜劣汰?没错。真卡在这仨地方的人,要么早提单滚去修了,要么半夜重装系统重新配hdc,剩下这批——留下的全是凭经验绕过去的,靠的是“我见过这报错”“上次删了这行就好使”,不是文档,是肌肉记忆。李婷桌上摆着三台手机,一台贴着温感纸,一台插着OTG线,第三台屏幕朝下压着一张手写流程图,边角卷了。她没跟我说话,光点头,点头时睫毛一颤一颤,跟终端里那个不断retry的ping一样。


文章配图,仅供参考

  冷眼看着,其实挺没意思。开发说“我们本地好好的”,产品说“先灰度再说”,测试组长开会讲“要抓高频路径”,结果最后阻塞发布的是一行ssh配置、一个目录权限、一个路径拼写。我们复现偶现bug,十次里有七次靠清缓存、八次靠杀hdc daemon、九次靠重启macOS的launchd服务——但没人写进用例。我那份没人看的用例里第14条写着“验证hdc多实例共存场景”,执行步骤写了四步,预期结果只写了“应成功”,没写成功指什么,是log不报错?还是hdc list能返回设备?还是debugger能attach?我自己都不记得了。


  后来我把这仨配置做成pre-commit hook塞进团队Git模板,张工拉了分支没merge,说“影响本地开发流速”。王磊倒是在群里回了个“+1”,然后转发了个表情包:一只狗在敲键盘,爪子底下踩着三个齿轮,齿轮转着转着卡住了。我没回。用例管理工具又开始转圈,这次转了四分半。


  所以现在我让新人第一件事不是跑hello world,是先手动删掉sshd_config里那行PermitRootLogin,再进hdc源码目录make clean,然后cd /usr/lib/hdc && ls -l | grep lib64——对,就盯这个64。至于那个755权限……你得自己试,试两次,一次755,一次700,别信文档,信你自己看见的ls -ld输出。李婷说她现在开机必先打开终端输hdc kill,输完才敢碰IDE——不是因为怕,是手指形成条件反射了。谁桌上摆着三台手机,就说明谁手里还攥着三套不可信的验证路径。


  下周要不要试试把LD_LIBRARY_PATH硬编码那段替换成$(dirname $(readlink -f $0))/../lib64?我还没试。怕改了之后hdc list显示设备名变中文,更难定位。先让李婷跑两轮边界用例看看,她那台Mac风扇声特别大,转起来像直升机起飞,一响我就知道她正连真机调试。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!