diff --git a/upup/pkg/fi/nodeup/nodetasks/package.go b/upup/pkg/fi/nodeup/nodetasks/package.go index e70b5988fa..5a029bf6ee 100644 --- a/upup/pkg/fi/nodeup/nodetasks/package.go +++ b/upup/pkg/fi/nodeup/nodetasks/package.go @@ -297,6 +297,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro if a == nil || changes.Version != nil { klog.Infof("Installing package %q (dependencies: %v)", e.Name, e.Deps) + var localPkgs []string if e.Source != nil { // Install a deb or rpm. @@ -316,7 +317,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro } // Download all the debs/rpms. - localPkgs := make([]string, 1+len(e.Deps)) + localPkgs = make([]string, 1+len(e.Deps)) for i, pkg := range append([]*Package{e}, e.Deps...) { local := path.Join(localPackageDir, pkg.Name+ext) localPkgs[i] = local @@ -333,53 +334,30 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro return err } } + } - var args []string - env := os.Environ() - if t.HasTag(tags.TagOSFamilyDebian) { - args = []string{"apt-get", "install", "--yes", "--no-install-recommends"} - env = append(env, "DEBIAN_FRONTEND=noninteractive") - } else if t.HasTag(tags.TagOSFamilyRHEL) { - if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) { - args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"} - } else { - args = []string{"/usr/bin/yum", "install", "-y"} - } + var args []string + env := os.Environ() + if t.HasTag(tags.TagOSFamilyDebian) { + args = []string{"apt-get", "install", "--yes", "--no-install-recommends"} + env = append(env, "DEBIAN_FRONTEND=noninteractive") + } else if t.HasTag(tags.TagOSFamilyRHEL) { + if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) { + args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"} } else { - return fmt.Errorf("unsupported package system") - } - args = append(args, localPkgs...) - - klog.Infof("running command %s", args) - cmd := exec.Command(args[0], args[1:]...) - cmd.Env = env - output, err := cmd.CombinedOutput() - if err != nil { - return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output)) + args = []string{"/usr/bin/yum", "install", "-y"} } } else { - var args []string - env := os.Environ() - if t.HasTag(tags.TagOSFamilyDebian) { - args = []string{"apt-get", "install", "--yes", "--no-install-recommends", e.Name} - env = append(env, "DEBIAN_FRONTEND=noninteractive") - } else if t.HasTag(tags.TagOSFamilyRHEL) { - if t.HasTag(tags.TagOSCentOS8) || t.HasTag(tags.TagOSRHEL8) { - args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False", e.Name} - } else { - args = []string{"/usr/bin/yum", "install", "-y", e.Name} - } - } else { - return fmt.Errorf("unsupported package system") - } + return fmt.Errorf("unsupported package system") + } + args = append(args, localPkgs...) - klog.Infof("running command %s", args) - cmd := exec.Command(args[0], args[1:]...) - cmd.Env = env - output, err := cmd.CombinedOutput() - if err != nil { - return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output)) - } + klog.Infof("running command %s", args) + cmd := exec.Command(args[0], args[1:]...) + cmd.Env = env + output, err := cmd.CombinedOutput() + if err != nil { + return fmt.Errorf("error installing package %q: %v: %s", e.Name, err, string(output)) } } else { if changes.Healthy != nil {