How to install a package using the python-apt API

后端 未结 1 995
日久生厌
日久生厌 2020-12-01 09:45

I\'m quite a newbie when it comes to Python, thus I beg foregiveness beforehand :). That said, I\'m trying to make a script that, among other things, installs some Linux pac

相关标签:
1条回答
  • 2020-12-01 10:17

    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.py
    
    import apt
    import sys
    
    pkg_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.

    0 讨论(0)
提交回复
热议问题