Я прочитал Что классифицирует приложение как «установленное» в Ubuntu? но это не касается следующей проблемы:
Когда я запускаю apt list --installed на Kubuntu 16.04, я вижу, что все мои перечисленные пакеты имеют [installed] или [installed,automatic]. Тем не менее, я вижу отчеты, в которых пользователи имеют несколько или даже большинство своих пакетов, которые описываются как [installed,local].
Является ли [installed,local] эквивалентом того, что диспетчер Synaptic Package описал бы как «локальный или устаревший», как описано в Что классифицирует приложение «установлено» в Ubuntu? ?
Проверка моей системы с помощью:
apt list --installed | awk -F/ '/local]/{print $1}' | xargs apt-cache policy
В каждом пакете, отмеченном local, установлена версия, недоступная в репозиториях. Например, я установил folly, используя checkinstall. В apt list --installed:
folly/now 57.0-1 amd64 [installed,local]
И для apt-cache policy:
folly:
Installed: 57.0-1
Candidate: 57.0-1
Version table:
*** 57.0-1 100
100 /var/lib/dpkg/status
Вы можете проверить это из источника. apt list вызывает функцию apt-private/private-list.cc DoList(), которая, в свою очередь, вызывает вызов apt-private/private-output.cc 's ListSingleVersion(), где вы можете видеть:
if (state.Upgradable() && state.CandidateVer != NULL)
strprintf(StatusStr, _("[installed,upgradable to: %s]"),
CandidateVerStr.c_str());
else if (V.Downloadable() == false)
StatusStr = _("[installed,local]");
else if(V.Automatic() == true && state.Garbage == true)
StatusStr = _("[installed,auto-removable]");
else if ((state.Flags & pkgCache::Flag::Auto) == pkgCache::Flag::Auto)
StatusStr = _("[installed,automatic]");
else
StatusStr = _("[installed]");
Проверка моей системы с помощью:
apt list --installed | awk -F/ '/local]/{print $1}' | xargs apt-cache policy
В каждом пакете, отмеченном local, установлена версия, недоступная в репозиториях. Например, я установил folly, используя checkinstall. В apt list --installed:
folly/now 57.0-1 amd64 [installed,local]
И для apt-cache policy:
folly:
Installed: 57.0-1
Candidate: 57.0-1
Version table:
*** 57.0-1 100
100 /var/lib/dpkg/status
Вы можете проверить это из источника. apt list вызывает функцию apt-private/private-list.cc DoList(), которая, в свою очередь, вызывает вызов apt-private/private-output.cc 's ListSingleVersion(), где вы можете видеть:
if (state.Upgradable() && state.CandidateVer != NULL)
strprintf(StatusStr, _("[installed,upgradable to: %s]"),
CandidateVerStr.c_str());
else if (V.Downloadable() == false)
StatusStr = _("[installed,local]");
else if(V.Automatic() == true && state.Garbage == true)
StatusStr = _("[installed,auto-removable]");
else if ((state.Flags & pkgCache::Flag::Auto) == pkgCache::Flag::Auto)
StatusStr = _("[installed,automatic]");
else
StatusStr = _("[installed]");
Проверка моей системы с помощью:
apt list --installed | awk -F/ '/local]/{print $1}' | xargs apt-cache policy
В каждом пакете, отмеченном local, установлена версия, недоступная в репозиториях. Например, я установил folly, используя checkinstall. В apt list --installed:
folly/now 57.0-1 amd64 [installed,local]
И для apt-cache policy:
folly:
Installed: 57.0-1
Candidate: 57.0-1
Version table:
*** 57.0-1 100
100 /var/lib/dpkg/status
Вы можете проверить это из источника. apt list вызывает функцию apt-private/private-list.cc DoList(), которая, в свою очередь, вызывает вызов apt-private/private-output.cc 's ListSingleVersion(), где вы можете видеть:
if (state.Upgradable() && state.CandidateVer != NULL)
strprintf(StatusStr, _("[installed,upgradable to: %s]"),
CandidateVerStr.c_str());
else if (V.Downloadable() == false)
StatusStr = _("[installed,local]");
else if(V.Automatic() == true && state.Garbage == true)
StatusStr = _("[installed,auto-removable]");
else if ((state.Flags & pkgCache::Flag::Auto) == pkgCache::Flag::Auto)
StatusStr = _("[installed,automatic]");
else
StatusStr = _("[installed]");