Параметр APT::Cache-Limit игнорируется в конфигах, подключаемых ключём --apt-config= подробности: --------------------- $ cat /etc/apt/apt.conf /* * This is the main configuration file for the APT suite of tools, * see apt.conf(5) for details. */ // See apt-cdrom(8) for details. Acquire::CDROM::Copy "true"; Acquire::CDROM::mount "/media/cdrom"; APT::Cache-Limit "3355443"; RPM { Allow-Duplicated { // Old-style kernels. "^(NVIDIA_)?(kernel|alsa)[0-9]*(-adv|-linus)?($|-up|-smp|-secure|-custom|-enterprise|-BOOT|-tape|-aureal)"; // New-style kernels. "^kernel-(image|modules)-.*"; }; Hold { // Old-style kernels. "^(kernel|alsa)[0-9]+-source"; }; }; $ cat /media/repo/ALTLinux/hasherconf/Sisyphusi586.confDir::Etc::SourceList "/media/repo/ALTLinux-20101108/ALTLinux//hasherconf/Sisyphusi586.list"; Dir::Etc::SourceParts "/var/empty/"; APT::Cache-Limit "33554432"; $ cat /media/repo/ALTLinux-20101108/ALTLinux//hasherconf/Sisyphusi586.list #Local branch for ALT Linux Sisyphus rpm file:///media/repo/ALTLinux-20101108/ALTLinux//Sisyphus i586 classic rpm file:///media/repo/ALTLinux-20101108/ALTLinux//Sisyphus noarch classic rpm-src file:///media/repo/ALTLinux-20101108/ALTLinux//Sisyphus i586 classic $ repo=~/"tmp/HASHER"; sudo rm -fr "$repo"; mkdir -p "$repo"; gear --commit --hasher -- hsh --lazy-cleanup --build-args="--enable=debug" --target=i586 --apt-config=/media/repo/ALTLinux/hasherconf/Sisyphusi586.conf "$repo" E: Dynamic MMap ran out of room E: Dynamic MMap ran out of room E: При обработке font-manager (NewVersion1) возникла ошибка E: Ошибка с MergeList /home/user/tmp/HASHER/aptbox/var/lib/apt/lists/_media_repo_ALTLinux-20101108_ALTLinux__Sisyphus_i586_base_pkglist.classic E: Невозможно прочитать список пакетов или файл статуса. $ cat "$repo"/aptbox/etc/apt/apt.conf Dir::State "/home/user/tmp/HASHER/aptbox/var/lib/apt/"; Dir::Cache "/home/user/tmp/HASHER/aptbox/var/cache/apt/"; Dir::Etc::SourceList "/media/repo/ALTLinux-20101108/ALTLinux//hasherconf/Sisyphusi586.list"; Dir::Etc::SourceParts "/var/empty/"; APT::Cache-Limit "33554432"; Dir::Etc::SourceList "/home/user/tmp/HASHER/aptbox/etc/apt/sources.list"; RPM::RootDir "/home/user/tmp/HASHER/aptbox"; APT::Install::Virtual "true"; APT::Install::VirtualVersion "true"; APT::Architecture i586; ------------------------- В конфиге песочницы правильное значение! теперь меняю системный конфиг $ cat /etc/apt/apt.conf /* * This is the main configuration file for the APT suite of tools, * see apt.conf(5) for details. */ // See apt-cdrom(8) for details. Acquire::CDROM::Copy "true"; Acquire::CDROM::mount "/media/cdrom"; APT::Cache-Limit "33554432"; RPM { Allow-Duplicated { // Old-style kernels. "^(NVIDIA_)?(kernel|alsa)[0-9]*(-adv|-linus)?($|-up|-smp|-secure|-custom|-enterprise|-BOOT|-tape|-aureal)"; // New-style kernels. "^kernel-(image|modules)-.*"; }; Hold { // Old-style kernels. "^(kernel|alsa)[0-9]+-source"; }; }; И сборка проходит успешно! $ cat "$repo"/aptbox/etc/apt/apt.conf Dir::State "/home/user/tmp/HASHER/aptbox/var/lib/apt/"; Dir::Cache "/home/user/tmp/HASHER/aptbox/var/cache/apt/"; Dir::Etc::SourceList "/media/repo/ALTLinux-20101108/ALTLinux//hasherconf/Sisyphusi586.list"; Dir::Etc::SourceParts "/var/empty/"; APT::Cache-Limit "33554432"; Dir::Etc::SourceList "/home/user/tmp/HASHER/aptbox/etc/apt/sources.list"; RPM::RootDir "/home/user/tmp/HASHER/aptbox"; APT::Install::Virtual "true"; APT::Install::VirtualVersion "true"; APT::Architecture i586; А в песочнице прежний конфиг!
(In reply to comment #0) > Параметр APT::Cache-Limit игнорируется в конфигах, подключаемых ключём > --apt-config= Когда вы переопределяете системный apt.conf ключем --apt-config, то /etc/apt/apt.conf игнорируется полностью.
(В ответ на комментарий №1) > (In reply to comment #0) > > Параметр APT::Cache-Limit игнорируется в конфигах, подключаемых ключём > > --apt-config= > > Когда вы переопределяете системный apt.conf ключем --apt-config, то > /etc/apt/apt.conf игнорируется полностью. Тогда объясните мне, почему в указанном примере параметр APT::Cache-Limit игнорируется в /media/repo/ALTLinux/hasherconf/Sisyphusi586.conf, и побирается в /etc/apt/apt.conf ??
До выяснения подробностей приоткрываю
(In reply to comment #3) > До выяснения подробностей приоткрываю У нас так не принято делать. Баг открывают после выяснения подробностей, а не до этого.
В описании я привёл подробное описание ситуации, в которой HASHER генерировал ОДИНАКОВЫЙ конфиг для apt. Но ПОВЕДЕНИЕ программы в этих ситуациях РАЗЛИЧАЕТСЯ и приводит к ОШИБКЕ. Это доказывает, что apt-get на стадии update не использует конфиги из песочницы. Если такую работу программы вы считаете правильным, то расскажите: как я могу передавать параметры, в частности APT::Cache-Limit, через альтернативные конфигурационные файлы? Ответьте, пожалуйста, на вопрос в комментарии #2.
(In reply to comment #1) > (In reply to comment #0) > > Параметр APT::Cache-Limit игнорируется в конфигах, подключаемых ключём > > --apt-config= > > Когда вы переопределяете системный apt.conf ключем --apt-config, то > /etc/apt/apt.conf игнорируется полностью. Впрочем, это зависит от содержимого передаваемого конфига. Лично я использую конфиг на основе примера /usr/share/doc/hasher-*/apt.conf в котором /etc/apt/apt.conf* игнорируются. У вас, судя по процитированному aptbox/etc/apt/apt.conf, системный конфиг продолжает использоваться.
(В ответ на комментарий №6) > > Когда вы переопределяете системный apt.conf ключем --apt-config, то > > /etc/apt/apt.conf игнорируется полностью. > > Впрочем, это зависит от содержимого передаваемого конфига. > Лично я использую конфиг на основе примера /usr/share/doc/hasher-*/apt.conf > в котором /etc/apt/apt.conf* игнорируются. У вас, судя по процитированному > aptbox/etc/apt/apt.conf, системный конфиг продолжает использоваться. Я, собственно, не возражаю против использования системного конфига. Мне кажется, что параметры, подключаемые из альтернативного конфига обязаны заменить своими значениями, значения системного конфига. Во всяком случае, я ожидаю именно такого поведения. Или есть табу на изменение каких-то параметров? и они специально не перезаписываются. Во всяком случае, конфиг в песочнице ("$repo"/aptbox/etc/apt/apt.conf) полностью соответствует моим представлениям о том как это должно работать и мне очень удивительно видеть действия программы, отличающихся от заданных. Я могу только предположить, что вы запускаете apt-get update до переключения в песочницу. Тогда apt-get update действительно будет подхватывать системные настройки и не замечать альтернативных. Вечером проверю ваши рекомендации по /usr/share/doc/hasher-*/apt.conf. Сейчас у меня нет с собой репозиториев.
Проверил. добавление строчек Dir::Etc::main "/dev/null"; Dir::Etc::parts "/var/empty"; проблему решает. Собственно, на проблему влияет параметр Dir::Etc::main "/dev/null"; Я не считаю это решением проблемы, по соображениям, указанным в Комментарий #7.
(In reply to comment #8) > Проверил. добавление строчек > > Dir::Etc::main "/dev/null"; > Dir::Etc::parts "/var/empty"; > > проблему решает. Собственно, на проблему влияет параметр Dir::Etc::main > "/dev/null"; > Я не считаю это решением проблемы, по соображениям, указанным в Комментарий #7. Переменная APT_CONFIG, с помощью которой hasher передает apt'у свой aptbox/etc/apt/apt.conf, по умолчанию не отменяет действие системных /etc/apt/apt.conf и /etc/apt/apt.conf.d/*, в которых могут находится конфликтующие параметры, как в вашем случае.
А какое отношение это имеет к ошибке? альтернативный конфиг должен перезаписывать настройки, которые в нём указаны. Это, Дмитрий, как временный знак на дороге, который отменяет действия постоянных и предписывает что нужно делать. Я же вам сообщил в комментарии #7, что я не возражаю против применения системных конфигов. Конфликтующие параметры должны перезаписываться альтернативным конфигом. Или вы считаете, что это уже бага apt?
(In reply to comment #10) > А какое отношение это имеет к ошибке? альтернативный конфиг должен > перезаписывать настройки, которые в нём указаны. Это, Дмитрий, как временный > знак на дороге, который отменяет действия постоянных и предписывает что нужно > делать. Это не альтернативный конфиг, это конфиг, который apt будет загружать первым. > Я же вам сообщил в комментарии #7, что я не возражаю против применения > системных конфигов. Конфликтующие параметры должны перезаписываться > альтернативным конфигом. > Или вы считаете, что это уже бага apt? apt просто читает конфиги один за другим и перезаписывает старые значения повторно встреченных параметров новыми значениями.
(В ответ на комментарий №11) > (In reply to comment #10) > > А какое отношение это имеет к ошибке? альтернативный конфиг должен > > перезаписывать настройки, которые в нём указаны. Это, Дмитрий, как временный > > знак на дороге, который отменяет действия постоянных и предписывает что нужно > > делать. > > Это не альтернативный конфиг, это конфиг, который apt будет загружать первым. Получается, что мне нужно чтобы он загружался последним. Не понятно как тогда происходит подмена параметров, которые показывают место нужного мне репозитория. Они тогда должны всегда оказываться системными. На практике такого не происходит. > > > Я же вам сообщил в комментарии #7, что я не возражаю против применения > > системных конфигов. Конфликтующие параметры должны перезаписываться > > альтернативным конфигом. > > Или вы считаете, что это уже бага apt? > > apt просто читает конфиги один за другим и перезаписывает старые значения > повторно встреченных параметров новыми значениями. Я именно так и предполагаю работу apt