From 3d89ddfed0b5ee095a7c87b6af4f14bebacd2a09 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 8 Jan 2023 20:13:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BF=9C=E7=A8=8B=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=97=B6uname=E8=AF=BB=E5=8F=96=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/installers/installer_base.go | 47 +++++++++++++-------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/internal/installers/installer_base.go b/internal/installers/installer_base.go index cbdd1eb1..8e2a870e 100644 --- a/internal/installers/installer_base.go +++ b/internal/installers/installer_base.go @@ -125,14 +125,14 @@ func (this *BaseInstaller) LookupLatestInstaller(filePrefix string) (string, err return "", err } - lastVersion := "" - result := "" + var lastVersion = "" + var result = "" for _, match := range matches { - baseName := filepath.Base(match) + var baseName = filepath.Base(match) if !pattern.MatchString(baseName) { continue } - m := pattern.FindStringSubmatch(baseName) + var m = pattern.FindStringSubmatch(baseName) if len(m) < 2 { continue } @@ -147,28 +147,10 @@ func (this *BaseInstaller) LookupLatestInstaller(filePrefix string) (string, err // InstallHelper 上传安装助手 func (this *BaseInstaller) InstallHelper(targetDir string, role nodeconfigs.NodeRole) (env *Env, err error) { - var unameRetries = 3 - var uname string - for i := 0; i < unameRetries; i++ { - // 此处不能使用 /usr/bin/uname,因为uname不一定在 /usr/bin 下 - uname, _, err = this.client.Exec("uname -a") - if len(uname) == 0 { - continue - } - if err == nil { - break - } - } - if err != nil { - return env, errors.New("unable to execute 'uname -a' on this system: " + err.Error()) - } + var uname = this.uname() - if len(uname) == 0 { - return nil, errors.New("unable to execute 'uname -a' on this system") - } - - osName := "" - archName := "" + var osName = "" + var archName = "" if strings.Contains(uname, "Darwin") { osName = "darwin" } else if strings.Contains(uname, "Linux") { @@ -230,3 +212,18 @@ func (this *BaseInstaller) InstallHelper(targetDir string, role nodeconfigs.Node } return env, nil } + +func (this *BaseInstaller) uname() (uname string) { + var unameRetries = 3 + + for i := 0; i < unameRetries; i++ { + for _, unameExe := range []string{"uname", "/bin/uname", "/usr/bin/uname"} { + uname, _, _ = this.client.Exec(unameExe + " -a") + if len(uname) > 0 { + return + } + } + } + + return "x86_64 GNU/Linux" +}