Почему пакеты, перечисленные как & ldquo; установлены & rdquo ;, & ldquo; установлены, автоматические & rdquo ;, или & ldquo; установлены, локальные & rdquo ;?

Я прочитал Что классифицирует приложение как «установленное» в Ubuntu? но это не касается следующей проблемы:

Когда я запускаю apt list --installed на Kubuntu 16.04, я вижу, что все мои перечисленные пакеты имеют [installed] или [installed,automatic]. Тем не менее, я вижу отчеты, в которых пользователи имеют несколько или даже большинство своих пакетов, которые описываются как [installed,local].

Является ли [installed,local] эквивалентом того, что диспетчер Synaptic Package описал бы как «локальный или устаревший», как описано в Что классифицирует приложение «установлено» в Ubuntu? ?

4
задан 18 October 2017 в 08:37

3 ответа

Проверка моей системы с помощью:

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]");
2
ответ дан 22 May 2018 в 17:26

Проверка моей системы с помощью:

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]");
2
ответ дан 18 July 2018 в 05:07

Проверка моей системы с помощью:

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]");
2
ответ дан 24 July 2018 в 18:15

Другие вопросы по тегам:

Похожие вопросы: