Чи існує метод або команда, яка дозволяє визначити, з якого сховища надходить пакет?
Чи існує метод або команда, яка дозволяє визначити, з якого сховища надходить пакет?
Відповіді:
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
apt-cache policy <package name>
(від: superuser.com/a/236605/37279 )
trusty
джерела пакунків Ubuntu , то тимчасово додаю utopic
до мого sources.list
, щоб встановити версію 1.20ubuntu3 з, init-system-helpers
а потім знову видалити репо з мого sources.list
, apt-cache showpkg init-system-helpers
просто буде брехати про вихідний список пакетів і apt-cache policy init-system-helpers
просто вказати очевидне.
Використовуйте наступну команду. Він має кращий вихід:
apt-cache policy <Package Name>
Для Ubuntu 16.04 та пізніших версій існує коротший спосіб зробити це:
apt policy <Package Name>
apt-cache policy
див. Також superuser.com/a/236605/61370
apt-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 policy <package>
Або альтернатива з додатковою інформацією 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
комутатор, щоб побачити "додаткові записи" з інших джерел
На жаль, ця інформація не записується під час встановлення пакета. Ви можете зробити гідну здогадку, якщо сховище все ще знаходиться у списку джерел, а сховище все ще має пакет:
grep -l PKG /var/lib/apt/lists/*
Навіть синаптичний не може визначити, якщо ви вимкнете сховище та оновлення.