> Уточню, ещё раз: "пользуясь только БД о пакетах, уже имеющЕЙСЯ в системе".
> То есть, не дёргать каждый раз сервера фряки с "pkg rquery", а иметь в системе полную информацию обо всех пакетах
> каждый раз сервера фряки с "pkg rquery"*рукалицо*
Я этот бред^W фантазии здесь уже не первый раз вижу.
Предлагаю или спрашивать _нормальным_ тоном или хотя бы глянуть соотв. ман или док, как оно на самом деле работает, а не гадать по знакомым словам (видимо, "remote" в "remote query") и не строить предположения в меру своей фантазии.
https://www.freebsd.org/cgi/man.cgi?pkg-repository
> Package repositories used by the pkg(8) program consist of one or more
> collections of "package tarballs" together with package catalogues
> and optionally various other collected package metadata.
https://www.freebsd.org/cgi/man.cgi?query=pkg-rquery&sektion...
> -U, --no-repo-update
> Suppress the automatic update of the local copy of the repos-
> itory catalogue from remote. Automatic repository catalogue
> updates are only attempted when the effective UID of the
> process has write access to the package database. Otherwise
> they are silently ignored.
Разжевываю:
> pkg rquery – query information from remote repositories
> pkg query – query information for installed packages
Все каталоги существуют в виде sqlite баз, по умолчанию в /var/db/pkg
ls /var/db/pkg|grep sql
local.sqlite
repo-FreeBSD.sqlite
repo-local.sqlite
query - ищет в базе local.sqlite, в которой записаны установленные пакеты.
rquery - в остальных. То, что оно иногда "тормозит" и проверяет актуальность локальной базы, вполне описано в поведении и отключается (man pkg.conf -> REPO_AUTOUPDATE).