pkgmanager

package
v0.0.61 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var PackageMapping = map[string]map[string]string{
	"tar": {
		"ubuntu":    "tar",
		"debian":    "tar",
		"fedora":    "tar",
		"centos":    "tar",
		"opensuse":  "tar",
		"rocky":     "tar",
		"almalinux": "tar",
	},
	"iscsiadm": {
		"ubuntu":    "open-iscsi",
		"debian":    "open-iscsi",
		"fedora":    "iscsi-initiator-utils",
		"centos":    "iscsi-initiator-utils",
		"opensuse":  "open-iscsi",
		"rocky":     "iscsi-initiator-utils",
		"almalinux": "iscsi-initiator-utils",
	},
	"git": {
		"ubuntu":    "git",
		"debian":    "git",
		"fedora":    "git",
		"centos":    "git",
		"opensuse":  "git",
		"rocky":     "git",
		"almalinux": "git",
	},
	"curl": {
		"ubuntu":    "curl",
		"debian":    "curl",
		"fedora":    "curl",
		"centos":    "curl",
		"opensuse":  "curl",
		"rocky":     "curl",
		"almalinux": "curl",
	},
	"wget": {
		"ubuntu":    "wget",
		"debian":    "wget",
		"fedora":    "wget",
		"centos":    "wget",
		"opensuse":  "wget",
		"rocky":     "wget",
		"almalinux": "wget",
	},
	"ca-certificates": {
		"ubuntu":    "ca-certificates",
		"debian":    "ca-certificates",
		"fedora":    "ca-certificates",
		"centos":    "ca-certificates",
		"opensuse":  "ca-certificates",
		"rocky":     "ca-certificates",
		"almalinux": "ca-certificates",
	},
	"apt-transport-https": {
		"ubuntu":    "apt-transport-https",
		"debian":    "apt-transport-https",
		"fedora":    "",
		"centos":    "",
		"opensuse":  "",
		"rocky":     "",
		"almalinux": "",
	},
	"apache2-utils": {
		"ubuntu":    "apache2-utils",
		"debian":    "apache2-utils",
		"fedora":    "httpd-tools",
		"centos":    "httpd-tools",
		"opensuse":  "apache2-utils",
		"rocky":     "httpd-tools",
		"almalinux": "httpd-tools",
	},
}

PackageMapping defines the mapping of common package names to distribution-specific package names

Functions

func GetDistributionPackages

func GetDistributionPackages(distribution string) []string

GetDistributionPackages returns all available packages for the specified distribution

Types

type AptInstaller

type AptInstaller struct {
	// Channel to send log messages
	LogChan chan<- string
}

AptInstaller for Debian-based systems

func NewAptInstaller

func NewAptInstaller(logChan chan<- string) *AptInstaller

NewAptInstaller creates apt package manager

func (*AptInstaller) InstallPackages

func (self *AptInstaller) InstallPackages(ctx context.Context, packages []string, progressFunc ProgressFunc) error

InstallPackages handles apt package installation

type DNFInstaller

type DNFInstaller struct {
	// Channel to send log messages
	LogChan chan<- string
}

DNFInstaller handles installation of dnf packages

func NewDNFInstaller

func NewDNFInstaller(logChan chan<- string) *DNFInstaller

NewDNFInstaller creates a new DNFInstaller

func (*DNFInstaller) InstallPackages

func (self *DNFInstaller) InstallPackages(ctx context.Context, packages []string, progressFunc ProgressFunc) error

InstallPackages installs the specified packages using dnf

type PackageManager

type PackageManager interface {
	// InstallPackages installs the specified packages
	// The operation can be cancelled using the provided context
	InstallPackages(ctx context.Context, packages []string, progressFunc ProgressFunc) error
}

PackageManager common interface for diff pkg systems

func NewPackageManager

func NewPackageManager(distribution string, logChan chan<- string) (PackageManager, error)

NewPackageManager factory based on distro type

type ProgressFunc added in v0.0.21

type ProgressFunc func(packageName string, progress float64, step string, isComplete bool)

ProgressFunc callback for install progress updates

type ZypperInstaller

type ZypperInstaller struct {
	// Channel to send log messages
	LogChan chan<- string
}

ZypperInstaller handles installation of zypper packages

func NewZypperInstaller

func NewZypperInstaller(logChan chan<- string) *ZypperInstaller

NewZypperInstaller creates a new ZypperInstaller

func (*ZypperInstaller) InstallPackages

func (self *ZypperInstaller) InstallPackages(ctx context.Context, packages []string, progressFunc ProgressFunc) error

InstallPackages installs the specified packages using zypper

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL