diff --git a/manager/apk.go b/manager/apk.go index 4ef0e02..edd1303 100644 --- a/manager/apk.go +++ b/manager/apk.go @@ -159,6 +159,7 @@ func (a *APK) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(a.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...) diff --git a/manager/apt.go b/manager/apt.go index db42bb8..18ba5c6 100644 --- a/manager/apt.go +++ b/manager/apt.go @@ -145,6 +145,7 @@ func (a *APT) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(a.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...) diff --git a/manager/dnf.go b/manager/dnf.go index 592a004..a619a81 100644 --- a/manager/dnf.go +++ b/manager/dnf.go @@ -60,7 +60,7 @@ func (d *DNF) Sync(opts *Opts) error { func (d *DNF) Install(opts *Opts, pkgs ...string) error { opts = ensureOpts(opts) - cmd := d.getCmd(opts, "dnf", "install") + cmd := d.getCmd(opts, "dnf", "install", "--allowerasing") cmd.Args = append(cmd.Args, pkgs...) setCmdEnv(cmd) err := cmd.Run() @@ -153,6 +153,7 @@ func (d *DNF) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(d.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...) diff --git a/manager/managers.go b/manager/managers.go index 22b4cf5..407b460 100644 --- a/manager/managers.go +++ b/manager/managers.go @@ -26,6 +26,7 @@ import ( type Opts struct { AsRoot bool NoConfirm bool + Args []string } var DefaultOpts = &Opts{ diff --git a/manager/pacman.go b/manager/pacman.go index 0a0e96a..04e1a38 100644 --- a/manager/pacman.go +++ b/manager/pacman.go @@ -152,6 +152,7 @@ func (p *Pacman) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(p.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...) diff --git a/manager/yum.go b/manager/yum.go index ed9f7b0..2408a28 100644 --- a/manager/yum.go +++ b/manager/yum.go @@ -60,7 +60,7 @@ func (y *YUM) Sync(opts *Opts) error { func (y *YUM) Install(opts *Opts, pkgs ...string) error { opts = ensureOpts(opts) - cmd := y.getCmd(opts, "yum", "install") + cmd := y.getCmd(opts, "yum", "install", "--allowerasing") cmd.Args = append(cmd.Args, pkgs...) setCmdEnv(cmd) err := cmd.Run() @@ -153,6 +153,7 @@ func (y *YUM) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(y.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...) diff --git a/manager/zypper.go b/manager/zypper.go index 605669c..0588b73 100644 --- a/manager/zypper.go +++ b/manager/zypper.go @@ -153,6 +153,7 @@ func (z *Zypper) getCmd(opts *Opts, mgrCmd string, args ...string) *exec.Cmd { var cmd *exec.Cmd if opts.AsRoot { cmd = exec.Command(getRootCmd(z.rootCmd), mgrCmd) + cmd.Args = append(cmd.Args, opts.Args...) cmd.Args = append(cmd.Args, args...) } else { cmd = exec.Command(mgrCmd, args...)