Планета 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 больше 6 лет назад

Многих пользователей Gentoo пугают шаблоны Calculate, постепенно со всех сторон берущие власть над системой. Почему же мы так активно начинаем их использовать?

Основных причин три:
  1. Требования к системе постоянно растут, при этом стандартные средства по управлению системой исчерпаны.
  2. Шаблоны используют единый формат, изучив который разобраться в их работе не составит труда.
  3. Шаблоны можно использовать для решения неограниченного числа задач.

Итак, что нового появилось в Calculate Linux 13.

1. Новый механизм формирования зависимостей состава пакетов дистрибутива

С одной стороны мы избавились от нелюбимых многими мета-пакетов, с другой стороны встал вопрос, как же теперь формируется world (/var/lib/portage/world). Если шаблонами, то становится ещё более непонятно. Это действительно так, потому что логика, реализуемая в шаблонах, может быть абсолютно любой. Шаблоны самодостаточны, чтобы строить свои сценарии настройки системы.

Мы перешли к формированию world при помощи шаблонов по следующим причинам:

  1. Мета-пакеты показали своё неудобство в использовании. Чтобы удалить один пакет из базового набора программ, нужно отключить мета-пакет при помощи USE-флага, после чего добавить в world те пакеты, которые нужно оставить. Это ужасно.
  2. Сеты удобнее описывать, но они не достаточно гибкие без поддержки USE-флагов. И главное, сеты обладают той же проблемой.
  3. До использования мета-пакетов был успешный опыт формирования шаблонами world-файла на этапе сборки системы.
  4. Шаблоны далеко продвинулись с тех пор. Появилось событие выполнения шаблонов при обновлении портежей (выполнение eix-sync).

Итак, в CL 13 world-файл формируется на этапе сборки системы и содержит номер версии подборки софта. Посмотреть номер версии вы можете в файле /etc/calculate/ini.env:

[update]
world = 3

Причиной использования мета-пакетов была возможность связывать пакеты программ в дистрибутиве так, чтобы всегда была возможность вносить изменения - добавлять, удалять или заменять софт. Эта особенность была сохранена. Используя событие обновления портежей, шаблоны вносят правки в world, добавляя, удаляя или меняя софт. Работать будет это с учётом выполненных пользователем изменений. К примеру, если вы удалите Audacious, вам уже не будет предложен другой проигрыватель аудио файлов.

Например обновление до 3-й версии удалит из world пакеты net-wireless/madwifi-ng и net-wireless/madwifi-ng-tools, замаскированные в портежах мантейнерами Gentoo. В этих пакетах уже нет надобности, т.к. драйвера были перенесены в ядро. Наличие замаскированных пакетов в world привело бы к неприятным блокировкам при обновлении системы.

Для восстановления оригинального world-файла, достаточно выполнить 'cl-update --rebuild-world'.

На момент написания статьи шаблоны работы с world хранятся в директории:

/var/lib/layman/calculate/profiles/templates/3.1/6_ac_update_sync/world

2. Новые шаблоны формирования основных приложений

На нижней панели рабочего стола вы видите подборку из основных программ. Эти приложения добавляются на панельку через desktop-файлы иконок, находящиеся в директории /usr/share/applications. К сожалению, частенько эти файлы переименовываются либо разработчиками программ, либо мантейнерами Gentoo. Бывают случаи, когда мы сами заменяем одно приложение на другое. Чтобы избежать исчезновения из панельки программы при очередном обновлении системы (не забывайте Calculate имеет непрерывный цикл обновления), были созданы дефолтные иконки приложений. Файлы приложений начинаются со слова calculate и содержат в имени тип приложения (например calculate-browser.desktop).

К выходу CL 13, мы переписали шаблоны настройки приложений.

Проблемы, которые удалось решить:

  • настройка дефолтного приложения в случае удаления текущего
  • настройка дефолтного приложения как приложения по умолчанию для открытия поддерживаемых форматов файлов.

Как и раньше, дефолтные приложения хранятся в /etc/calculate/ini.env, пример:

[desktop]
browser = chromium
mail = claws-mail
chat = xchat
...

Вы можете провести эксперимент. Установите Firefox, затем удалите Chromium. Для CLDX потребуется перезайти в сеанс. Вуаля, новая иконка красуется в нижней панели вместе с обновлением /usr/share/applications/mimeapps.list. Вся логика настройки описана в шаблонах, на момент написания статьи находящихся в директории:

/var/lib/layman/calculate/profiles/templates/3.1/2_ac_install_merge/Desktop

Сразу после выхода CLDX 13 в портежах появилась новая версия Terminal 0.6.0. Теперь это приложение не Terminal.desktop, а xfce4-terminal.desktop. Пакет также сменил своё название с x11-terms/terminal на x11-terms/xfce4-terminal (см. /usr/portage/profiles/updates/4Q-2012). Путь к файлу настроек приложения также изменился! Кто-нибудь заметил это? Если нет, значит шаблоны выполнили свою работу безупречно.

3. Ревизии системы

В Calculate Linux 13 было введено понятие ревизий. Номер ревизии системы можно увидеть в параметре 'rev' файла /etc/calculate/ini.env:

[update]
rev = 1

