parent
16482c60fd
commit
985d83fe5e
|
@ -58,8 +58,30 @@ def cache_search (pkgs):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def install (pkgs, opts={}):
|
def install (pkgs, opts={}):
|
||||||
opts_list = []
|
apt_pkg.init()
|
||||||
for k in opts: opts_list += ['-o', f'{k}={opts[k]}']
|
|
||||||
print ('about to install these packages: "{}"'.format (' '.join (pkgs)))
|
if opts:
|
||||||
import subprocess
|
apt_pkg.init_config()
|
||||||
subprocess.run (['apt-get', '--yes', 'install'] + pkgs + opts_list)
|
for k in opts:
|
||||||
|
apt_pkg.config.set (k, opts[k])
|
||||||
|
|
||||||
|
cache = apt_pkg.Cache()
|
||||||
|
sl = apt_pkg.SourceList()
|
||||||
|
sl.read_main_list()
|
||||||
|
cache.update (apt.progress.base.AcquireProgress(), sl)
|
||||||
|
|
||||||
|
_to_install = []
|
||||||
|
dep_cache = apt_pkg.DepCache(cache)
|
||||||
|
for p in pkgs:
|
||||||
|
package = cache[p]
|
||||||
|
if not package:
|
||||||
|
print (f'package "{p}" not found')
|
||||||
|
continue
|
||||||
|
_to_install.append (p)
|
||||||
|
dep_cache.mark_install(package)
|
||||||
|
|
||||||
|
if _to_install:
|
||||||
|
print ('about to install these packages: "{}"'.format (' '.join (_to_install)))
|
||||||
|
fetcher = apt_pkg.Acquire()
|
||||||
|
install_progress = apt.progress.base.InstallProgress()
|
||||||
|
dep_cache.commit(fetcher, install_progress)
|
||||||
|
|
Loading…
Reference in New Issue