Как исправить флаги автоматической установки / ручной установки установленных пакетов?

По умолчанию Ubuntu отправляет vim-tiny. Чтобы получить реальную сделку (которая включает в себя vim-runtime), просто запустите следующую команду в терминале:

sudo apt-get install vim

Обычно я бы включил ссылку Software Center, но вы, похоже, довольно технический парень.

2
задан 16 February 2018 в 11:40

2 ответа

Использование API Python Apt может быть более эффективным, особенно при получении зависимостей:

#! /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()

Он все равно будет медленным, но должен быть еще быстрее, чем вызов apt-cache тысячи раз. Запустите без sudo, чтобы увидеть, какие изменения будут сделаны (c.commit() не удастся), и запустите с sudo, чтобы выполнить эти изменения.

1
ответ дан 18 July 2018 в 01:02

Использование API Python Apt может быть более эффективным, особенно при получении зависимостей:

#! /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()

Он все равно будет медленным, но должен быть еще быстрее, чем вызов apt-cache тысячи раз. Запустите без sudo, чтобы увидеть, какие изменения будут сделаны (c.commit() не удастся), и запустите с sudo, чтобы выполнить эти изменения.

1
ответ дан 24 July 2018 в 17:19

Другие вопросы по тегам:

Похожие вопросы: