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


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


115
2017-10-20 20:43


происхождения


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


ответы:


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

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

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

Пример:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
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: 557b0b803b7ed864e6d14df4b02e3d26

1.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

85
2017-10-20 21:49



mac, спасибо за ваш подробный ответ! К сожалению, это не помогает мне с моей первоначальной проблемой неудовлетворенной проблемы зависимости :-( Я пытаюсь установить libqt4-opengl, и он говорит: Следующие пакеты имеют неудовлетворенные зависимости: libqt4-opengl: Зависит: libqtcore4 (= 4: 4.6.2-0ubuntu5.1), но 4: 4.7.0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 Должен быть установлен Зависит: libqtgui4 (= 4: 4.6.2-0ubuntu5.1), но 4: 4.7. 0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 должен быть установлен - dfme
С этим трудно понять, в чем проблема. Вы должны открыть новый вопрос, чтобы вы могли предоставить полную информацию. Если вы это сделаете, оставьте ссылку в комментарии. :-) - mac9416
apt-cache policy <package name> (из: superuser.com/a/236605/37279) - franzlorenzon
Действительно ли apt-cache {showpkg, policy} показывает, где установлен установленный пакет был установлен из, или только там, где будет установлен из в то время, когда он запрашивается? - Croad Langshan
Последний. Если я вообще использую Ubuntu trusty пакета, затем временно добавить utopic к моему sources.list для установки версии 1.20ubuntu3 init-system-helpers и затем снова удалите репо из моего sources.list, apt-cache showpkg init-system-helpers будет просто лежать о первоначальном списке пакетов и apt-cache policy init-system-helpers будет просто указывать очевидное. - blubberdiblub


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

apt-cache policy <Package Name>

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

apt policy <Package Name>

85
2017-09-20 06:21



Это правильный ответ! Команды в ответе mac9416 нуждаются в утомительной интерпретации + угадывании на основе их вывода. Для получения дополнительной информации о apt-cache policy смотрите также superuser.com/a/236605/61370 - pabouk
apt-cache policy хорошо, но несколько раз вам нужно apt-cache showpkg для сравнения сумм MD5 из пакета. Смотрите также debsums --changed - gavenkoa
это policy вариант является наиболее полезным при сравнении с sources.list - infinite-etcetera
Это должен быть принятый ответ! @pabouk прав. Этот ответ более уместен для вопроса, чем принятый в настоящее время. - HEXcube
Как @ pablo-bianchi указал в его ответ, еще более простой apt policy <package-name> может использоваться с 16.04LTS и далее. Как только 14.04LTS станет EOL'd в 2018 году, этот ответ может быть отредактирован для использования новой команды. - HEXcube


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

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

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


6
2017-10-20 21:37





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

источник


4
2017-10-20 21:29





apt на Ubuntu 16.04+

рядом apt-cache такие параметры, как policy, showpkg а также show, теперь у нас есть более простые, легко запоминаемые параметры, команда: apt (не путайте с классикой apt-*):

apt policy <package> 

или альтернатива с дополнительной информацией apt show <package>, строка, начинающаяся с «APT-Sources:».

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

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

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

  • list - список пакетов на основе имен пакетов
  • search - поиск в описаниях пакетов
  • show - показать информацию о пакете
  • update - обновить список доступных пакетов
  • install - устанавливать пакеты
  • remove - удалить пакеты
  • upgrade - обновить систему, установив / обновив пакеты
  • full-upgrade - обновить систему путем удаления / установки / обновления пакетов;
  • edit-sources - редактировать файл исходной информации;

2
2018-06-01 19:27



apt policy xxx похоже на apt-cache policy xxx, возможно, это должен был быть комментарий. Или хотя бы упомянуть, что apt show кажется, нуждается в -a переключиться на «дополнительные записи» из других источников - Xen2050


Это немного более точно:

apt-cache show <packagename> | grep "Version:"

Новейшая версия, как правило, устанавливается, если вы не установили apt-pinning или явно не установили определенную версию.


1
2018-03-15 06:02