Какие команды подходят для очистки всех пакетов только из определенного репозитория и его удаления?

Вот ваше домашнее задание:

#!/bin/bash
for NAME in $(cut -d: -f1 < /etc/passwd)
do
        if [[ ${#NAME} -gt 10 || ${#NAME} -lt 5 ]]
        then
                continue
        else
                echo "Username in the system is: $NAME"
                echo "Its length Is ${#NAME}"
        fi
done

Пожалуйста.

0
22.05.2020, 11:40
1 ответ

Удаление репозитория не приведет к удалению установленных из него пакетов. Если вы хотите удалить пакеты из данного репозитория, вы должны сделать это до удаления самого репозитория.

Система не помнит, откуда были установлены пакеты, она знает только, откуда пакеты доступны сейчас.Таким образом, один из возможных подходов заключается в следующем:

  • установите aptitude, если вы еще этого не сделали;
  • список всех установленных пакетов, которые доступны (в некоторой версии )из репозитория, который вы хотите удалить:

    aptitude search '~O"Node Source" ~i'
    
  • для каждого из возвращенных пакетов проверьте, какая версия установлена, и обратите внимание на те, которые установлены из репозитория, который вы хотите удалить:

    apt policy nodejs
    
  • удалить определение репозитория;

  • удалить пакеты, перечисленные выше.

Другим подходом было бы удалить репозиторий, а затем перечислить пакеты, которые больше не имеют совпадений в репозиториях, используяapt-show-versions:это перечислит такие пакеты как «Нет доступной версии в архиве» (пакеты, которые вообще отсутствуют в настроенных репозиториях )или пакеты «Новее версии в архиве» (, которые доступны в настроенных репозиториях, но в более старых версиях ); затем вы можете удалить и/или понизить соответствующие пакеты.

2
18.03.2021, 23:34

Теги

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