How to install a package using the python-apt API
It's recommended to use the apt
module from the python-apt
Debian package. This is a higher level wrapper around the underlying C/C++ libapt-xxx
libraries and has a Pythonic interface.
Here's an example script which will install the libjs-yui-doc
package:
#!/usr/bin/env python# aptinstall.pyimport aptimport syspkg_name = "libjs-yui-doc"cache = apt.cache.Cache()cache.update()cache.open()pkg = cache[pkg_name]if pkg.is_installed: print "{pkg_name} already installed".format(pkg_name=pkg_name)else: pkg.mark_install() try: cache.commit() except Exception, arg: print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))
As with the use of apt-get
, this must be run with superuser privileges to access and modify the APT cache.
$ sudo ./aptinstall.py
If you're attempting a package install as part of a larger script, it's probably a good idea to only raise to root privileges for the minimal time required.
You can find a small example in the /usr/share/pyshared/apt/progress/gtk2.py:_test()
function showing how to install a package using a GTK front-end.