Ревизии обновляют систему до актуального состояния, внося точечные правки, столь необходимые для беспроблемного обновления системы от версии к версии. Ревизии пришли на смену шаблонам, завязанным на обновлении определённых мета-пакетов. Нумерация ревизий не привязана ни к релизам, ни к версиям сборки. Непосредственно перед выходом CL 13 была создана первая ревизия, устраняющая проблему привязки файла /usr/share/applications/mimeapps.list к пакету x11-base/xorg-server.

Этот файл удобен тем, что он связывает дефолтные приложения со своими типами файлов. Раньше этот файл создавался шаблоном во время установки пакета x11-base/xorg-server и закреплялся за ним в системе. Сейчас проработан целый механизм настройки ярлыков запуска и дефолтных программ. Переустановка этого пакета повлекла бы за собой удаление настроек. Ревизией мы удалили привязку файла настроек с пакетом.

На данный момент ревизии хранятся в директории:

/var/lib/layman/calculate/profiles/templates/3.1/6_ac_update_sync/revision

Выводы

Как вы могли заметить, многие настройки вынесены в /etc/calculate/ini.env. Этот файл, в отличие от находящегося в той же директории calculate.env, хранит не значения переменных, а настройки шаблонов. Шаблоны сами считывают и сохраняют свои настройки в этом файле. Таким образом, весь необходимый функционал в шаблонах присутствует. Любую логику вы можете построить сами, используя шаблоны Calculate.

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


Комментарии

Comment

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

А есть какой-нибудь GUI к шаблонам? Чтобы сразу всё централизованно управлялось? С какими-нибудь минимальными настройками, типа "вернуть всё как было"?

Просто если честно, я не совсем понимаю логику управления шаблонами. Что именно надо менять и главное "где", чтобы всё работало как мне захотелось?

Я понимаю, что если "знать", как это работает и какие настройки применяются, то всё просто... но как если не знаешь? Я вот даже не знаю с чего начать копать? Что делают шаблоны, что они должны делать? Из этой заметки я понял, что шаблоны могут многое, но ни названия файлов, ни примеры меня не просветили.

Даже что такое "шаблоны" я не совсем понял. То есть, я знаю что это слово значит вообще, но я не знаю, что оно значит в Calculate. В общем, хотелось бы узнать:

1) Что конкретно можно сделать с помощью шаблонов (желательно с простейшими примерами).
2) Где находятся все файлы шаблонов (которые на данный момент уже есть в системе) и что они делают.
3) Что такое шаблоны (понятно, что это файлы настройки системы, но как они работают?).
4) Аналоги шаблонов в других Gentoo (или не Gentoo) дистрибутивах.
5) Какова структура шаблонов (например, главные конфигурационные файлы этой системы есть или нет?).

многие настройки вынесены в /etc/calculate/ini.env.

вот например эта фраза прямо относится к пункту 5-му... она подразумевает, что мы знаем где остались все оставшиеся настройки шаблонов, которые не в ini.env, так вот, признаюсь, мне неизвестно где другие настройки... хотелось бы узнать, да неоткуда (или плохо искал?)...

В документации по шаблонам ( http://www.calculate-linux.ru/main/ru/calculate_utilities_templates ) вроде бы всё сказано, но опять же, на языке специалиста для специалистов. Подразумевается, что начальные знания по шаблонам пользователи уже получили и готовы их применять и им не хватает только знаний по отдельным функциям и правилам применения.

Comment

Добавил(а) Aleksandr P больше 6 лет назад

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

Comment

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

А есть какой-нибудь GUI к шаблонам?

GUI нет, т.к. это всё равно что делать GUI для Bash - довольно трудоёмкая задача.

С какими-нибудь минимальными настройками, типа "вернуть всё как было"?

Шаблоны пользователя находятся в директории /var/calculate/templates и(или) /var/calculate/remote/templates. Чтобы вернуть как было, достаточно удалить файлы из директории.

Просто если честно, я не совсем понимаю логику управления шаблонами. Что именно надо менять и главное "где", чтобы всё работало как мне захотелось?

Я тоже не знаю, что Вы хотите менять. Определите цель и задайте вопрос на специализированном форуме.

Я вот даже не знаю с чего начать копать? Что делают шаблоны, что они должны делать? Из этой заметки я понял, что шаблоны могут многое, но ни названия файлов, ни примеры меня не просветили.

Примеры я писал немного ранее, найти можно по тэгу templates. Информация могла немного устареть, но принцип станет понятен. Либо посмотреть на упомянутом форуме.

По поводу builder-а имеет смысл раскрыть его тему после миграции пакета calculate-builder на версию 3.1. В новой версии появится больше возможностей по встраиванию своих шаблонов.

Про описание понял, напишу.

Comment

Добавил(а) Aleksandr P больше 6 лет назад

ждем)))) описания.
так же ждем переезда builder на версию 3.1 - когда состоится переезд? есть хоть какие то сроки мировозренческие?

Comment

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

Впереди еще несколько задач, например cl-update. Похоже, что сейчас как никогда пользователям нужна утилита обновления, читающая лог emerge для выполнения необходимых действий, GNOME 3.6, обновление calckernel. Далее calculate-assemble и calculate-builder, чтобы закончить обновление утилит 2.2 и приступить к серверным. Как-то так.

Спасибо!