详细介绍:【Kylin V10】Ambari3.0.0 安装 Unexpected error Ambari repo file path not set for current OS 报错解决

news/2025/11/12 14:35:36/文章来源:https://www.cnblogs.com/yangykaifa/p/19213957

在这里插入图片描述
在这里插入图片描述
我们计划近期上线kylin 版本的 Ambari+Bigtop。尽情期待!

也可以看这里 https://doc.janettr.com/install/manual/

一、先看结论

通过在代码中增加对 Kylin V10 的识别逻辑,
Ambari 已能正确识别系统为 RedHat 家族,并顺利执行 ambari-server setup

验证输出如下:

family = redhat
is_redhat_family = True

执行结果:

改造成功图

二、问题现象

在 Kylin V10 环境执行 Ambari 初始化命令时:

ambari-server setup --java-home /usr/jdk64/jdk17 --stack-java-home /usr/jdk64/jdk1.8

屏幕输出如下:

image-20250929160542690

Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? n
ERROR: Unexpected error Ambari repo file path not set for current OS.
ERROR: Exiting with exit code 1.
REASON: Failed to create user. Exiting.
expect: spawn id exp5 not open
while executing
"expect "Enter advanced database configuration""
Authorized users only. All activities may be monitored and reported.

报错说明
Ambari 无法识别当前系统的 repo 管理器类型(yum/apt/zypper),
因此无法定位 ambari.repo 的路径,导致安装初始化中断。

三、源码追踪:异常触发位置

查看堆栈日志与源码,可发现错误来自:

image-20251014173322727

关键函数如下:

def get_ambari_repo_file_full_name():
if OSCheck.is_ubuntu_family():
ambari_repo_file = "/etc/apt/sources.list.d/ambari.list"
elif OSCheck.is_redhat_family():
ambari_repo_file = "/etc/yum.repos.d/ambari.repo"
elif OSCheck.is_suse_family():
ambari_repo_file = "/etc/zypp/repos.d/ambari.repo"
elif OSCheck.is_windows_family():
ambari_repo_file = os.path.join(
os.environ[ChocolateyConsts.CHOCOLATEY_INSTALL_VAR_NAME],
ChocolateyConsts.CHOCOLATEY_CONFIG_DIR,
ChocolateyConsts.CHOCOLATEY_CONFIG_FILENAME,
)
else:
raise Exception("Ambari repo file path not set for current OS.")
return ambari_repo_file

由此可见,当 is_redhat_family() 返回 False 时,Ambari 就会直接抛出此异常。

四、根因剖析:OSCheck 未识别 Kylin 系统

Ambari 的 OSCheck 模块用于判断系统属于哪个发行版家族:

  • 仅识别 redhat、centos、rhel、ubuntu、suse、debian 等主流;
  • Kylin V10(中科麒麟)虽然基于 RHEL,但其 /etc/os-release 中标识为:

/etc/os-release(Kylin V10)

NAME="Kylin Linux Advanced Server"
VERSION="V10 (Lance)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"

因此,Ambari 的 get_os_family() 返回值为 unknown
从而导致 repo 路径无法确定,抛出异常。

五、修复思路:让 Ambari 识别 Kylin 属于 RedHat 家族

温馨提示
由于改造的地方较多,需要重新编译生效,纯改python不会生效,请继续阅读 not set for current OS 其他章节,跟着步骤解决 戳我查看

在这里插入图片描述

六、验证与改造结果

输出结果如下:

dist = ('kylin', 'V10', 'Halberd')
type = kylin
family = redhat
is_redhat_family = True

改造后输出结果图

此时 ambari-server setup 已可顺利执行,
系统被识别为 RedHat 系列,Ambari 初始化阶段恢复正常。

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

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

相关文章

python异步协程

async/await 和 asyncio Python 引入了 async/await 语法来支持异步编程。当我们在函数定义前加上 async 关键字时,这个函数就变成了一个"协程"(coroutine)。而 await 关键字则用于等待一个协程完成。 im…

设计QQ,网络协议如何设计

以上仅供参考,如有疑问,留言联系

LuatOS MCU新手指南:核心功能测试与代码示例速递

MCU开发初学者看过来!本文聚焦LuatOS的MCU核心库,深入演示时钟频率获取、唯一ID读取、高精度计时、IO复用配置等核心功能测试方法,并配以实用代码示例,助力开发者迅速掌握芯片级开发技巧,快速踏上开发之路。 一、…

避开 Playwright 常见坑,让你的 UI 测试跑得又快又稳

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集本文适合正在使用或准备使用 Playwright 做自动化测试的朋友,帮助你避开踩坑,提高测试效率。 近年来,Playwright 作为一款跨浏览器、跨平…

实战干货:Apache DolphinScheduler 参数使用与优化总结

本文基于海豚调度3.1.9版本将系统梳理 DolphinScheduler 中各类参数的使用方法,涵盖内置参数、衍生函数、日期计算、全局变量设置以及跨任务参数传递等核心场景,助你彻底掌握参数使用的“正确姿势”。在使用 Dolphin…

