Это неоднозначно. Вы имеете в виду: какие в настоящее время включенные репозитории предоставляют пакет с заданным именем или: какой репозиторий использовался для установки пакета с тем именем, которое установлено в данный момент? (Оба полезны. Я ищу последнее, а не первое.)
Reinier Post
Ответы:
112
Необходимые команды:
dpkg -s <package>- позволяет найти версию, которую вы установили. ( источник )
apt-cache showpkg <package>- покажет список доступных версий пакета. Для каждой версии будет указан источник пакета в виде имени файла индекса.
Если вы хотите найти источник установленного пакета, вам понадобится вывод dpkg -s <package>. В противном случае вы можете просто посмотреть на новейшую версию вывода apt-cache showpkg <package>.
Из первой команды видно, что установлена версия 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
Мак, спасибо за подробный ответ! К сожалению, это не помогает мне с моей первоначальной проблемой неудовлетворенных зависимостей :-( Я пытаюсь установить libqt4-opengl, и он говорит: Следующие пакеты имеют неудовлетворенные зависимости: libqt4-opengl: Depends: 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 20.10.10
Из этого трудно понять, в чем проблема. Вы должны открыть новый вопрос, чтобы вы могли предоставить полную информацию. Если вы это сделаете, оставьте ссылку в комментарии. :-)
У APT-кэша {showpkg, политики} на самом деле показать , где установлен пакет был установлен с , или там , где она будет установлена с в то время он запрошен?
Croad Langshan
1
Последний. Если я обычно использую 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просто изложу очевидное.
blubberdiblub
104
Используйте следующую команду. Это имеет лучший выход:
apt-cache policy <Package Name>
Для Ubuntu 16.04 и более поздних версий есть более короткий способ сделать это:
Это правильный ответ! Команды в ответе mac9416 нуждаются в утомительной интерпретации + угадывании на основе их вывода. Для получения дополнительной информации apt-cache policyсм. Также superuser.com/a/236605/61370
pabouk
3
apt-cache policyэто хорошо, но иногда вам нужно apt-cache showpkgсравнить суммы MD5 из пакета. Смотрите такжеdebsums --changed
gavenkoa
эта policyопция наиболее полезна при сравнении сsources.list
infinite-
Это должен быть принятый ответ! @pabouk прав. Этот ответ более актуален для вопроса, чем принятый в настоящее время.
HEXcube,
Как указал @ pablo-bianchi в своем ответе , apt policy <package-name>можно использовать еще более простой , начиная с 16.04LTS. Как только 14.04LTS станет EOL'd в 2018 году, этот ответ может быть отредактирован для использования более новой команды.
HEXcube,
9
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 upgrade - обновить систему путем установки / обновления пакетов
apt policy xxxкажется идентичным apt-cache policy xxx, возможно, это должен был быть комментарий. Или, по крайней мере, упомянуть, что, apt showкажется, нужен -aпереключатель, чтобы увидеть «дополнительные записи» из других источников
Xen2050
6
К сожалению, эта информация не записывается во время установки пакета. Вы можете сделать приличное предположение, если хранилище все еще находится в списке источников, а хранилище все еще содержит пакет:
grep -l PKG /var/lib/apt/lists/*
Даже Synaptic не может сказать, если вы отключите хранилище и обновите.
Ответы:
Необходимые команды:
dpkg -s <package>
- позволяет найти версию, которую вы установили. ( источник )apt-cache showpkg <package>
- покажет список доступных версий пакета. Для каждой версии будет указан источник пакета в виде имени файла индекса.Если вы хотите найти источник установленного пакета, вам понадобится вывод
dpkg -s <package>
. В противном случае вы можете просто посмотреть на новейшую версию выводаapt-cache showpkg <package>
.Пример:
Из первой команды видно, что установлена версия 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
содержит следующую строку.источник
apt-cache policy <package name>
(от: superuser.com/a/236605/37279 )trusty
исходные коды пакетов Ubuntu , то временно добавлю ихutopic
в mysources.list
для установки версии 1.20ubuntu3 of,init-system-helpers
а затем снова удалю репозиторий из mysources.list
,apt-cache showpkg init-system-helpers
просто буду лежать в исходном списке пакетов иapt-cache policy init-system-helpers
просто изложу очевидное.Используйте следующую команду. Это имеет лучший выход:
Для Ubuntu 16.04 и более поздних версий есть более короткий способ сделать это:
источник
apt-cache policy
см. Также superuser.com/a/236605/61370apt-cache policy
это хорошо, но иногда вам нужноapt-cache showpkg
сравнить суммы MD5 из пакета. Смотрите такжеdebsums --changed
policy
опция наиболее полезна при сравнении сsources.list
apt policy <package-name>
можно использовать еще более простой , начиная с 16.04LTS. Как только 14.04LTS станет EOL'd в 2018 году, этот ответ может быть отредактирован для использования более новой команды.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
- обновить систему путем установки / обновления пакетовapt full-upgrade
- обновить систему, удалив / установив / обновив пакетыapt edit-sources
- отредактируйте исходный файл информацииисточник
apt policy xxx
кажется идентичнымapt-cache policy xxx
, возможно, это должен был быть комментарий. Или, по крайней мере, упомянуть, что,apt show
кажется, нужен-a
переключатель, чтобы увидеть «дополнительные записи» из других источниковК сожалению, эта информация не записывается во время установки пакета. Вы можете сделать приличное предположение, если хранилище все еще находится в списке источников, а хранилище все еще содержит пакет:
Даже Synaptic не может сказать, если вы отключите хранилище и обновите.
источник
источник
источник
Это немного точнее:
Самая новая версия обычно устанавливается, если вы не установили apt-pinning или явно не установили конкретную версию.
источник