Дамп apt-config не возвращает информацию о кэше?

Из man apt.conf ,

Cache-Start, Cache-Grow, Cache-Limit
Начиная с версии 0.7.26 APT использует изменяемый размер файла кэша с отображением памяти для хранения доступной информации. Cache-Start действует как намек на размер cache будет увеличиваться до, следовательно, это объем памяти, который APT будет запрашивать при запуске. Значение по умолчанию - 20971520 байт (~ 20 МБ). Обратите внимание, что это количество места, которое должно быть доступно для APT; в противном случае он, скорее всего, выйдет из строя, поэтому для устройств с ограничением памяти это значение должно быть снижен, в то время как в системах с большим количеством настроенных источников его следует увеличить. Cache-Grow определяется в байтах со значением по умолчанию из 1048576 (~ 1 МБ)насколько будет увеличен размер кеша в случае, если пространства, определенного параметром Cache-Start, будет недостаточно. Это значение будет применено снова и снова пока либо кеш не станет достаточно большим, чтобы хранить всю информацию, либо размер кеша не достигнет предела кэша. В по умолчанию Cache-Limit - 0 что означает без ограничений. Если Cache-Grow установлен на 0, автоматический рост кеша отключен.

Если Cache-Limit предварительно установлен на ноль, это означает, что Cache-Limit будет неограниченным. И если вместе с ним Cache-Start и Cache-Grow тоже установлены на какие-то значения по умолчанию. Тогда почему не apt-config dump фиксирует эту информацию. Использование поиска ниже не дало результата.

$ apt-config dump | grep -E "Cache-Start|Cache-Grow|Cache-Limit"
1
задан 3 September 2020 в 01:12

1 ответ

Эти значения являются своего рода запасным вариантом, который устанавливается, когда нет нужной конфигурации. Если вы заглянете в исходный код:

apt-pkg/pkgcachegen.cc

map_filesize_t const MapStart = _config->FindI("APT::Cache-Start", 24*1024*1024);
map_filesize_t const MapGrow = _config->FindI("APT::Cache-Grow", 1*1024*1024);
map_filesize_t const MapLimit = _config->FindI("APT::Cache-Limit", 0);

FindI Ищет параметр в пространстве конфигурации, если его там нет, он устанавливает значение по умолчанию.

apt-pkg/contrib/configuration.h

int FindI(std::string const &Name,int const &Default = 0) 

И apt-config dump только выгружает пространство конфигурации. Ваша конфигурация должна быть там, чтобы отображаться в выводах, которых нет. И очевидно, что apt-config не может заглянуть в свои собственные двоичные файлы, чтобы узнать, каковы значения по умолчанию.


Вы можете сказать, что в дампе есть и другие строки, и я не могу найти никакого связанного с ними конфигурационного файла. как этот:

Binary::apt::APT::Cache::ShowDependencyType "1";

Опять же, если мы посмотрим на исходный код, мы обнаружим:

_config->CndSet("Binary::apt::APT::Cache::ShowDependencyType", true);

В данном случае этот настраивается. CndSet — условный набор. Он устанавливает некоторые конфигурации по умолчанию, не перезаписывая существующие.


Итак, здесь нужно помнить о двух вещах.

  1. Есть функция, которая ищет конфиг и, если не может найти, считает для него значение по умолчанию (Fallback).
  2. Есть еще одна функция, которая на самом деле манипулирует набором конфигураций, присваивая им некоторые значения.
1
ответ дан 2 September 2020 в 22:12

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

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