Como corrigir os flags de instalação automática / manual dos pacotes instalados?

2

Instalei o Ubuntu no novo Lenovo T470. Para ter os mesmos pacotes que no antigo notebook instalado, criei uma lista de pacotes instalados no antigo notebook e instalei os da nova Lenovo usando

por lucky62 17.12.2017 / 11:05

1 resposta

1

Usar a API do Python Apt pode ser mais eficiente, especialmente para obter as dependências:

#! /usr/bin/python3
from apt import cache

c = cache.Cache()
pkgs = set(pkg for pkg in c if pkg.is_installed)
seen = set()

def mark_deps(pkg):
    for dep in pkg.installed.dependencies:
        for ver in dep.installed_target_versions:
            if ver.package not in seen:
                seen.add(ver.package)
                pkg.mark_auto()
                mark_deps(ver.package)


for pkg in pkgs:
    mark_deps(pkg)

print(c.get_changes())
c.commit()

Ainda vai ser lento, mas deve ser ainda mais rápido do que chamar o apt-cache milhares de vezes. Execute sem sudo para ver quais alterações serão feitas ( c.commit() falhará) e execute com sudo para realizar essas alterações.

    
por muru 17.12.2017 / 12:10