Documentation ¶
Overview ¶
Package dpkg contains routines to parse Debian package information.
Example:
package main import ( "fmt" "os" dpkg "maze.io/dpkg.v1" ) func main() { db, err := dpkg.Open() if err != nil { fmt.Fprintf(os.Stderr, "dpkg open failed: %v\n", err) os.Exit(1) } fmt.Println("installed packages:") for _, pkg := range db.PackagesWithStatus("installed") { fmt.Printf("%s-%s\n", pkg.Name, pkg.Version) } }
Index ¶
Constants ¶
const ( DependancySuggests = iota DependancyRecommends DependancyDepends DependancyPreDepends DependancyBreaks DependancyConflicts DependancyProvides DependancyReplaces DependancyEnhances )
dpkg deptype
const ( PriorityRequired = iota PriorityImportant PriorityStandard PriorityOptional PriorityExtra PriorityOther PriorityUnknown PriorityUnset = -1 )
dpkg pkgpriority
const ( FlagOK = iota FlagReinstallRequired )
dpkg pkgflag
const ( StatusNotInstalled = iota StatusConfigFiles StatusHalfInstalled StatusUnpacked StatusHalfConfigured StatusTriggersAwaited StatusTriggersPending StatusInstalled )
dpkg pkgstatus
const ( WantUnknown = iota WantInstall WantHold WantDeinstall WantPurge )
dpkg pkgwant
const ( Earlier = 0001 Later = 0002 Strict = 0010 OrEqual = 0020 BuiltUp = 0100 None = 0200 EarlierEqual = BuiltUp | Earlier | OrEqual EarlierStrict = BuiltUp | Earlier | Strict LaterEqual = BuiltUp | Later | OrEqual LaterStrict = BuiltUp | Later | Strict Exact = 0400 )
dpkg depverrel
Variables ¶
var ( // Path is the default location of the dpkg metadata. Path = "/var/lib/dpkg" // ArchFile is the default name of the dpkg arch file. ArchFile = "arch" // InfoFile is the default name of the dpkg info file. InfoFile = "info" // StatusFile is the default name of the dpkg status file. StatusFile = "status" )
Functions ¶
Types ¶
type Conffile ¶
Conffile is a file with a checksum in the package.
type Conffiles ¶
type Conffiles []Conffile
Conffiles slice of Conffile.
func (*Conffiles) Parse ¶
Parse conffiles in a package.
type DB ¶
DB hold a dpkg database.
func OpenFile ¶
OpenFile opens a dpkg-style database from a location.
func (*DB) Contains ¶
Contains checks if the database contains a package by name.
func (*DB) Packages ¶
Packages returns all packages in the database.
func (*DB) PackagesWithStatus ¶
PackagesWithStatus returns all packages that match a given status.
Example:
for _, pkg := range db.PackagesWithStatus("installed") { fmt.Printf("%s-%s\n", pkg.Name, pkg.Version) }
type Dependancies ¶
type Dependancies []Dependancy
Dependancies slice of Dependancy.
func (*Dependancies) Parse ¶
func (f *Dependancies) Parse(s string) (err error)
Parse package dependancies.
func (Dependancies) String ¶
func (f Dependancies) String() string
type Dependancy ¶
type Dependancy struct { PackageInfo Relation int Version version.Version Type int }
Dependancy is a relation between two packages.
func (Dependancy) String ¶
func (dep Dependancy) String() string
type Package ¶
type Package struct { Name string Essential bool Status Status Priority string Section string InstalledSize int64 Origin string Maintainer string Bugs string Architecture string Source string Version string Revision string ConfigVersion string Replaces Dependancies Provides Dependancies Depends Dependancies PreDepends Dependancies Recommends Dependancies Suggests Dependancies Breaks Dependancies Conflicts Dependancies Enhances Dependancies Conffiles Conffiles Filename string Size int64 MD5sum string Description string Extra map[string]string }
Package describes a package in the dpkg database. Fields as described in dpkg/lib/dpkg/parse.c
func UnmarshalPackage ¶
UnmarshalPackage unmarshals a package from an RFC822 style chunk.
type PackageInfo ¶
type PackageInfo struct { Name string Want int Status int Priority int Section string Version string Revision string }
PackageInfo is part of the Dependancy information.
type Parser ¶
Parser can parse fields.
type Status ¶
Status is a package status.