Планета Calculate

Облако тэгов

звуковые карты wi-fi udev news полезное работа mail swap abi_x86_32 KDE5 xsel серые листы winbind tracker ДНК cld cp1251 live-flash valve syslog QupZilla kvm cairo-dock автологин настройка цветов принтера freerdp mpg123 форматирование текста профиль пользователя bonding book dwm NetworkManager apvlv CLDG qemu rtorrent uptime rutorrent ati autologin ccze asus n10j press радио mailman BINHOST builder persistence icons bash CSS клавиатура kde5 cldg strategy benchmark zstd matrix форум lm_sensors screenshot alpha пресса feh tun slim maillist lighttpd шаблоны домашний сервер Gnome3 hdmi CSC remoteapp zswap networking flashplayer atom n270 Книги foto тема pam power KDE dhcpcd android textile bond Tor elogv многопоточная закачка asus x86 revision tint browser ati-drivers asterisk lirc vaio games desktop ups ускорение Xorg windows MultiTail instagram BugTracker cpu family mplayer реестр PowerTOP su ПО RT mencoder package unmasking установка net cl-builder vulnerability blog tint2 программист LXC qrencode сайт утилитки на Icon EFI plymouth ControlMaster calculate-access помощь день рождение LXD vps рассылка man LTE фидонет pre qupzilla db Calculate E17 wiki umd persistence-mode IRC mirrorselect aufs xfce оптимизация AMD bootchart cryptsetup pxe birthday obmenu доступ rdp LXQt emerge radeon pf-kernel udisks ntfs-3g xen grub openbox midori кодировка CP1251 настройка цветов сканера beta keyboard systemd-udevd Calculate package sound gcc handbook ini.env grc MATE kernel pwkl cds xpak командная строка firefox mate make.conf XZ kernek win7 acl jabber recordmydesktop windows 7 firmware tweaks autounmask ext4 minicom двойная загрузка nextcloud Matrix #calculatelinux linux tbn bug xmpp виртуализация benchmarking raid Firefox hibernate calculate2 w2k3 маршрутизатор gnome vpn support calculate-install-gui calculate utilities glx-dock CLC 4G calculate utils otter features profile Windows 7 Huawei new tools CDS dns dhcp настройка цветов фотоаппарата Calculate Linux Enlightenment сглаживание udisks-glue reader цветовой профиль icc фидо перенесено костыли распространение pdf cmc dropbox kde xfce pastebin twitter ssh шрифт authentication cls канал wget uksm LVM world мышка день программиста Midnight Commander lxc-desktop sudo kde nano calculate-sources templates temperature pitivi calculate 2.2 portage CMC xchat ПДУ howto muqss theme звук dvcs meta djvu cl-update-profile X linuxdcpp 1C postgresql apache fontconfig lcdfilter fonts шрифты DPI atheros9285 ratigan монитор экран разрешение CLDXE sony smplayer описание tuxonice flags optimization fonts bluetooth uefi openvpn VirtualBox nm-applet weechat 11.6 backdor qr-code alsa torrent tail forum интервью Audio utilities donation сеты monitoring распространение программ systemd Office security загрузчик dhcp binhost Скоростной алгоритм сжатия LZ4 TV GSC canto браузер CL14 xxkb участие USE samba screensaver MyRuLib lto distro xbmc keyexec python3 Снобизм stage luks pae UTF-8 оптимизация linux lautre дизайн energy saving plan репозиторий Summer Camp 3G курсор мыши dnscrypt install Calculate Utilities Библиотека shorewall gnome3 GPT steam производительность gentoo vlc p2p mp3 Plasma plugn ldap screencast icon w2k8 mc lvm Compose установка Icon в Calculate nexus repo git team CLDC Atheros XFCE cldm сборка из исходников openssh pulseaudio pgo помощь проекту CLDM liveusb ppp0 tap mouse vim перемещаемые профили cl-kernel iptables mirror android kde mtp livecd Gnome cpp livedvd установка linux e4rat calculate3 начало XMPP update caffeine binary code dns calculate linux antivirus free documentation calculate-install dmidecode kde и многопоточный звук codelite euse CLSK rip grub2 интернет unclutter freshplayerplugin hdd most openrc container release Либрусек acoola новости SSD bsa font iphone dconf btrfs E17 nut настройка цветов монитора план RSS безопасность ebuild ядро gnome 2 github ncurses markdown почта удаленная сеть qutim разработка xorg packages openldap udisks template calculate postfix ffmpeg ubuntu clementine глобальное меню загрузка CL17 CLSL EAPI 2 CLS обмен опытом E17 Calculate bridge telegram chromium OpenRC Timeless overlay libvirt создание подсветки синтаксиса bittorrent АТС nouveau network calculate-utils server developers вакансия ParaType facebook locale Desktop eudev DNA CCDX irc оптимизация ядра CDS настройка linux atheros calculate linux obconf automagic reestr pptp MidnightCommander cl-console-bg cl CLDX linux CLDL internet history objecticon видео blueman firewall layout Zen softraid CLD подсветка синтаксиса video python dmix debian localepurge google talk-plugin smart блог bash-completion кеширование proxy Icon Calculate USB Creator Calculate Linux Spamassassin брелок programming сервер Cinnamon unicode

