Как мне узнать, из какого репозитория поступает пакет?

Существует ли метод или команда, которые могут определить, из какого репозитория поступает пакет?

Используйте следующую команду. Он имеет лучшую производительность:

apt-cache policy <Package Name>

Для Ubuntu 16.04 и более поздних версий есть более короткий способ сделать это:

apt policy <Package Name>

Редактировать:

Проверьте сабы ответ. Выглядит немного проще!

Оригинал:

Необходимые команды:

  • dpkg -s <package> - позволяет вам найти версию, которую вы установили. (источник)
  • apt-cache showpkg <package> - покажет список доступных версий пакета. Для каждой версии будет указан исходный код пакета в виде имени индексного файла.

Если вы хотите найти исходный код пакета, который установлен в данный момент, вам понадобятся выходные данные dpkg -s <package>. В противном случае вы можете просто просмотреть последнюю версию, выведенную с помощью apt-cache showpkg <package>.

Пример:

$ dpkg -s lifereaPackage: lifereaStatus: install ok installedPriority: optionalSection: webInstalled-Size: 760Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>Architecture: i386Version: 1.6.2-1ubuntu6...$ apt-cache showpkg lifereaPackage: lifereaVersions: 1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages) Description Language:                  File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages                  MD5: 557b0b803b7ed864e6d14df4b02e3d261.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status) Description Language:                  File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages                  MD5: 557b0b803b7ed864e6d14df4b02e3d26...

Из первой команды я вижу, что установлена Liferea версии 1.6.2-1ubuntu6. Из второй команды я вижу, что эта версия указана в /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

Без особых усилий я могу сделать вывод, что исходная строка содержит archive.ubuntu.com, ubuntu, lucid, и main.

И, конечно же, мой /etc/apt/sources.list содержит следующую строку.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

apt в Ubuntu 16.04+

Рядом apt-cache policy, showpkg и show, теперь у нас есть более простой, с легко запоминающимися подкомандами: apt[1] [2] (не путайте с классическим apt-*):

apt policy <package> 

Или альтернативный вариант с дополнительной информацией apt show <package>, строка , начинающаяся с "ПОДХОДЯЩИЕ источники:".

Описание: Этот пакет предоставляет инструменты командной строки для поиска и управления, а также запроса информации о пакетах в качестве низкоуровневого доступа ко всем функциям библиотеки libapt-pkg. Это включает в себя:apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

Предупреждение: apt не имеет стабильного интерфейса CLI. Используйте с осторожностью в сценариях.

Основные команды из apt --help

Другие также легко запоминающиеся подкоманды:

  • apt list – список пакетов на основе имен пакетов

  • apt search – поиск в описаниях пакетов

  • apt show – показать детали упаковки

  • apt update – обновление списка доступных пакетов

  • apt install – установка пакетов

  • apt remove – удаление пакетов

  • apt purge – удаление пакетов и конфигурационные файлы:

    При удалении пакета удаляются все упакованные данные, но обычно остаются небольшие (измененные) файлы конфигурации пользователя на случай, если удаление произошло случайно. Простая отправка запроса на установку для случайно удаленного пакета в этом случае восстановит его прежнюю функцию. С другой стороны, вы можете избавиться от этих остатков, вызвав purge даже для уже удаленных пакетов. Обратите внимание, что это не влияет на какие-либо данные или конфигурацию, хранящиеся в вашем домашнем каталоге.

    К удалите остаточные пакеты:

    sudo apt purge $(dpkg -l | grep "^rc" | awk '{print $2}')
  • apt upgrade – обновите систему, установив / обновив пакеты

  • apt full-upgrade – обновите систему, удалив / установив / обновив пакеты

  • apt edit-sources – отредактируйте файл исходной информации

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

grep -l PKG /var/lib/apt/lists/*

Даже synaptic не может определить, отключаете ли вы репозиторий и обновляете.

sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

источник

Это двусмысленно. Вы имеете в виду: какие в настоящее время включенные репозитории предоставляют пакет с заданным именем или: какой репозиторий использовался для установки пакета с этим именем, который установлен в данный момент? (И то, и другое полезно. Я ищу последнее, а не первое.)

@ReinierPost Если вы знаете, какие включенные репозитории предоставляют пакет, вы можете определить, какой из них использовался, основываясь на версии пакета, предоставляемого каждым репозиторием. Если вы не уверены, какая версия установлена, запустите `dpkg -l <имя пакета> | awk '/^ii/{print $3}"