Вопрос или проблема
Я использую Debian Bullseye и хотел установить KeePassXC. Я попробовал выполнить sudo apt install keepassxc
, но оказалось, что KeePassXC не является частью релиза Bullseye. Я добавил строку для зеркала Sid в /etc/apt/sources.list
и затем выполнил sudo apt update
. Поняв, что это, вероятно, плохая идея, я прервал выполнение обновления (Ctrl-C), так как оно шло уже какое-то время и даже запрашивало 2 перезапуска программ. Затем я закомментировал строку в файле sources.list и снова выполнил sudo apt update
, по выходным данным которого не было обновлений. Я затем выполнил sudo apt autoremove
, который удалил 3 пакета.
Мое дерево зависимостей навсегда испорчено? Если я выполню sudo apt upgrade
, не подтянутся ли изменения из релиза Sid? Я не совсем понимаю разницу между обновлением и обновлением, так что это может быть несущественным вопросом.
Правка:
Вывод apt policy
:
Файлы пакетов:
100 /var/lib/dpkg/status
релиз a=now
500 http://httpredir.debian.org/debian stretch/non-free amd64 Пакеты
релиз v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=non-free,b=amd64
источник httpredir.debian.org
500 http://httpredir.debian.org/debian stretch/contrib amd64 Пакеты
релиз v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=contrib,b=amd64
источник httpredir.debian.org
500 http://httpredir.debian.org/debian stretch/main amd64 Пакеты
релиз v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=amd64
источник httpredir.debian.org
500 http://security.debian.org/debian-security stretch/updates/main amd64 Пакеты
релиз v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=main,b=amd64
источник security.debian.org
500 http://mirrors.ocf.berkeley.edu/debian stretch/main amd64 Пакеты
релиз v=9.13,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=amd64
источник mirrors.ocf.berkeley.edu
Закрепленные пакеты:
Я несколько удивлён, что apt update
запросил “2 перезапуска программ”.
apt update
получает информацию о репозиториях для всех репозиториев, настроенных в /etc/apt/sources.list
и файлах в /etc/apt/sources.list.d
. Это не приводит к обновлению каких-либо пакетов или перезапуску чего-либо и не запрашивает перезапуск.
apt upgrade
обновляет установленные пакеты системы так, чтобы они соответствовали наиболее доступным версиям, скорректированным в соответствии с “приоритетами закрепления”, если это необходимо (и с данным релизом, если он настроен, что является своего рода приоритетом закрепления).
Таким образом, apt update
самостоятельно, после добавления записей для Sid, только извлечет информацию о репозиториях, он не обновит ничего до Sid. Удаление записей Sid и повторный запуск apt update
приведет к тому, что информация о Sid будет забыта (или, точнее, больше не будет учитываться). Последующий apt upgrade
не будет знать о пакетах (и версиях) в Sid.
Ваша первоначальная проблема возникла из-за того, что вы не используете Bullseye, а используете Stretch. keepassxc
доступен в Bullseye и был доступен постоянно с тех пор, как существует Bullseye, но недоступен в Stretch.
В общем: если вы восстановили вашу конфигурацию /etc/apt/sources.list
до предыдущих значений и с тех пор выполнили apt update
, ничего не изменилось, и вы должны смочь установить keepassxc
без необходимости в репозиториях Sid.
Что касается отмены команды apt update
, вы никогда не сможете полностью отменить её, если у вас нет резервной копии /var/lib/apt/lists
, потому что информация из репозиториев, которые все еще настроены, была обновлена. Однако только репозитории, которые все еще настроены, когда-либо учитываются.
Ответ или решение
Как отменить команду apt update в Debian Bullseye
Введение
Вы столкнулись с ситуацией, когда внесли изменения в конфигурацию источников пакетов в Debian Bullseye с целью установки KeePassXC, но, в результате, возникли неопределенности и беспокойства о состоянии вашей системы. В данном ответе мы рассмотрим, как отменить изменения, связанные с командой apt update
, и что делать дальше.
Суть проблемы
Вы добавили строку для зеркала Sid в файл /etc/apt/sources.list
и выполнили команду sudo apt update
. Это привело к обновлению информации о пакетах, и в ходе этого процесса система запросила перезапуск некоторых программ. После этого вы закомментировали строку и снова выполнили sudo apt update
, который, как вы отметили, не показал никаких обновлений.
Понимание команд apt
Перед тем как углубляться в подробности, давайте разберемся в различиях между командами apt update
и apt upgrade
:
- apt update — эта команда обновляет локальную информацию о пакетах из всех активных источников, указанных в конфигурации. Она не устанавливает новые версии пакетов.
- apt upgrade — эта команда обновляет все установленные пакеты до последних доступных версий, основываясь на информации, полученной командой
apt update
.
Таким образом, выполнение команды apt update
само по себе не приводит к изменению установленных пакетов.
Как вернуть настройки
Если вы хотите вернуть систему в состояние перед добавлением репозитория Sid, выполните следующие шаги:
-
Проверьте файл sources.list: Убедитесь, что вы закомментировали (или удалили) строку, связанную с Sid. Проверьте, что в файле
/etc/apt/sources.list
остались только нужные репозитории для вашей версии (Bullseye или Stretch). -
Обновите список пакетов: Выполните команду:
sudo apt update
Это действие обновит информацию о пакетах только из тех источников, которые остались в списке.
-
Проверка состояния пакетов: Используйте команду:
apt policy
Это даст вам представление о текущих версиях пакетов и их источниках.
-
Проверка изменений: Если вы хотите убедиться, что никаких изменений не произошло, выполните:
apt list --upgradable
Если команда выводит пустой список, значит, нет доступных обновлений.
-
Установка KeePassXC: После того как вы удостоверитесь, что настройка возвращена к прежнему состоянию, можно без опасений установить KeePassXC, используя команду:
sudo apt install keepassxc
Дополнительные рекомендации
Если вы все еще испытываете беспокойство по поводу состояния зависимостей или удаленных пакетов, рекомендуется проверить следующие моменты:
-
Проверка зависимостей: Выполните команду:
sudo apt check
Это может помочь выявить любые проблемы с зависимостями между пакетами.
-
Изучение истории изменений: Для обратного отслеживания изменений пакетов можно воспользоваться командой:
grep "upgrade" /var/log/dpkg.log
Это даст вам информацию о том, какие пакеты были обновлены, если это произошло.
Заключение
Несмотря на переживания, связанные с использованием репозитория Sid, вы можете вернуть свою систему в стабильное состояние. Как только вы удостоверились, что настройки восстановлены и информация о репозиториях обновлена, ваша система должна функционировать корректно, и вы сможете установить необходимые пакеты, не переживая за стабильность.