apt.package
— Classes for package handling¶
Functionality related to packages.
The Package class¶
- class apt.package.Package(pcache: Cache, pkgiter: Package)¶
Representation of a package in a cache.
This class provides methods and properties for working with a package. It lets you mark the package for installation, check if it is installed, and much more.
Note
Several methods have been deprecated in version 0.7.9 of python-apt, please see the
Version
class for the new alternatives.- architecture() str ¶
Return the Architecture of the package.
Note that for Architecture: all packages, this returns the native architecture, as they are internally treated like native packages. To get the concrete architecture, look at the
Version.architecture
attribute.Changed in version 0.7.100.3: This is now the package’s architecture in the multi-arch sense, previously it was the architecture of the candidate version and deprecated.
- property candidate: Version | None¶
Return the candidate version of the package.
This property is writeable to allow you to set the candidate version of the package. Just assign a Version() object, and it will be set as the candidate version.
- commit(fprogress: AcquireProgress, iprogress: InstallProgress) None ¶
Commit the changes.
The parameter fprogress refers to a apt_pkg.AcquireProgress() object, like apt.progress.text.AcquireProgress().
The parameter iprogress refers to an InstallProgress() object, as found in apt.progress.base.
- property fullname: str¶
Return the name of the package, including architecture.
Note that as for
architecture()
, this returns the native architecture for Architecture: all packages.Added in version 0.7.100.3.
- get_changelog(uri: str | None = None, cancel_lock: Event | None = None) str ¶
Download the changelog of the package and return it as unicode string.
The parameter uri refers to the uri of the changelog file. It may contain multiple named variables which will be substitued. These variables are (src_section, prefix, src_pkg, src_ver). An example is the Ubuntu changelog:
"http://changelogs.ubuntu.com/changelogs/pool" \ "/%(src_section)s/%(prefix)s/%(src_pkg)s" \ "/%(src_pkg)s_%(src_ver)s/changelog"
The parameter cancel_lock refers to an instance of threading.Event, which if set, prevents the download.
- property id: int¶
Return a uniq ID for the package.
This can be used eg. to store additional information about the pkg.
- property installed: Version | None¶
Return the currently installed version of the package.
Added in version 0.7.9.
- property installed_files: list[str]¶
Return a list of files installed by the package.
Return a list of unicode names of the files which have been installed by this package
- property is_auto_removable: bool¶
Return
True
if the package is no longer required.If the package has been installed automatically as a dependency of another package, and if no packages depend on it anymore, the package is no longer required.
- mark_auto(auto: bool = True) None ¶
Mark a package as automatically installed.
Call this function to mark a package as automatically installed. If the optional parameter auto is set to
False
, the package will not be marked as automatically installed anymore. The default isTrue
.
- mark_delete(auto_fix: bool = True, purge: bool = False) None ¶
Mark a package for deletion.
If auto_fix is
True
, the resolver will be run, trying to fix broken packages. This is the default.If purge is
True
, remove the configuration files of the package as well. The default is to keep the configuration.
- mark_install(auto_fix: bool = True, auto_inst: bool = True, from_user: bool = True) None ¶
Mark a package for install.
If autoFix is
True
, the resolver will be run, trying to fix broken packages. This is the default.If autoInst is
True
, the dependencies of the packages will be installed automatically. This is the default.If fromUser is
True
, this package will not be marked as automatically installed. This is the default. Set it to False if you want to be able to automatically remove the package at a later stage when no other package depends on it.
- property name: str¶
Return the name of the package, possibly including architecture.
If the package is not part of the system’s preferred architecture, return the same as
fullname
, otherwise return the same asshortname
Changed in version 0.7.100.3.
As part of multi-arch, this field now may include architecture information.
- property shortname: str¶
Return the name of the package, without architecture.
Added in version 0.7.100.3.
- property versions: VersionList¶
Return a VersionList() object for all available versions.
Added in version 0.7.9.
The Version class¶
- class apt.package.Version(package: Package, cand: Version)¶
Representation of a package version.
The Version class contains all information related to a specific package version.
Added in version 0.7.9.
- property dependencies: list[Dependency]¶
Return the dependencies of the package version.
- property description: str¶
Return the formatted long description.
Return the formatted long description according to the Debian policy (Chapter 5.6.13). See http://www.debian.org/doc/debian-policy/ch-controlfields.html for more information.
- property enhances: list[Dependency]¶
Return the list of enhances for the package version.
- fetch_binary(destdir: str = '', progress: AcquireProgress | None = None, allow_unauthenticated: bool | None = None) str ¶
Fetch the binary version of the package.
The parameter destdir specifies the directory where the package will be fetched to.
The parameter progress may refer to an apt_pkg.AcquireProgress() object. If not specified or None, apt.progress.text.AcquireProgress() is used.
The keyword-only parameter allow_unauthenticated specifies whether to allow unauthenticated downloads. If not specified, it defaults to the configuration option APT::Get::AllowUnauthenticated.
Added in version 0.7.10.
- fetch_source(destdir: str = '', progress: AcquireProgress | None = None, unpack: bool = True, allow_unauthenticated: bool | None = None) str ¶
Get the source code of a package.
The parameter destdir specifies the directory where the source will be fetched to.
The parameter progress may refer to an apt_pkg.AcquireProgress() object. If not specified or None, apt.progress.text.AcquireProgress() is used.
The parameter unpack describes whether the source should be unpacked (
True
) or not (False
). By default, it is unpacked.If unpack is
True
, the path to the extracted directory is returned. Otherwise, the path to the .dsc file is returned.The keyword-only parameter allow_unauthenticated specifies whether to allow unauthenticated downloads. If not specified, it defaults to the configuration option APT::Get::AllowUnauthenticated.
- get_dependencies(*types: str) list[Dependency] ¶
Return a list of Dependency objects for the given types.
Multiple types can be specified. Possible types are: ‘Breaks’, ‘Conflicts’, ‘Depends’, ‘Enhances’, ‘PreDepends’, ‘Recommends’, ‘Replaces’, ‘Suggests’
Additional types might be added in the future.
- property is_installed: bool¶
Return wether this version of the package is currently installed.
Added in version 1.0.0.
- property policy_priority: int¶
Return the internal policy priority as a number. See apt_preferences(5) for more information about what it means.
- property recommends: list[Dependency]¶
Return the recommends of the package version.
- property record: Record¶
Return a Record() object for this version.
Return a Record() object for this version which provides access to the raw attributes of the candidate version
- property suggests: list[Dependency]¶
Return the suggests of the package version.
- property tasks: set[str]¶
Get the tasks of the package.
A set of the names of the tasks this package belongs to.
Added in version 0.8.0.
Dependency Information¶
- class apt.package.BaseDependency(version: Version, dep: Dependency)¶
A single dependency.
- property installed_target_versions: list[Version]¶
A list of all installed Version objects which satisfy this dep.
Added in version 1.0.0.
- property rawstr: str¶
String represenation of the dependency.
Returns the string representation of the dependency as it would be written in the debian/control file. The string representation does not include the type of the dependency.
- Example for an unversioned dependency:
python3
- Example for a versioned dependency:
python3 >= 3.2
Added in version 1.0.0.
- property rawtype: str¶
Type of the dependency.
This should be one of ‘Breaks’, ‘Conflicts’, ‘Depends’, ‘Enhances’, ‘PreDepends’, ‘Recommends’, ‘Replaces’, ‘Suggests’.
Additional types might be added in the future.
- property relation: str¶
The relation (<, <=, =, !=, >=, >, ‘’) in mathematical notation.
The empty string will be returned in case of an unversioned dependency.
- property relation_deb: str¶
The relation (<<, <=, =, !=, >=, >>, ‘’) in Debian notation.
The empty string will be returned in case of an unversioned dependency. For more details see the Debian Policy Manual on the syntax of relationship fields: https://www.debian.org/doc/debian-policy/ch-relationships.html#s-depsyntax # noqa
Added in version 1.0.0.
- class apt.package.Dependency¶
The dependency class represents a Or-Group of dependencies. It provides an attribute to access the
BaseDependency
object for the available choices.- or_dependencies¶
A list of
BaseDependency
objects which could satisfy the requirement of the Or-Group.
Origin Information¶
- class apt.package.Origin¶
The
Origin
class provides access to the origin of the package. It allows you to check the component, archive, the hostname, and even if this package can be trusted.- archive¶
The archive (eg. unstable)
- component¶
The component (eg. main)
- label¶
The Label, as set in the Release file
- origin¶
The Origin, as set in the Release file
- site¶
The hostname of the site.
- trusted¶
Boolean value whether this is trustworthy. An origin can be trusted, if it provides a GPG-signed Release file and the GPG-key used is in the keyring used by apt (see apt-key).
The Record class¶
- class apt.package.Record(record_str: str)¶
Record in a Packages file
Represent a record as stored in a Packages file. You can use this like a dictionary mapping the field names of the record to their values:
>>> record = Record("Package: python-apt\nVersion: 0.8.0\n\n") >>> record["Package"] 'python-apt' >>> record["Version"] '0.8.0'
For example, to get the tasks of a package from a cache, you could do:
package.candidate.record["Tasks"].split()
Of course, you can also use the
Version.tasks
property.Note
Changed in version 0.7.100: This class is a subclass of
collections.Mapping
when used in Python 2.6 or newer.- record[name]
Return the value of the field with the name name.
- name in record
Return whether a field name exists in record.
- len(record)
The number of fields in the record
- str(record)
Display the record as a string
Examples¶
import apt
cache = apt.Cache()
pkg = cache['python-apt'] # Access the Package object for python-apt
print('python-apt is trusted:', pkg.candidate.origins[0].trusted)
# Mark python-apt for install
pkg.mark_install()
print('python-apt is marked for install:', pkg.marked_install)
print('python-apt is (summary):', pkg.candidate.summary)
# Now, really install it
cache.commit()