Есть ли метод или команда, которая может определить, из какого репозитория приходит пакет?
dpkg -s <package>
- позволяет найти версию, которую вы установили. ( source ) 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
и [+1110] [одна тысяча сто двадцать четыре].
И, конечно же, мой /etc/apt/sources.list
содержит следующую строку.
deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
К сожалению, эта информация не записывается во время установки пакета. Вы можете сделать приличное предположение, если хранилище все еще находится в списке источников, а хранилище все еще содержит пакет:
grep -l PKG /var/lib/apt/lists/*
Даже synaptic не может сказать, отключили ли вы хранилище и обновили его.
Это немного точнее:
apt-cache show <packagename> | grep "Version:"
Самую последнюю версию обычно устанавливают, если вы не установили apt-pinning или явно не установили конкретную версию.
sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"
Используйте следующую команду. Он имеет лучший результат:
apt-cache policy <Package Name>
Для Ubuntu 16.04 и более поздних версий есть более короткий способ сделать это:
apt policy <Package Name>
apt
на Ubuntu 16.04 +Около apt-cache policy
, showpkg
и show
, теперь у нас есть более простое с легким для запоминания подкоманд: apt
(не путайте с классиком apt-*
):
apt policy <package>
Или альтернатива с большим количеством информации apt show <package>
, строка, запускающаяся с "Источников APT":.
Описание: Этот пакет обеспечивает инструменты командной строки для поиска и управления, а также запросов информации о пакетах как низкоуровневый доступ ко всем функциям 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
– отредактируйте файл информации об источнике