Там какая-либо команда должна перечислить “локальные” пакеты? как в Синаптическом GUI

Я раньше искал локальные пакеты, использующие Синаптический. Те пакеты, которые локально установлены, но не имеют никакого точного совпадения в текущих активных репозиториях. Поскольку это объяснено в этом сообщении: Что делает “локальный или устаревший” средний в Синаптическом.

Я нахожу, что функция, очень полезная когда дело доходит до отладки невстреченных зависимостей, выходит. В то время как я знаю, как получить список устаревших пакетов, я не мог найти путь к локальным пакетам.

Так, есть ли какая-либо эквивалентная командная строка, которая перечисляет все локальные пакеты?

Отметьте для объяснения идиом, которые я использовал.

  • пакет висячей строки: установленный автоматически как зависимость, затем зависимый был удален.
  • устаревший пакет: установленный, но никакой пакет с тем же (имя, архитектура) в репозитории.
  • локальный пакет: установленный, но никакой пакет с тем же (имя, архитектура, версия) в репозитории.

Таким образом, я не имею в виду всех установленных пакетов.

Тест

  1. Синаптический → Menu:Settings → Репозитории → Обновления: Включите Неподдерживаемые Обновления (бэкпорты) (Примечание: Я использую его в качестве примера PPA),
  2. Списки пакета перезагрузки
  3. Поиск debhelper, выберите его. Menu:Packages → Версия Силы...: Выберите и установите версию от бэкпортов (Обычно последняя версия)
  4. Menu:Settings → Репозитории → Обновления: Отключите Неподдерживаемые Обновления (бэкпорты) (Примечание: Я использую его в качестве примера PPA),
  5. Списки пакета перезагрузки

Сравните теперь между этими двумя списками:

  1. Синаптический Установленный → SideBar:Status → (локальный и устаревший)

    Synaptic - local & obsolete packages

  2. aptitude search '~o'

    user@user-vb:~$ aptitude search '~o'
    i A linux-headers-4.15.0-19                          - Header files related to Linux kernel version 4.15.0        
    i A linux-headers-4.15.0-19-generic                  - Linux kernel headers for version 4.15.0 on 64 bit x86 SMP  
    i A linux-image-4.15.0-19-generic                    - Signed kernel image generic                                
    i A linux-modules-4.15.0-19-generic                  - Linux kernel extra modules for version 4.15.0 on 64 bit x86
    i A linux-modules-extra-4.15.0-19-generic            - Linux kernel extra modules for version 4.15.0 on 64 bit x86
    user@user-vb:~$ 
    
0
задан 23 April 2020 в 19:06

4 ответа

Найдите установленные пакеты, который не происходит ни из какого source.list или не может быть загружен.

$ aptitude search \
  '?narrow(?or(!?origin(), ?obsolete), ?installed)'

Или краткая форма:

$ aptitude search '~S (!~O|~o)  ~i'
  • ?narrow(фильтр, шаблон)
    Выберите пакеты, который соответствует и фильтру и шаблону.
  • ?or(шаблон, шаблон)
    Соответствия любой из шаблонов или обоих.
  • ?origin(шаблон)
    Выберите пакеты с данным источником.
  • ?obsolete
    Соответствия установили пакеты, которые не могут быть загружены.
  • ?installed
    Выберите установленные пакеты.
  • ?not(шаблон) или !
    Выберите любой пакет, не соответствующий шаблону.
1
ответ дан 25 April 2020 в 10:41

apt list --installed пакеты маркировок как local способом это, кажется, соглашается с Вашим определением (см. мой ответ здесь). Вы могли отфильтровать только пакеты, так маркированные, спрашивают, grep, и т.д.:

apt list --installed | awk -F/ '/local]/{print $1}'

Вы могли также, вероятно, осуществить подобную проверку с помощью APT Python API.

2
ответ дан 25 April 2020 в 10:41

С apt-show-versions | grep -e 'No available version' -e 'newer than version' необходимо получить список пакетов:

  • без версии в любом repo.
  • или имейте старшую версию, чем та в repo.

Вероятно, необходимо установить его заранее с sudo apt install apt-show-versions

1
ответ дан 25 April 2020 в 10:41

Команда apt list --installed должен добиться цели.

-1
ответ дан 25 April 2020 в 10:41

Другие вопросы по тегам:

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