样式修改

This commit is contained in:
robin
2026-02-14 23:23:35 +08:00
parent eafac7a204
commit dd396d31b5
8 changed files with 84 additions and 21 deletions

View File

@@ -146,6 +146,57 @@ func (this *BaseInstaller) LookupLatestInstaller(filePrefix string) (string, err
return result, nil
}
// LookupLatestInstallerForTarget 按目标系统优先选择安装包:
// 1) Linux 且识别到发行版时,优先 filePrefix-{distroTag}-v*.zip如 ubuntu22.04 / amzn2023
// 2) 回退 filePrefix-v*.zip通用包
func (this *BaseInstaller) LookupLatestInstallerForTarget(filePrefix string, env *Env) (string, error) {
if env != nil && env.OS == "linux" {
distroTag, err := this.detectLinuxDistroTag()
if err != nil {
return "", err
}
if len(distroTag) > 0 {
zipFile, err := this.LookupLatestInstaller(filePrefix + "-" + distroTag)
if err != nil {
return "", err
}
if len(zipFile) > 0 {
return zipFile, nil
}
}
}
return this.LookupLatestInstaller(filePrefix)
}
// detectLinuxDistroTag 识别远端 Linux 发行版标签(用于选择发行版定制安装包)。
// 当前支持ubuntu22.04 / amzn2023其他系统返回空字符串回退通用包
func (this *BaseInstaller) detectLinuxDistroTag() (string, error) {
if this.client == nil {
return "", nil
}
releaseData, stderr, err := this.client.Exec("cat /etc/os-release")
if err != nil {
return "", fmt.Errorf("read /etc/os-release failed: %w, stderr: %s", err, stderr)
}
if len(strings.TrimSpace(releaseData)) == 0 {
return "", nil
}
releaseMap := parseOSRelease(releaseData)
id := strings.ToLower(strings.TrimSpace(releaseMap["ID"]))
versionID := strings.TrimSpace(releaseMap["VERSION_ID"])
switch {
case id == "ubuntu" && strings.HasPrefix(versionID, "22.04"):
return "ubuntu22.04", nil
case id == "amzn" && strings.HasPrefix(versionID, "2023"):
return "amzn2023", nil
default:
return "", nil
}
}
// InstallHelper 上传安装助手
func (this *BaseInstaller) InstallHelper(targetDir string, role nodeconfigs.NodeRole) (env *Env, err error) {
var uname = this.uname()