Для линукс как узнать репозиторий где находится данный пакет

Обновлено: 07.07.2024

Вы можете получить набор значков Sifr (очень похожий на набор Faenza, изображенный в другом ответе):

Гораздо проще, используя PPA, доступный для Ubuntu 14.04: [ ! d3]

Чтобы выбрать этот набор значков, перейдите к Tools > Options > LibreOffice > View, а затем выберите «Sifr» в раскрывающемся списке «Размер и стиль значка».

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

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

apt-cache policy хорош, но несколько раз вам нужно apt-cache showpkg сравнить суммы MD5 из пакета. См. Также debsums --changed – gavenkoa 9 December 2015 в 15:03 этот параметр policy является наиболее полезным при сравнении с sources.list – infinite-etcetera 26 January 2017 в 17:06 Это должен быть принятый ответ! @pabouk прав. Этот ответ более уместен для вопроса, чем принятый в настоящее время. – HEXcube 23 September 2017 в 16:07 Подобно @ pablo-bianchi, указанному в его ответе , можно использовать еще более простой apt policy <package-name>, начиная с 16.04LTS. Как только 14.04LTS станет EOL'd в 2018 году, этот ответ может быть отредактирован для использования новой команды. – HEXcube 23 September 2017 в 16:12

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

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

Помимо параметров apt-cache, таких как policy, showpkg и show, теперь мы имеем более простые, легко запоминаемые параметры, команду: [ f7] (не путайте с классикой apt-*):

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

[d4 ] Описание: Этот пакет предоставляет средства командной строки для поиска и управления, а также запросы информации о пакетах как низкоуровневый доступ ко всем функциям библиотеки 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 - отредактировать файл исходной информации

После установки пакета с помощью yum (с несколькими настроенными репозиториями), как я могу найти, из какого репозитория он был установлен?

Если я запустил yum info package-name (или yum list package-name ), я могу видеть только, что пакет «установлен».

С установленными yum-utils, repoquery предоставит запрашиваемую информацию (здесь «epel» является репозиторием).

Какую версию yum?

В текущей версии, если установленный пакет является той же версией, что и самая последняя, ​​доступная, тогда отображается репо, из которого она была установлено.

Если имеется более новый пакет, он будет показан отдельно, с новой версией, показывающей репо, из которого она доступна.

Приближаясь к концу, но (по крайней мере, на Fedora 15), можно использовать yumdb для подобных запросов:

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

Если все остальное не удается, вы можете вручную проверить yumdb. Он находится в /var /lib /yum /yumdb и содержит подробную информацию о каждом установленном пакете. Вас особенно интересует from_repo . Например, для пакета bind-utils :

Чтобы получить нужную информацию:

Более поздние версии предоставят еще больше данных; например, в EL 7 здесь хранится точное зеркало и URL-адрес, с которого был загружен пакет.

Расскажет вам поставщик и упаковщик

Если пакет был установлен недавно, вы можете посмотреть в /var /cache /yum.

Внутри этого каталога есть каталог для каждого репо, а в нем - каталог пакетов. Итак, вы бы сделали что-то вроде:

Однако кэш должен быть включен в файле /etc/yum.conf:

Обратите внимание, что yum clean [packages | all] очистит каталог кеша.

Если каталог кеша пуст, есть альтернативный способ. Информация, которая читается yum info [package] , поступает из /var /cache /yum /[repo] /primary.xml.gz

Вы можете просмотреть файл, введя:

Однако на машинах, где yum info [package] не отображается «From repo:», как указано «theotherreceive», это происходит потому, что он не находится в файле primary.xml, поэтому не будет способа получить эту информацию. Поэтому, если пакет находится в двух или более файлах primary.xml, вам необходимо будет определить приоритет репо для вашей системы.

Чтобы узнать, что установлено из repo epel: (Если вы работаете в Centos 5.5), обратите внимание, что если у вас нет репо с именем epel, он выплюнет все установленные вещи.

