diff --git a/internal/web/actions/default/setup/mysql/mysqlinstallers/mysql_installer.go b/internal/web/actions/default/setup/mysql/mysqlinstallers/mysql_installer.go index 4e2102c0..ac4fc215 100644 --- a/internal/web/actions/default/setup/mysql/mysqlinstallers/mysql_installer.go +++ b/internal/web/actions/default/setup/mysql/mysqlinstallers/mysql_installer.go @@ -88,15 +88,25 @@ func (this *MySQLInstaller) InstallFromFile(xzFilePath string, targetDir string) } // ubuntu apt - aptExe, err := executils.LookPath("apt") - if err == nil && len(aptExe) > 0 { + aptGetExe, err := exec.LookPath("apt-get") + if err == nil && len(aptGetExe) > 0 { for _, lib := range []string{"libaio1", "libncurses5"} { this.log("checking " + lib + " ...") - var cmd = utils.NewCmd("apt", "-y", "install", lib) + var cmd = utils.NewCmd(aptGetExe, "-y", "install", lib) cmd.WithStderr() err = cmd.Run() if err != nil { - return errors.New("install " + lib + " failed: " + cmd.Stderr()) + // try apt + aptExe, aptErr := exec.LookPath("apt") + if aptErr == nil && len(aptExe) > 0 { + cmd = utils.NewCmd(aptExe, "-y", "install", lib) + cmd.WithStderr() + err = cmd.Run() + } + + if err != nil { + return errors.New("install " + lib + " failed: " + cmd.Stderr()) + } } time.Sleep(1 * time.Second) } @@ -627,6 +637,13 @@ WantedBy=multi-user.target` // install 'tar' command automatically func (this *MySQLInstaller) installTarCommand() error { + // dnf + dnfExe, err := exec.LookPath("dnf") + if err == nil && len(dnfExe) > 0 { + var cmd = utils.NewTimeoutCmd(10*time.Second, dnfExe, "-y", "install", "tar") + return cmd.Run() + } + // yum yumExe, err := executils.LookPath("yum") if err == nil && len(yumExe) > 0 { @@ -634,11 +651,19 @@ func (this *MySQLInstaller) installTarCommand() error { return cmd.Run() } - // apt - aptExe, err := executils.LookPath("apt") - if err == nil && len(aptExe) > 0 { - var cmd = utils.NewTimeoutCmd(10*time.Second, aptExe, "-y", "install", "tar") - return cmd.Run() + // apt-get + aptGetExe, err := exec.LookPath("apt-get") + if err == nil && len(aptGetExe) > 0 { + var cmd = utils.NewTimeoutCmd(10*time.Second, aptGetExe, "-y", "install", "tar") + err = cmd.Run() + if err != nil { + aptExe, aptErr := exec.LookPath("apt") + if aptErr == nil { + cmd = utils.NewTimeoutCmd(10*time.Second, aptExe, "-y", "install", "tar") + err = cmd.Run() + } + } + return err } return nil