Планета 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

Репозиторий бинарных пакетов Calculate Linux преодолел отметку 5000 пакетов

Добавил(а) Alexander Tratsevskiy больше 2 лет назад

Количество бинарных пакетов в репозитории Calculate Linux превысило 5000 шт.

Поддержание бинарного репозитория решает сразу несколько задач:
  • Снижение процессорных издержек на компиляцию. Критично на слабых машинах на которых собирать тяжелые пакеты приходится длительное время.
  • Снижение дисковых требований на установку обновлений. Критично при обновлении систем загруженных с Live USB.
  • Скорость установки обновлений. Важно на нагруженных серверах, когда во время обновления могут некорректно работать службы. Именно поэтому по умолчанию Calculate Linux использует параллельный режим установки пакетов.
  • Разрешение зависимостей. При каждом обновлении бинарных пакетов приводится в соответствие флаги и маски, максимально упрощая установку обновления пользователям.

Обновление репозитория не происходит в автоматическом режиме, как это может показаться на первый взгляд. Часть пакетов размаскирована, часть использует преднастроенные USE флаги. Всё это нужно отслеживать чтобы в один прекрасный момент нестабильное обновление не откатило например версию Firefox с 50.0.1 до 45.5.0 или не привело к блокировке обновления.

Первые бинарные пакеты стали собираться после перевода дистрибутивов на непрерывный цикл обновления. Стали формироваться регулярные ночные сборки и вестись репозитории бинарных пакетов каждого дистрибутива. Пакеты учитывали особенности флагов и масок каждой сборки но включали только те пакеты, которые входили в образы. Чтобы решить эту проблему, был проведён анализ USE-флагов и сформированы два профиля - десктопный и серверный. Бинарные репозитории были объединены в три: десктопный, серверный и общий. С появлением в портежах поддержки единого репозитория, в котором несколько версий пакета собранных с разными USE-флагами разделяются суффиксом, Calculate Linux был переведён на использование единого репозитория. В таком репозитории прекрасно уживаются две версии пакетов собранные для десктопа и для сервера.

Были определённые сложности связанные с временем обновления портежей и репозиториев. Не смотря на то, что дистрибутив распространялся на десятке зеркал, использовать под репозитории бинарных пакетов можно было только одно-два зеркала - те, которые предоставляли доступ для загрузки обновлений внешним источникам. К счастью, эта проблема впоследствии была решена. В файле ini.env, расположенном в директории /grp зеркала стали вестись версии коммитов оверлеев calculate, distros и portage на момент обновления пакетов. Утилита обновления cl-update стала считывать этот файл с зеркала и обновлять портежи и оверлеи до заданных коммитов. Таким образом, системы получают обновления во многих случаях исключающие блокировки пакетов и имеющие в стабильных версиях пакетов бинарные обновления. Версионность позволила добавить дополнительный контроль при подготовке обновлений. Промежуточные зеркала при распространении обновлений играли роль тестовых зеркал. Так же была явно выделена ветка промежуточных обновлений.

Сборка дистрибутивов Calculate Linux так же была переведена на бинарные пакеты. Это позволило высвободить время на тестирование обновлений и, как результат, увеличить количество поддерживаемых сборок. Новый подход позволяет своевременно выпускать обновления ядер. Более того, сейчас, при желании вы можете размаскировать и установить самое свежее ядро из бинарного пакета.

Конечно есть и свои сложности в поддержке репозитория бинарных пакетов. Приходится тратить время на разрешение зависимостей пакетов, которые не входят ни в один дистрибутив. Некоторые пакеты собираются с «магическими зависимостями», когда пакет на этапе сборки связывается с библиотеками в системе, отсутствующими в зависимостях у ebuild-а. На просчёт зависимостей и сборку пакетов тратится больше времени и повышает требования к железу.

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

5000.jpg (23,41 КБ)


Комментарии

Comment

Добавил(а) B. X. больше 2 лет назад

Поздравляю! Пять тысяч - это уже немало, особенно учитывая, что некоторые отдельные дистрибутивы не имеют даже трёх тысяч.

Если принять во внимание, что в принципе доступна куча оверлеев, то на самом деле эти пять тысяч легко превращаются в 25...

Недавно искал каталогизатор для книг и внезапно(!) обнаружил в оверлеях MyRuLib. Казалось бы, все подобные программы (CoolReader и тд.) - это всё к Ubuntu, но нет и в Gentoo-сообществе есть люди, которым всё это интересно.

От себя хочу внести предложение по поиску и добавлению в репозитарий Calculate Linux программ русских и русскоязычных авторов. Сделать изюминку, своего рода. С одной стороны, Calculate Linux стремится к международному признанию (французские версии, добавление языков), а с другой было бы интересно видеть в нём что-то особенное, а что это может быть, если не такой репозитарий? Его можно было бы даже сделать отдельным (наряду с Distros и тд.)...

Спасибо!