Linux узнать репозиторий пакета

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

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

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

— позволяет найти версию, которую вы установили. ( источник )
apt-cache showpkg

— покажет список доступных версий пакета. Для каждой версии будет указан источник пакета в виде имени файла индекса.

Если вы хотите найти источник установленного пакета, вам понадобится вывод dpkg -s

. В противном случае вы можете просто посмотреть на новейшую версию вывода apt-cache showpkg

Пример:

Из первой команды видно, что установлена ​​версия 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 содержит следующую строку.

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

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

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

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

можно использовать еще более простой , начиная с 16.04LTS. Как только 14.04LTS станет EOL’d в 2018 году, этот ответ может быть отредактирован для использования более новой команды.

apt на Ubuntu 16.04+

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

Или альтернатива с дополнительной информацией apt show

, строка начинается с «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 — обновить систему путем установки / обновления пакетов

  • apt full-upgrade — обновить систему, удалив / установив / обновив пакеты
  • apt edit-sources — отредактируйте исходный файл информации
  • Источник

    Из какого репозитария установлен пакет

    Добрый день, ЛОР.

    Есть ли возможность для конкретного пакета определить средствами apt-get, aptitude или ещё чем-то:

    1) из какого репозитария установлен пакет?

    2) установлен ли он вообще из репозитария или поставлен руками через dpkg?

    Читайте также:  Windows installer properly registered and enabled

    Например, часть пакетов может присутствовать как в официальном репозитарии Debian, так и в deb-multimedia.

    в синаптике есть раздел «источники» или типа того

    1) из какого репозитария установлен пакет?

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

    2) установлен ли он вообще из репозитария или поставлен руками через dpkg?

    Он у меня даже не установлен, но если нет других способов, то гляну, спасибо.

    А из командных утилит никак?

    Первая команда ничего не знает о репозитариях вообще. Правда, в некоторых случаях можно догадаться по полю Maintainer. Ну да, у меня это работает для mc (там явно прописан Tataranovich), но для других пакетов может быть неочевидным.

    Во второй есть раздел Versions, да. Но там много буков.

    Вот третья — это, похоже, то, что нужно, спасибо.

    Тут ещё может что-то приглянуться.

    Вот третья — это, похоже, то, что нужно, спасибо.

    Она не отвечает на вопрос «из какого репозитория был установлен пакет?»

    Отвечает, помечено звёздочками.

    Версия помечена. Полный тред икспертов, ёптыть. Ни в базе dpkg, ни в дополнительных метаданных apt, нет и не было (потому что типа не нужно) места для записи репозитория из которого БЫЛ установлен пакет.

    Звёздочками apt-cache показывает установленную версию, а источников у неё может быть сколько угодно.

    Полный тред икспертов, ёптыть. Ни в базе dpkg, ни в дополнительных метаданных apt, нет и не было (потому что типа не нужно) места для записи репозитория из которого БЫЛ установлен пакет.

    hobbit

    На сколько я понял, оно смотрит где есть такой пакет, а не откуда установлен

    Присоединюсь к заявлению про «икспертов».

    Не совсем понял, чем madison лучше policy, поскольку первый выдаёт только список версий-кандидатов (правда, в более аккуратной форме), а второй — ещё и установленную версию.

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

    только угадать с различной вероятностью

    Подозреваю, что как правило, вероятность всё же близка к 100%.

    Кстати, для gcc у меня выдаётся:

    то есть прямой ссылки на репозитарий вообще нет. Это для всех пакетов из официального main, что ли, такое?

    Для сравнения, вывод по mc:

    Подозреваю, что как правило, вероятность всё же близка к 100%.

    Скорее всего да, но «почти» не считается. Можно худо-бедно подпереть эту ситуацию контрольными суммами пакетов.

    Это для всех пакетов из официального main, что ли, такое?

    Нет. Если единственный источник пакета — dpkg/status, то это означает, что он просто отсутствует в каких-либо известных apt репозиториях.

    что он просто отсутствует в каких-либо известных apt репозиториях.

    Странно, gcc я явно не слева ставил.

    Сейчас понял, что это связано с какими-то проблемами доступа к ftp://ftp.ru.debian.org. На него, кстати, и aptitude update ругается. (При этом в браузере почему-то этот ftp открывается нормально.) Заменил ru на de — обновление прошло успешно, и policy указываевает человеческий адрес.

    Извиняюсь, за офтопик — ru у кого-нибудь нормально работает? А то я думаю скоро на Jessie перелезать, хочу подобрать зеркало понадёжнее.

    Читайте также:  Astra linux редактирование файлов

    Извиняюсь, за офтопик — ru у кого-нибудь нормально работает?

    Ещё с год тому перевёл всё на de, помню зеркало лежало чуть ли не месяц, на что гугл выдавал схожие проблемы, до этого тоже возникали вопросы по скорости синхронизации. Какое-то время сидел на NSU зеркале, в конечном итоге понял, что de само то.

    Скорее всего да, но «почти» не считается.

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

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

    Есть два ст^Wкита:

    1) Пакеты ставятся только из репозиториев. Ручная установка с помощью dpkg -i — нештатная ситуация, которая не должна обрабатываться каким-то особым образом. Это к вопросу о локальной установке из топика. Установка из репозитория, к слову, это локальная установка из кэша apt. apt качает, dpkg ставит. Здесь нет места информации о происхождении пакета.

    2) Существует только один репозиторий, и это ftp://ftp.debian.org (точнее, FTP master, за ним стоящий), всё остальное — его зеркала.

    В таких условиях очевидно, что трекинг источника установки попросту лишён смысла. А вот в RPM (или только yum?) всё ровно наоборот.

    Источник

    Узнать из какого репозитория установлен пакет

    Собственно как сабж в дебианоподобных дистрах (конкретно maemo 5)?

    synaptic кажет, при сортировке по репозиториям

    Вроде эта информация вместе с пакетом не хранится. Можно попробовать сравнить версию с `apt-cache policy имя_пакета`.

    apt-cache policy даст эту инфу, да.

    Похоже на то, но не совсем. Оно для всех пакетов выдает

    а они ставились из

    собственно из какого именно мне и нужно узнать

    Берешь Packages из каждого репозитория и парсишь. Костыль, да.

    Видимо так, да. Спасибо.

    не. в маемо еще по каталогам разделено, а уже внутри них free и nonfree

    По идее если free и nonfree разные строчки в /etc/apt/sources.list

    То должно работать, хотя может я чего не допираю.

    ubuntu/dists считается стандартным путем для убунты. Он его всегда игнорирует в название репа и сам его определяет. а дальше там уже идут main, multiverse, etc.

    Дай сюда ради интереса вывод apt-cache policy

    Вот такая вот структура

    Как видишь main и non-free внутри lenny

    да я знаю. просто, как видишь, в маемо он игнорирует еще и директорию. там всякие extras, внутри которых free и non-free.

    Источник

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

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

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

    14 ответов

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

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

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

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

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

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

    Читайте также:  Отключение microsoft store windows 10

    Если все остальное не удается, вы можете вручную проверить 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 для фильтрации.

    Источник

    Оцените статью