repoquery --repoid = epel -a | Установлен список xargs yum

На основе и ответа Swoogan
В RedHat и CentOS можно делать

Результаты должны выглядеть примерно так:

Где repository_name - это репозиторий, в котором ваш пакет может быть найден, и он, вероятно, был установлен из первого в списке (см. yum repolist)

Является ли эта информация захватываемой в любом месте? Пакет не имеет этой информации, и yum не заботится о том, чтобы найти пакет. Вы могли бы, вероятно, собрать его вместе, выяснив, какие у РЕПО есть пакет, а затем определить, какой из них имеет приоритет.

Не отличное решение, но я обнаружил, что доступный список yum покажет вам, где доступна самая современная версия каждого пакета, например:

список доступных yum | grep gstreamer

bluez-gstreamer.i386 Обновления 4.30-2.fc10
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free

Таким образом, вы можете сделать список yum, доступный на вашем пакете, а затем сравнить свою установленную версию с использованием установленного списка yum и иметь хорошее представление о том, какой репо он пришел, если версии совпадают.

Вы можете добавить флаг подробностей в «yum info»:

Репозиторий установки будет находиться в разделе «От репо».

Итак, я знаю, что это несколько старый вопрос, но он появляется в поиске Google того, что я искал.

Существует также метод получения уникального списка используемых репозиториев:

Здесь перечислены хранилища, на которых были установлены пакеты.

Самый простой и простой подход без установки каких-либо дополнительных инструментов, сглаживания или вывода посторонней информации - это просто:

В третьем столбце будет указан идентификатор репозитория, из которого был установлен пакет.

Это было упомянуто в комментарии к исходному вопросу с использованием grep, но это не обязательно. Вы можете просто передать имя пакета непосредственно в yum для фильтрации.

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

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

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

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

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

Пример:

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

Мак, спасибо за подробный ответ! К сожалению, это не помогает мне с моей первоначальной проблемой неудовлетворенных зависимостей :-( Я пытаюсь установить libqt4-opengl, и он говорит: Следующие пакеты имеют неудовлетворенные зависимости: libqt4-opengl: Depends: libqtcore4 (= 4: 4.6.2-0ubuntu5.1), но 4: 4.7.0

ppa1 + appmenu20100624 должен быть установлен Зависит от: libqtgui4 (= 4: 4.6.2-0ubuntu5.1), но 4: 4.7. 0

ppa1 + appmenu20100624 должен быть установлен

Из этого трудно понять, в чем проблема. Вы должны открыть новый вопрос, чтобы вы могли предоставить полную информацию. Если вы это сделаете, оставьте ссылку в комментарии. :-) У APT-кэша на самом деле показать , где установлен пакет был установлен с , или там , где она будет установлена с в то время он запрошен? Последний. Если я обычно использую trusty исходные коды пакетов Ubuntu , то временно добавлю их utopic в my sources.list для установки версии 1.20ubuntu3 of, init-system-helpers а затем снова удалю репозиторий из my sources.list , apt-cache showpkg init-system-helpers просто буду лежать в исходном списке пакетов и apt-cache policy init-system-helpers просто изложу очевидное.

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

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

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

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

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

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

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

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

  • apt list - список пакетов на основе имен пакетов
  • apt search - поиск в описаниях пакетов
  • apt show - показать детали пакета
  • apt update - обновить список доступных пакетов
  • apt install - установить пакеты
  • apt remove - удалить пакеты

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

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

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

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

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

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

Пример:

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

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

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

apt в Ubuntu 16.04+

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

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

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

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

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

  • apt list - список пакетов на основе имен пакетов
  • apt search - поиск в описаниях пакетов
  • apt show - показать детали пакета
  • apt update - обновить список доступных пакетов
  • apt install - установить пакеты
  • apt remove - удалить пакеты

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

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

apt upgrade - обновить систему путем установки/обновления пакетов

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

Читайте также: