Я пытаюсь найти способ получить список пакетов, которые больше не доступны в репозиториях, которые я включил. Эта рабочая станция прошла через несколько версий Ubuntu, и в нее были добавлены и удалены многие сторонние репозитории. Я хотел бы получить список программного обеспечения, которое у меня есть, из этих удаленных репозиториев, чтобы я мог очистить его или добавить обратно соответствующие репозитории.
19
apt-show-versions | grep "newer than version in archive"
Чтобы получить список приложений, которых нет в зарегистрированном репозитории или PPA, сделайте следующее:
Это должно вывести текст так:
Для меня это сработало и показало три приложения, которые я установил с использованием пакетов DEB, и которые были недоступны в Repo или PPA.
Помните, однако, что невозможно проверить все программы, только те, которые прошли
dpkg
. Например, некоторые приложения устанавливаются простым извлечением их в нужные папки, а другие используют отдельную корзину или скрипт установщика. Таким образом, лучший способ - это сохранить список приложений, установленных вами, любым другим способом, кроме APT.источник
dpkg
установленных пакетов. Одно исключение Это перечисляетskype-bin
, тогда какapt-cache policy skype-bin
ясно показывает каноническое партнерское репо. Я не уверен, что происходит. Многоархатный вопрос? Еще +1 заapt-show-versions
!Если у вас установлено приложение aptitude ,
или его краткая форма
Вот это пример вывода
Первый символ каждой строки указывает текущее состояние пакета. Наиболее распространенные состояния:
Второй символ указывает сохраненное действие, которое должно быть выполнено на пакете, если таковые имеются, в противном случае отображается пустое пространство. Наиболее распространенные действия:
Если третий символ A, пакет был автоматически установлен.
Полный список возможных состояний и флагов действий см. В разделе « Доступ к информации о пакете» в справочном руководстве aptitude.
источник
aptitude search ?obsolete
может работать в bash, но вы должны использоватьaptitude search '?obsolete'
Начиная с Ubuntu 19.10 также можно запускать
чтобы получить список устаревших пакетов.
Для любого релиза вы можете использовать следующую однострочную версию Bash:
Для этого не нужно устанавливать дополнительные пакеты, плюс это относительно быстро. При этом также будут найдены частично установленные пакеты (но не найдены те, в которых остались только файлы конфигурации; хотя их можно легко изменить). Примечание: это не заботится о том, какой архитектурой являются пакеты.
Если вы хотите включить пакеты с установленной версией, отличной от той, которая доступна в репозиториях, вы можете сделать одно из следующих:
Используйте современные подходы:
Еще один вариант - запустить
и прочитайте имена пакетов в разделе «Больше не скачивается:».
источник
Больше информации для расследования.
... ubuntu-support-status и apt-mark могут потребовать установки.
источник
sudo
сapt-mark showmanual
.ubuntu-support-status
перечисляет количество устаревших пакетов, но не имена пакетов.ubuntu-support-status --help
Там может быть более чистый способ, но из головы можно сделать
Очистите первые несколько строк
installed
файла: у него будут заголовки.Бонус, если кто-нибудь может исправить мою подсветку синтаксиса ...
источник
dpkg -l
для получения списка установленных пакетов, вы должны ограничить результаты строками со знаком «i» во втором столбце, поскольку dpkg также выведет список пакетов, которые не установлены (возможно, удалены, но не удалены) , Например, если вы измените свою первую команду,dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
она выдаст список пакетов, которые НЕ установлены. (но когда-то были)apt-cache search someinstalledpackage
вернет что-то, даже если пакет не доступен из репозитория, поэтому я не верю, что это сработает вообще.dpkg -l | grep '^.[^i]' | cut -f 3 -d ' '
также печатает некоторые строки заголовка.apt-cache search
для каждого пакета в отдельности.Как уже упоминалось, поиск apt-get не является хорошим методом проверки наличия пакета. Дополнительно я добавил все в одну строку:
источник
grep '^i'
man dpkg-query
для получения дополнительной информации.apt-cache show
do не подходит для проверки наличия пакета. Если вы отключите соответствующий репозиторий, и ни у одного другого включенного репозитория его нет, он все равно покажет пакет.