代码随想录Day8_字符串

代码随想录Day8_字符串541. 反转字符串 II - 力扣(LeetCode)class Solution { public:string reverseStr(string s, int k) {int n = size(s);for(int i=0;i<n;i+=2*k){int left=i;int right=min(i+k-1,n-1);whil…

实用指南:Rust Slint实现列表式消息提示(Notification Dialog)源码分享

实用指南:Rust Slint实现列表式消息提示(Notification Dialog)源码分享pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family…

软件工程团队作业2

软件工程团队作业2 《需求规格说明书》这个作业属于哪个课程 计科23级12班这个作业要求在哪里 团队作业2-《需求规格说明书》 - 作业 - 计科23级12班 - 班级博客 - 博客园这个作业的目标 描述要做的系统,熟悉git协作方…

逆向基础--数据传输指令xlat push pop lea-lds-les (11)

逆向基础--数据传输指令xlat push pop lea-lds-les (11)一. xlat 换码指令作用:将BX和AL的值相加作为内存地址,从该地址取一个字节,然后把这个字节的值赋给AL。xlat 不需要操作数,直接输入。如mov ax,bx是二个操作…

RED 状态

2. RED 状态还能修复吗? 答案是:大多数情况下可以修复,但取决于根本原因。可修复的情况:节点临时下线后重新启动。磁盘空间清理后。分片分配被禁用后重新启用。主分片损坏,但存在一个完好的副本分片(此时该副本分…

EMS4100N芯祥科技USB3.1高速双向模拟开关芯片资料,可pin对pin替代ASW3410

EMS4100N和ASW3410都是适用USB Type-C应用的二通道差分2:1/1:2 USB3.1高速双向模拟开关芯片。EMS4100N可pin对pin替代ASW3410,支持USB3.1 Gen1 Gen2数据速率,具有高带宽、低串扰、宽供电电压范围优点。EMS4100N芯片内…

Chromium扩展策略绕过漏洞CVE-2025-12436安全分析

微软安全响应中心披露Chromium扩展策略绕过漏洞CVE-2025-12436,基于Chromium的Microsoft Edge浏览器已通过更新修复该漏洞,最新版本142.0.3595.53可有效防护此安全风险。执行摘要 该CVE由Chrome分配。基于Chromium的…

让AI替你写用例!Dify+RAG工作流,一键生成覆盖率达90%的测试方案

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 摘要:测试用例编写是软件开发中至关重要但极其繁琐的环节。它要求对需求有深刻理解,并具备严密的逻辑思维,以确保覆盖率。传统人工编写方…

2025年网络攻防领域常用工具、软件及其应用场景

2025 年网络攻防领域常用工具、软件及其应用场景调研报告 引言 2025 年,网络攻防领域正经历前所未有的技术变革与威胁升级。生成式 AI 与代理 AI 的爆发式发展,推动行业进入“以 AI 对抗 AI”的新阶段,传统边界防护…

NSIS启动前检测字体缺失,静默安装字体

!include "WinMessages.nsh" ; 要求管理员权限 RequestExecutionLevel admin!macro InstallSingleFont FILE_NAME DISPLAY_NAME; 生成唯一标签!define UNIQUE_FONT_DONE "font_done_${__LINE__}"R…

github action 个人项目实践

本文公众号 DevOps 和 Jenkins 作为一名开发,虽然也没有经常听到 Devops (研发和运维一体化)这个概念,但日常工作中已经无处不在地用着 DevOps 工具。自研也好,基于开源项目改造也好,互联网公司基本都会有自已的…

2025年脱硫除臭菌实力厂家权威推荐榜单:微生物除臭剂/硝化细菌/氨氮去除菌源头厂家精选

在环保要求日益严格的今天,高效的脱硫除臭菌已成为治理工业废水、净化河湖环境的关键 在环保治理需求持续增长的背景下,2025年脱硫除臭菌市场正迎来新一轮技术升级与产业调整。优质的脱硫除臭菌产品能有效分解硫化氢…

图库函数集

View Post图库函数集1、从图库获取视频和图片,返回uri合集点击查看代码private selectMedia(mediaType: string = "image"): Promise<string> {const photoSelectOptions = new photoAccessHelper.Ph…

国产水质检测仪厂家推荐:采购COD检测仪/总氮/总磷/余氯检测仪的注意事项

在当今环境保护和水资源管理日益重要的背景下,水质检测仪作为监测水质状况的关键工具,其重要性不言而喻。无论是工业废水处理、市政污水处理,还是饮用水安全保障,准确、可靠的水质检测数据都是决策和行动的基础。国…

2025年1.5吨蒸汽发生器源头厂家权威推荐榜单:优质蒸汽发生器/商用蒸汽发生器/暖特加蒸汽发生器源头厂家精选

在工业领域节能环保需求持续增长的推动下,一台高性能的1.5吨蒸汽发生器已成为企业平衡生产效率与运营成本的关键装备。 本文将基于技术实力、生产能力、产品质量、市场表现及服务体系等多维度核心指标,为您呈现2025年…