On Sun, Nov 01, 2009 at 03:40:26PM +0200, Jurij Bogaevs'kyj wrote: > Только что запустил обновление подключив p5 бранч. > Первым делом запустил update-kernel > И все бы ничего, но после завершения обновления ядра и его модулей > автоматически продолжилось обновление системы. При чем после уведомления > сколько чего поставится-снесется-замениться никто моего согласия не > спрашивал. В данный момент идет обновление... > Это теперь так и должно быть? > Часть лога в аттаче. [...] > update-kernel: kernel-headers-modules is installed, trying to update... > Reading Package Lists... Done > Building Dependency Tree... Done > The following extra packages will be installed: [...] > 197 upgraded, 63 newly installed, 22 replaced, 21 removed and 860 not upgraded. [...] Действительно, update-kernel, кроме пакетов с модулями ядра, пытается обновить и пакет с заголовками - в данном случае это kernel-headers-modules-std-def (но flavour (std-def) там не выводится). С одной стороны, это вроде бы правильно (если перед обновлением в системе были установлены файлы заголовков, необходимые для сборки модулей к установленному ядру, после обновления желательно сохранить возможность сборки модулей уже для нового ядра). С другой стороны, у пакетов kernel-headers-modules-* существенно больше зависимостей, чем у kernel-image-* и kernel-modules-* (как минимум, имеется зависимость на ту версию gcc, которой собиралось ядро, и на свежую glibc - из-за компонентов сборочной системы ядра), поэтому установка kernel-headers-modules-* в старую систему может потянуть за собой существенное количество новых пакетов. Кроме того, в скрипте update-kernel используются отдельные вызовы apt-get install для каждого устанавливаемого пакета (причём ошибки игнорируются - это необходимо, поскольку набор доступных пакетов kernel-modules-* может меняться), и, что самое неприятное, apt-get install вызывается с опцией -y - из-за этой опции и не запрашивается подтверждение. С другой стороны, без этой опции пришлось бы подтверждать установку каждого пакета с модулями (поскольку пакеты запрашиваются по именам предоставляемых ими Provides), что тоже никуда не годится. Более близким к оптимальному вариантов могла бы быть сборка единого списка пакетов для установки (с проверкой устанавливаемости пакетов, например, по apt-get install --print-uris; использовать -s нельзя - эта опция не работает) и последующий однократный запуск apt-get install с полученным списком без опции -y - чтобы требовалось только одно подтверждение для установки. Правда, в этом случае скрипт будет работать несколько дольше из-за лишнего анализа зависимостей при предварительных вызовах apt-get. Причём вызывать apt-get install --print-uris нужно не по каждому пакету отдельно, а добавляя очередной проверяемый пакет ко всему предыдущему списку - иначе окончательный список пакетов может оказаться неустанавливаемым из-за конфликтов между пакетами (и среди kernel-modules-* как раз встречались конфликтующие - например, разные варианты madwifi).