Documentation
¶
Overview ¶
Package osutil defines operating systems and detects the Linux distribution. Also, it handles basic operations in the management of packages in FreeBSD, Linux and macOs operating systems.
NOTE: Package management systems untested:
- Packman (Arch)
- ebuild (Gentoo)
- RPM (CentOS)
Index ¶
- Variables
- func DetectDistroVer() (verStr string, verNum float32, err error)
- func DetectSystemVer(sys System) (string, error)
- func SetupLogger(log, logShell *log.Logger)
- func SystemFromGOOS() (sys System, dist Distro, err error)
- type Distro
- type ManagerBrew
- func (m ManagerBrew) Clean() error
- func (m ManagerBrew) ExecPath() string
- func (m ManagerBrew) Install(name ...string) error
- func (m ManagerBrew) PackageType() string
- func (m ManagerBrew) Purge(name ...string) error
- func (m ManagerBrew) Remove(name ...string) error
- func (m ManagerBrew) Update() error
- func (m ManagerBrew) Upgrade() error
- type ManagerDeb
- func (m ManagerDeb) Clean() error
- func (m ManagerDeb) ExecPath() string
- func (m ManagerDeb) Install(name ...string) error
- func (m ManagerDeb) PackageType() string
- func (m ManagerDeb) Purge(name ...string) error
- func (m ManagerDeb) Remove(name ...string) error
- func (m ManagerDeb) Update() error
- func (m ManagerDeb) Upgrade() error
- type ManagerDnf
- func (m ManagerDnf) Clean() error
- func (m ManagerDnf) ExecPath() string
- func (m ManagerDnf) Install(name ...string) error
- func (m ManagerDnf) PackageType() string
- func (m ManagerDnf) Purge(name ...string) error
- func (m ManagerDnf) Remove(name ...string) error
- func (m ManagerDnf) Update() error
- func (m ManagerDnf) Upgrade() error
- type ManagerEbuild
- func (m ManagerEbuild) Clean() error
- func (m ManagerEbuild) ExecPath() string
- func (m ManagerEbuild) Install(name ...string) error
- func (m ManagerEbuild) PackageType() string
- func (m ManagerEbuild) Purge(name ...string) error
- func (m ManagerEbuild) Remove(name ...string) error
- func (m ManagerEbuild) Update() error
- func (m ManagerEbuild) Upgrade() error
- type ManagerPacman
- func (m ManagerPacman) Clean() error
- func (m ManagerPacman) ExecPath() string
- func (m ManagerPacman) Install(name ...string) error
- func (m ManagerPacman) PackageType() string
- func (m ManagerPacman) Purge(name ...string) error
- func (m ManagerPacman) Remove(name ...string) error
- func (m ManagerPacman) Update() error
- func (m ManagerPacman) Upgrade() error
- type ManagerPkg
- func (m ManagerPkg) Clean() error
- func (m ManagerPkg) ExecPath() string
- func (m ManagerPkg) Install(name ...string) error
- func (m ManagerPkg) PackageType() string
- func (m ManagerPkg) Purge(name ...string) error
- func (m ManagerPkg) Remove(name ...string) error
- func (m ManagerPkg) Update() error
- func (m ManagerPkg) Upgrade() error
- type ManagerRpm
- func (m ManagerRpm) Clean() error
- func (m ManagerRpm) ExecPath() string
- func (m ManagerRpm) Install(name ...string) error
- func (m ManagerRpm) PackageType() string
- func (m ManagerRpm) Purge(name ...string) error
- func (m ManagerRpm) Remove(name ...string) error
- func (m ManagerRpm) Update() error
- func (m ManagerRpm) Upgrade() error
- type ManagerVoid
- func (m ManagerVoid) Clean() error
- func (m ManagerVoid) ExecPath() string
- func (m ManagerVoid) Install(name ...string) error
- func (m ManagerVoid) PackageType() string
- func (m ManagerVoid) Purge(name ...string) error
- func (m ManagerVoid) Remove(name ...string) error
- func (m ManagerVoid) Update() error
- func (m ManagerVoid) Upgrade() error
- type ManagerYum
- func (m ManagerYum) Clean() error
- func (m ManagerYum) ExecPath() string
- func (m ManagerYum) Install(name ...string) error
- func (m ManagerYum) PackageType() string
- func (m ManagerYum) Purge(name ...string) error
- func (m ManagerYum) Remove(name ...string) error
- func (m ManagerYum) Update() error
- func (m ManagerYum) Upgrade() error
- type ManagerZypp
- func (m ManagerZypp) Clean() error
- func (m ManagerZypp) ExecPath() string
- func (m ManagerZypp) Install(name ...string) error
- func (m ManagerZypp) PackageType() string
- func (m ManagerZypp) Purge(name ...string) error
- func (m ManagerZypp) Remove(name ...string) error
- func (m ManagerZypp) Update() error
- func (m ManagerZypp) Upgrade() error
- type PackageType
- type PkgManager
- type System
Constants ¶
This section is empty.
Variables ¶
ListSystem is the list of allowed operating systems.
Functions ¶
func DetectDistroVer ¶
DetectDistroVer returns the Linux distro version. The 'verNum' is different to -1 when it can be converted to a numeric value.
func DetectSystemVer ¶
DetectSystemVer returns the operating system version.
func SetupLogger ¶
SetupLogger setups the loggers used by some packages. 'log' is used by the packages 'edi', 'fileutil' and 'userutil'. 'logShell' is used by the packages 'executil' and 'pkg'.
func SystemFromGOOS ¶
SystemFromGOOS returns the system from 'GOOS', and the distribution at Linux systems.
Types ¶
type Distro ¶
type Distro int
Distro represents a distribution of Linux system.
Most used Linux distributions.
func DetectDistro ¶
DetectDistro returns the Linux distribution.
type ManagerBrew ¶
type ManagerBrew struct {
// contains filtered or unexported fields
}
ManagerBrew is the interface to handle the macOS package manager.
func NewManagerBrew ¶
func NewManagerBrew() ManagerBrew
NewManagerBrew returns the Homebrew package manager.
func (ManagerBrew) Clean ¶
func (m ManagerBrew) Clean() error
func (ManagerBrew) ExecPath ¶
func (m ManagerBrew) ExecPath() string
func (ManagerBrew) Install ¶
func (m ManagerBrew) Install(name ...string) error
func (ManagerBrew) PackageType ¶
func (m ManagerBrew) PackageType() string
func (ManagerBrew) Purge ¶
func (m ManagerBrew) Purge(name ...string) error
func (ManagerBrew) Remove ¶
func (m ManagerBrew) Remove(name ...string) error
func (ManagerBrew) Update ¶
func (m ManagerBrew) Update() error
func (ManagerBrew) Upgrade ¶
func (m ManagerBrew) Upgrade() error
type ManagerDeb ¶
type ManagerDeb struct {
// contains filtered or unexported fields
}
ManagerDeb is the interface to handle the package manager of Linux systems based at Debian.
func (ManagerDeb) Clean ¶
func (m ManagerDeb) Clean() error
func (ManagerDeb) ExecPath ¶
func (m ManagerDeb) ExecPath() string
func (ManagerDeb) Install ¶
func (m ManagerDeb) Install(name ...string) error
func (ManagerDeb) PackageType ¶
func (m ManagerDeb) PackageType() string
func (ManagerDeb) Purge ¶
func (m ManagerDeb) Purge(name ...string) error
func (ManagerDeb) Remove ¶
func (m ManagerDeb) Remove(name ...string) error
func (ManagerDeb) Update ¶
func (m ManagerDeb) Update() error
func (ManagerDeb) Upgrade ¶
func (m ManagerDeb) Upgrade() error
type ManagerDnf ¶
type ManagerDnf struct {
// contains filtered or unexported fields
}
ManagerDnf is the interface to handle the package manager DNG of Linux systems based at Red Hat.
func (ManagerDnf) Clean ¶
func (m ManagerDnf) Clean() error
func (ManagerDnf) ExecPath ¶
func (m ManagerDnf) ExecPath() string
func (ManagerDnf) Install ¶
func (m ManagerDnf) Install(name ...string) error
func (ManagerDnf) PackageType ¶
func (m ManagerDnf) PackageType() string
func (ManagerDnf) Purge ¶
func (m ManagerDnf) Purge(name ...string) error
func (ManagerDnf) Remove ¶
func (m ManagerDnf) Remove(name ...string) error
func (ManagerDnf) Update ¶
func (m ManagerDnf) Update() error
func (ManagerDnf) Upgrade ¶
func (m ManagerDnf) Upgrade() error
type ManagerEbuild ¶
type ManagerEbuild struct {
// contains filtered or unexported fields
}
ManagerEbuild is the interface to handle the package manager of Linux systems based at Gentoo.
func NewManagerEbuild ¶
func NewManagerEbuild() ManagerEbuild
NewManagerEbuild returns the Ebuild package manager.
func (ManagerEbuild) Clean ¶
func (m ManagerEbuild) Clean() error
func (ManagerEbuild) ExecPath ¶
func (m ManagerEbuild) ExecPath() string
func (ManagerEbuild) Install ¶
func (m ManagerEbuild) Install(name ...string) error
func (ManagerEbuild) PackageType ¶
func (m ManagerEbuild) PackageType() string
func (ManagerEbuild) Purge ¶
func (m ManagerEbuild) Purge(name ...string) error
func (ManagerEbuild) Remove ¶
func (m ManagerEbuild) Remove(name ...string) error
func (ManagerEbuild) Update ¶
func (m ManagerEbuild) Update() error
func (ManagerEbuild) Upgrade ¶
func (m ManagerEbuild) Upgrade() error
type ManagerPacman ¶
type ManagerPacman struct {
// contains filtered or unexported fields
}
ManagerPacman is the interface to handle the package manager of Linux systems based at Arch.
func NewManagerPacman ¶
func NewManagerPacman() ManagerPacman
NewManagerPacman returns the Pacman package manager.
func (ManagerPacman) Clean ¶
func (m ManagerPacman) Clean() error
func (ManagerPacman) ExecPath ¶
func (m ManagerPacman) ExecPath() string
func (ManagerPacman) Install ¶
func (m ManagerPacman) Install(name ...string) error
func (ManagerPacman) PackageType ¶
func (m ManagerPacman) PackageType() string
func (ManagerPacman) Purge ¶
func (m ManagerPacman) Purge(name ...string) error
func (ManagerPacman) Remove ¶
func (m ManagerPacman) Remove(name ...string) error
func (ManagerPacman) Update ¶
func (m ManagerPacman) Update() error
func (ManagerPacman) Upgrade ¶
func (m ManagerPacman) Upgrade() error
type ManagerPkg ¶
type ManagerPkg struct {
// contains filtered or unexported fields
}
ManagerPkg is the interface to handle the FreeBSD package manager, called 'package' or 'pkg'.
func (ManagerPkg) Clean ¶
func (m ManagerPkg) Clean() error
func (ManagerPkg) ExecPath ¶
func (m ManagerPkg) ExecPath() string
func (ManagerPkg) Install ¶
func (m ManagerPkg) Install(name ...string) error
func (ManagerPkg) PackageType ¶
func (m ManagerPkg) PackageType() string
func (ManagerPkg) Purge ¶
func (m ManagerPkg) Purge(name ...string) error
func (ManagerPkg) Remove ¶
func (m ManagerPkg) Remove(name ...string) error
func (ManagerPkg) Update ¶
func (m ManagerPkg) Update() error
func (ManagerPkg) Upgrade ¶
func (m ManagerPkg) Upgrade() error
type ManagerRpm ¶
type ManagerRpm struct {
// contains filtered or unexported fields
}
ManagerRpm is the interface to handle the package manager RPM of Linux systems based at Red Hat.
func (ManagerRpm) Clean ¶
func (m ManagerRpm) Clean() error
func (ManagerRpm) ExecPath ¶
func (m ManagerRpm) ExecPath() string
func (ManagerRpm) Install ¶
func (m ManagerRpm) Install(name ...string) error
func (ManagerRpm) PackageType ¶
func (m ManagerRpm) PackageType() string
func (ManagerRpm) Purge ¶
func (m ManagerRpm) Purge(name ...string) error
func (ManagerRpm) Remove ¶
func (m ManagerRpm) Remove(name ...string) error
func (ManagerRpm) Update ¶
func (m ManagerRpm) Update() error
func (ManagerRpm) Upgrade ¶
func (m ManagerRpm) Upgrade() error
type ManagerVoid ¶
type ManagerVoid struct{}
ManagerVoid is the interface to pass a Manager with an error, avoiding to have to use a pointer.
func (ManagerVoid) Clean ¶
func (m ManagerVoid) Clean() error
func (ManagerVoid) ExecPath ¶
func (m ManagerVoid) ExecPath() string
func (ManagerVoid) Install ¶
func (m ManagerVoid) Install(name ...string) error
func (ManagerVoid) PackageType ¶
func (m ManagerVoid) PackageType() string
func (ManagerVoid) Purge ¶
func (m ManagerVoid) Purge(name ...string) error
func (ManagerVoid) Remove ¶
func (m ManagerVoid) Remove(name ...string) error
func (ManagerVoid) Update ¶
func (m ManagerVoid) Update() error
func (ManagerVoid) Upgrade ¶
func (m ManagerVoid) Upgrade() error
type ManagerYum ¶
type ManagerYum struct {
// contains filtered or unexported fields
}
ManagerYum is the interface to handle the package manager YUM of Linux systems based at Red Hat.
func (ManagerYum) Clean ¶
func (m ManagerYum) Clean() error
func (ManagerYum) ExecPath ¶
func (m ManagerYum) ExecPath() string
func (ManagerYum) Install ¶
func (m ManagerYum) Install(name ...string) error
func (ManagerYum) PackageType ¶
func (m ManagerYum) PackageType() string
func (ManagerYum) Purge ¶
func (m ManagerYum) Purge(name ...string) error
func (ManagerYum) Remove ¶
func (m ManagerYum) Remove(name ...string) error
func (ManagerYum) Update ¶
func (m ManagerYum) Update() error
func (ManagerYum) Upgrade ¶
func (m ManagerYum) Upgrade() error
type ManagerZypp ¶
type ManagerZypp struct {
// contains filtered or unexported fields
}
ManagerZypp is the interface to handle the package manager of Linux systems based at SUSE.
func NewManagerZypp ¶
func NewManagerZypp() ManagerZypp
NewManagerZypp returns the Zypp package manager.
func (ManagerZypp) Clean ¶
func (m ManagerZypp) Clean() error
func (ManagerZypp) ExecPath ¶
func (m ManagerZypp) ExecPath() string
func (ManagerZypp) Install ¶
func (m ManagerZypp) Install(name ...string) error
func (ManagerZypp) PackageType ¶
func (m ManagerZypp) PackageType() string
func (ManagerZypp) Purge ¶
func (m ManagerZypp) Purge(name ...string) error
func (ManagerZypp) Remove ¶
func (m ManagerZypp) Remove(name ...string) error
func (ManagerZypp) Update ¶
func (m ManagerZypp) Update() error
func (ManagerZypp) Upgrade ¶
func (m ManagerZypp) Upgrade() error
type PackageType ¶
type PackageType int8
PackageType represents a package management system.
const ( // Linux Deb PackageType = iota + 1 Dnf Ebuild Pacman Rpm Yum Zypp // BSD Brew Pkg )
func NewPkgTypeFromStr ¶
func NewPkgTypeFromStr(s string) (PackageType, error)
NewPkgTypeFromStr returns a package management system from the string.
func (PackageType) String ¶
func (pkg PackageType) String() string
type PkgManager ¶
type PkgManager interface {
// ExecPath returns the executable path.
ExecPath() string
// PackageType returns the package type.
PackageType() string
// Install installs packages.
Install(name ...string) error
// Remove removes packages.
Remove(name ...string) error
// Purge removes packages and its configuration files (if the package system does it).
Purge(name ...string) error
// Update resynchronizes the package index files from their sources.
Update() error
// Upgrade upgrades all the packages on the system.
Upgrade() error
// Clean erases both packages downloaded and orphaned dependencies.
Clean() error
// contains filtered or unexported methods
}
PkgManager is the common interface to handle different package systems.
func DetectPkgManag ¶
func DetectPkgManag() (PkgManager, error)
DetectPkgManag tries to get the package manager used in the system, looking for executables at directories in $PATH.
func NewPkgManagFromDistro ¶
func NewPkgManagFromDistro(dis Distro) (PkgManager, error)
NewPkgManagFromDistro returns the package manager used by a Linux distro.
func NewPkgManagFromSystem ¶
func NewPkgManagFromSystem(sys System, dis Distro) (PkgManager, error)
NewPkgManagFromSystem returns the package manager used by a system.
func NewPkgManagFromType ¶
func NewPkgManagFromType(pkg PackageType) PkgManager
NewPkgManagFromType returns the interface to handle the package manager.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
config
|
|
|
env
Package env implements the setting of persistent environment variables.
|
Package env implements the setting of persistent environment variables. |
|
shconf
Package shconf implements a parser and scanner for the configuration in format shell-variable.
|
Package shconf implements a parser and scanner for the configuration in format shell-variable. |
|
Package edi allows edit files.
|
Package edi allows edit files. |
|
Package executil lets to call to system commands.
|
Package executil lets to call to system commands. |
|
Package fileutil handles common operations in files.
|
Package fileutil handles common operations in files. |
|
Package userutil provides access to UNIX users database in local files.
|
Package userutil provides access to UNIX users database in local files. |
|
crypt
Package crypt provides interface for password crypt functions and collects common constants.
|
Package crypt provides interface for password crypt functions and collects common constants. |
|
crypt/apr1_crypt
Package apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project.
|
Package apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project. |
|
crypt/common
Package common contains routines used by multiple password hashing algorithms.
|
Package common contains routines used by multiple password hashing algorithms. |
|
crypt/md5_crypt
Package md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD.
|
Package md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD. |
|
crypt/sha256_crypt
Package sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm.
|
Package sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm. |
|
crypt/sha512_crypt
Package sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm.
|
Package sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm. |