mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	安装MySQL时优先使用apt-get代替apt
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user