![Как определить пакеты, связанные с мертвым исходным кодом в Debian?](https://rvso.com/image/1502917/%D0%9A%D0%B0%D0%BA%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%8B%2C%20%D1%81%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%81%20%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D1%8B%D0%BC%20%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D1%8B%D0%BC%20%D0%BA%D0%BE%D0%B4%D0%BE%D0%BC%20%D0%B2%20Debian%3F.png)
Я использую сборку Debian (Kwheezy, основанную на Wheezy + KDE), которая поставляется в комплекте со всеми видами дополнительных пакетов. Список источников apper включает в себя кучу посторонних. Дистрибутив становится устаревшим, и сопровождающий ушел; некоторые из источников apper больше не существуют. В один прекрасный день я стисну зубы и попробую обновиться, но я хотел бы хромать как можно дольше, потому что все надежно как скала.
В последнее время я время от времени получал сообщения от apper о том, что один из его источников недоступен. Я отключил эти источники, чтобы прекратить предупреждающие сообщения. Однако это означает, что любые пакеты, которые поддерживались из этого источника, больше не поддерживаются. Я хочу, по крайней мере, следить за проблемами безопасности или, возможно, найти другой источник (или удалить эти пакеты, если необходимо).
Как определить, какие пакеты в моей системе связаны с определенным источником (который больше не существует, поэтому я не могу перейти к источнику, чтобы посмотреть, какие пакеты он раньше содержал)?
решение1
Альтернативные процедуры с использованием менеджера пакетов
1) Используя графический менеджер пакетов Synaptic, вы можете найти список устаревших пакетов, нажав на"Положение дел"кнопку и выбрав«Установлено (локально или устаревшим)»
2) Из командной строки:
с использованием
aptitude
:apt-get install aptitude
aptitude search '~o'
С использованием
apt-show-version
:apt-get install apt-show-version
apt-show-versions | grep 'No available version'
Объяснение
Менеджер пакетов определяет «статус» пакета на основе репозиториев в своем списке (и того, за установку чего он отвечал; т. е. если пакет доступен в указанном репозитории, но вы установили его вручную откуда-то еще, менеджер пакетов не будет поддерживать его как «один из своих»).
Пакеты могут быть не включены ни в один из указанных репозиториев по нескольким причинам:
Пакет может быть больше не включен в репозиторий, или репозиторий больше не существует, в таком случае он считается «устаревшим».
Если вы установили пакет вручную (например, из загруженного tarball), хуки менеджера пакетов не будут созданы, а исходный код не будет добавлен в список репозиториев; пакет будет считаться «локально установленным».
Менеджер пакетов просто фокусируется на работе, которую он должен делать, он не различает причины, по которым пакет не находится в одном из указанных им репозиториев. Он может предоставить вам список того, что установлено, но не может поддерживаться,Установлено (локально или устаревшим), что и предусмотрено в приведенных выше инструкциях.
Он не ограничивается устаревшими пакетами, но предоставляет относительно короткий список. Включенные пакеты сгруппированы в алфавитном порядке, поэтому легко распознать и отличить то, что вы установили вручную.