Тестовые и стабильные обновления

Добавил(а) Alexander Tratsevskiy почти 3 года назад

language English

В Calculate Linux 14 и более ранних версиях все системы использовали одно зеркало бинарных обновлений. Пакеты на нём обновлялись одновременно с внесением изменений в master-ветку Git-репозитория портежей и оверлеев. Мало какое зеркало могло предложить возможность самостоятельно проводить на нём изменения, поэтому их было всего два (второе резервное). Это было слабое звено как по надёжности решения, так и по отсутствию механизмов тестирования бинарных пакетов. Пакеты можно было протестировать только на момент сборки без отсутствия доступа к бинарным пакетам, что сильно тормозило процесс.

В Calculate Linux 15 появилось важное нововведение - зеркала с обновлениями бинарных пакетов стали содержать тэги Git-репозитория, по которым стало возможным синхронизировать портежи и оверлеи для соответствия зеркалу. Это позволило задействовать все имеющиеся зеркала для выполнения обновления. Свежие версии пакетов попадают сперва на внутренний сервер, после чего загружаются на зеркала. Стало возмоным выполнять тестирования бинарных пакетов и даже делать ночные сборки систем ещё до того, как пакеты попадут на зеркала.

Тем не менее, такое решение выглядит не достаточно надёжным. Примером может служить казус с недавним обновлением ядра, в котором по умолчанию для сжатия модулей стала использоваться компрессия XZ. Так получилось, что в настройках 32-битного ядра не было поддержки этого алгоритма сжатия. На тестовых машинах везде стояла 64-битная версия системы и ошибка осталась незамеченной. Усугубило положение то, что при подтягивании версии портежей последовали обновления тяжёлых пакетов Chromium и LibreOffice. В итоге исправление ошибки затянулось. К счастью, утилита обновления никогда не удаляет текущее ядро и систему можно было загрузить используя предыдущее ядро.

В VK мы провели опрос среди пользователей с предложением ввести временную задержку на период стабилизации пакетов и получили неожиданный результат. Подавляющее большинство проголосовало за максимальный срок стабилизации. Опрос даже пришлось повторить, расширив временной интервал. Признаться определённого плана реализации на тот момент не было.

Рассмотрев различные варианты, мы остановились на простом и в то же время достаточно надёжном решении.

В качестве зеркала тестовых обновлений выступит ftp://ftp.calculate-linux.org/testing, переехавший на новый сервер в Санкт-Петербурге с достаточно хорошим каналом как на Россию, так и на Европу. Все обновления будут загружаться сперва на него. По прошествии суток с момента последнего обновления тестового зеркала оно будет синхронизироваться с главным зеркалом, с которого обновления будут поступать на остальные зеркала.

Процесс будет выглядеть следующим образом. В течение дня готовятся обновления на внутреннем ftp. Ночью они выгружаются на тестовое зеркало. Если в течение следующего дня не поступило сообщений об ошибках, обновление попадёт на зеркало. В противном случае период стабилизации продлится ещё на сутки с момента загрузки исправления и так до тех пор, пока будет выдержана пауза в сутки.

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

Для использования тестового зеркала обновлений, в новой версии программы обновления достаточно будет снять галочку с опции "Стабильные обновления", либо указав параметр --stable=off в утилите cl-update.

Помимо этого были внесены ещё некоторые незначительные изменения. В основные параметры вынесена опция сканирования зеркал для поиска наиболее подходящего сервера обновлений. Во время обновления всегда выводится серевер обновлений.

Следующим обновлением утилит мы планируем изменить механизм определения момента обновления зеркала, чтобы избежать использования зеркала в этот момент. В настоящее время для этого используется несколько ini.env файлов, размещённых в разных директориях бинарного репозитория, которые сверяются между собой. Подробнее об этом было описано здесь. Вместо этого, файл ini.env будет включать временные метки файлов Packages, по которым будут проверяться их соответствие.

stable_updates.png (22,04 КБ)

update_server.png (32,83 КБ)


Комментарии

Comment

Добавил(а) Виктор Кустов почти 3 года назад

здесь нет столько места, чтобы поставить 100500 заслуженных плюсов. это отлично!

Comment

Добавил(а) Иван Рымшо почти 3 года назад

Если в течение следующего дня не поступило сообщений об ошибках, обновление попадёт на зеркало.

Ну, тогда и Вас тоже с первым апреля поздравляю ))))
Шутка юмора зачод.

А если вдруг вышеотквоченное сказано всерьез - то тогда сразу понятна причина "стабильности" дистрибутива. У дебияна время перехода нового пакета из нестабильной ветки в тестируемую - в среднем 2-3 недели, из тестируемой в стабильную - может растянуться и до двух лет, если сильно повезет.

Comment

Добавил(а) Alexander Tratsevskiy почти 3 года назад

У дебияна время перехода нового пакета из нестабильной ветки в тестируемую - в среднем 2-3 недели, из тестируемой в стабильную - может растянуться и до двух лет, если сильно повезет.

Речь не о смене нестабильного состояния пакета в стабильный. Он принимается на уровне портежей за исключением размаскировок, без которых пакеты в принципе не поставить, например KDE5, а так же некоторого пользовательского софта.

Спасибо!