склонный - получают шоу важные пакеты, как “больше не требуется”

Любовь ответа от @kbeta. Однако subprocess.check_output() был только представлен в python 2.7 - таким образом, вот версия offlineimap.py это будет работать с более старыми версиями Python:

import os
import subprocess

def mailpasswd(acct):
    acct = os.path.basename(acct)
    path = "/home/hamish/.passwd/%s.gpg" % acct
    args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path]
    proc = subprocess.Popen(args, stdout=subprocess.PIPE)
    output = proc.communicate()[0].strip()
    retcode = proc.wait()
    if retcode == 0:
        return output
    else:
        return ''
9
06.09.2016, 14:18
3 ответа

Определенно ничего не сломано. Когда пакет установлен, часто есть другие пакеты, от которых он зависит. Они будут автоматически установленными apt-get . Раньше вам приходилось использовать отдельную программу, если вы хотели отслеживать эти пакеты, и удалять их, если вы когда-либо удаляли исходную программу, которую вы установили.

Теперь apt реализует флаг состояния Автоустановка , чтобы отслеживать эти пакеты, которые никогда не устанавливались явно.Когда вы удаляете пакет, вы можете добавить опцию - auto-remove , чтобы дополнительно удалить все пакеты, для которых установлен флаг Auto-Installed и больше нет пакетов, которые от него зависят. наличие (пакет также может быть сохранен, если другой предлагает или рекомендует его, в зависимости от значения параметров конфигурации APT :: AutoRemove :: RecommendsImportant и APT :: AutoRemove :: SuggestsImportant ).

Я бы посмотрел на список пакетов и решил, стоит ли их хранить, иногда пакеты, которые вы можете оставить, по умолчанию помечены Автоустановленные . Вы можете получить информацию о том, что делают различные пакеты, выполнив apt-cache show package_name . Если вы решите оставить себе,вы можете использовать apt-mark manual , за которым следует имена пакетов, которые вы хотите сохранить.

Обратите внимание, что обычно вам нужно иметь пакеты библиотек (большинство пакетов, начинающихся с lib ), помеченных как Автоустановка , поскольку существует несколько причин для установки этих пакетов отдельно - для других программ обычно требуются другие библиотеки, но от них мало пользы. Даже если вы компилируете программное обеспечение для библиотеки, вам понадобится пакет разработки (оканчивающийся на -dev ), который зависит от самой библиотеки, поэтому нет необходимости явно устанавливать библиотеку.

Также используя aptitude , вы можете выполнить aptitude unmarkauto из командной строки или изменить в интерфейсе curses. В списках пакетов в интерфейсе все автоматически устанавливаемые пакеты имеют рядом с собой A . Вы можете изменить это состояние, используя m , чтобы пометить автоматически установленный пакет как ручной, и M , чтобы снова пометить его как ручной (также l , чтобы открыть диалоговое окно поиска и Введите , чтобы просмотреть сведения о пакете).

7
27.01.2020, 20:07

Почему бы не удалить их с помощью команды, предложенной apt-get, то есть apt-get autoremove ?

Если они были установлены в Kali по умолчанию и использовались предыдущим веб-браузером, и больше не используются сейчас, когда вы удалили этот браузер, это не будет проблемой.

Кроме того, если когда-нибудь снова понадобится один из пакетов, установите его явно с помощью apt-get , и он не будет отображаться как «устанавливается автоматически и больше не требуется».

Другим решением может быть установка их вручную. Они больше не будут помечены как «автоматически устанавливаются и больше не требуются» в apt-get, но у вас будут бесполезные пакеты, что не является лучшим решением IMO.

0
27.01.2020, 20:07

Чтобы пометить все эти пакеты, чтобы они важны и не были удалены, сделайте это:

apt-mark showauto | xargs sudo apt-get -y install

в основном, рассказывая APT для установки программы, которую вы это говорите Что вы хотите, чтобы он остался на системе постоянно.

3
27.01.2020, 20:07

Теги

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