Журнал LinuxFormat - перейти на главную

LXF81:Elektra

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
м
м (викификация)
 
Строка 1: Строка 1:
__NOTOC__
+
== Что за штука… Elektra? ==
== Что за штука... Elektra? ==
+
''Решившие, что Elektra — подружка '''Грэма Моррисона''', ошибаются: подружка — Лоретта. А Elektra — название блестящей идеи, реализация которой сулит избавить мир Linux от проблем с конфигурацией.''
''Решившие, что Elektra – подружка '''Грэма Моррисона''', ошибаются: подружка – Лоретта. А Elektra – название блестящей идеи, реализация которой сулит избавить мир Linux от проблем с конфигурацией.''
+
  
=== У меня всего пара минут; короче – что такое Elektra? ===
+
; У меня всего пара минут; короче — что такое Elektra?
 
Elektra ставит целью заменить все файлы конфигурации
 
Elektra ставит целью заменить все файлы конфигурации
 
одной простой иерархической и однородной базой данных
 
одной простой иерархической и однородной базой данных
Строка 10: Строка 9:
 
всей системе, причем у каждого свой собственный формат. Не нужно будет целиком просматривать руководство, чтобы изменить одну опцию, как приходится делать
 
всей системе, причем у каждого свой собственный формат. Не нужно будет целиком просматривать руководство, чтобы изменить одну опцию, как приходится делать
 
сейчас. Разработчики проекта надеются, что Elektra станет
 
сейчас. Разработчики проекта надеются, что Elektra станет
главным репозитарием для хранения настроек – не только
+
главным репозитарием для хранения настроек — не только
 
пользовательских программ, но и всех важных системных
 
пользовательских программ, но и всех важных системных
 
файлов конфигурации.
 
файлов конфигурации.
===Разве раньше не пробовали этого делать? ===
+
; Разве раньше не пробовали этого делать?
Много раз. TUCS – The Unified Configuration System – ближе всех подошла к созданию простого интерфейса к обилию файлов конфигурации Linux, но исчезла без следа
+
Много раз. TUCS — The Unified Configuration System — ближе всех подошла к созданию простого интерфейса к обилию файлов конфигурации Linux, но исчезла без следа
 
много лет назад. Была также Linuxconf, графическая
 
много лет назад. Была также Linuxconf, графическая
 
оболочка для различных файлов, она все еще используется, но не является достаточной. По ряду причин ни одно
 
оболочка для различных файлов, она все еще используется, но не является достаточной. По ряду причин ни одно
Строка 22: Строка 21:
 
жизненно важно для новых пользователей. Им необходимо справляться с настройкой Linux-системы без прочтения справочной документации, способной переполнить
 
жизненно важно для новых пользователей. Им необходимо справляться с настройкой Linux-системы без прочтения справочной документации, способной переполнить
 
Британскую библиотеку.
 
Британскую библиотеку.
=== Откуда взялось столь претенциозное имя? ===
+
; Откуда взялось столь претенциозное имя?
 
Хороший вопрос. Быть может, у разработчиков «комплекс
 
Хороший вопрос. Быть может, у разработчиков «комплекс
 
Электры»… Ну, это шутка, мы и сами не знаем.
 
Электры»… Ну, это шутка, мы и сами не знаем.
=== Ведь комплекс Электры – это же термин Юнга? А замена ‘c’ на ‘k’ в названии не означает, что это один из проектов KDE? ===
+
; Ведь комплекс Электры — это же термин Юнга? А замена ‘c’ на ‘k’ в названии не означает, что это один из проектов KDE?
 
Либо да, либо же они фанаты Дженнифер Гарнер [Jennifer
 
Либо да, либо же они фанаты Дженнифер Гарнер [Jennifer
Garner]. Вообще-то, расслабьтесь – KDE использовать не
+
Garner]. Вообще-то, расслабьтесь — KDE использовать не
 
обязательно. Elektra работает на более низком уровне, чем любое рабочее окружение. Для успеха проекта
 
обязательно. Elektra работает на более низком уровне, чем любое рабочее окружение. Для успеха проекта
 
необходимо, чтобы реализация была как можно более
 
необходимо, чтобы реализация была как можно более
Строка 35: Строка 34:
 
Интерфейс позволяет просматривать и менять иерархию настроек системы. Можно экспортировать их в XML,
 
Интерфейс позволяет просматривать и менять иерархию настроек системы. Можно экспортировать их в XML,
 
чтобы поделиться настройками с другими пользователями.
 
чтобы поделиться настройками с другими пользователями.
Эти настройки обычно хранятся в виде пар ключ/значение – где ключ описывает кусок данных, например, Адрес
+
Эти настройки обычно хранятся в виде пар ключ/значение — где ключ описывает кусок данных, например, Адрес
 
электронной почты, а значение содержит строку (или
 
электронной почты, а значение содержит строку (или
 
данные какого-либо другого типа) с соответствующей
 
данные какого-либо другого типа) с соответствующей
 
информацией. Значения можно также модифицировать из
 
информацией. Значения можно также модифицировать из
 
командной строки.
 
командной строки.
=== Что-то знакомое… стойте, это ж вылитый реестр Windows!===
+
; Что-то знакомое… стойте, это ж вылитый реестр Windows!
Да, вы правы. Никуда не денешься – структура Elektra
+
Да, вы правы. Никуда не денешься — структура Elektra
 
весьма похожа на ненавистный реестр Windows, и использует похожую иерархию. Как вы, наверное, знаете, реестр
 
весьма похожа на ненавистный реестр Windows, и использует похожую иерархию. Как вы, наверное, знаете, реестр
 
Windows использует узлы для разделения различных
 
Windows использует узлы для разделения различных
 
ключей на подкатегории (также известные как подключи).
 
ключей на подкатегории (также известные как подключи).
Самые известные из узлов – HKEY_LOCAL_MACHINE и
+
Самые известные из узлов — HKEY_LOCAL_MACHINE и
 
HKEY_CURRENT_USER, описывающие соответственно системные и пользовательские настройки. Elektra приняла эту
 
HKEY_CURRENT_USER, описывающие соответственно системные и пользовательские настройки. Elektra приняла эту
 
идею на вооружение и сделала более читаемую иерархию
 
идею на вооружение и сделала более читаемую иерархию
Строка 52: Строка 51:
 
других пользователей системы в форме user:username
 
других пользователей системы в форме user:username
 
[пользователь:имя_пользователя].
 
[пользователь:имя_пользователя].
=== Что содержится внутри главных узлов?===
+
; Что содержится внутри главных узлов?
 
Развернув системный узел, вы обнаружите множество ветвей, эквивалентных сонмищу файлов конфигурации вашей
 
Развернув системный узел, вы обнаружите множество ветвей, эквивалентных сонмищу файлов конфигурации вашей
 
системы Linux. Например, узел Файловой системы, являющийся Elektra-эквивалентом /etc/fstab, отвечает за монтирование всех файловых систем. Точно так же узел Групп
 
системы Linux. Например, узел Файловой системы, являющийся Elektra-эквивалентом /etc/fstab, отвечает за монтирование всех файловых систем. Точно так же узел Групп
 
эквивалентен файлу /etc/groups. Однако есть и более
 
эквивалентен файлу /etc/groups. Однако есть и более
общие узлы – в частности, узел под названием Сеть, который содержит информацию всех файлов настроек, помогающих подключить ваш компьютер к сети. Системное программное обеспечение находится в своем узле sw. Здесь
+
общие узлы — в частности, узел под названием Сеть, который содержит информацию всех файлов настроек, помогающих подключить ваш компьютер к сети. Системное программное обеспечение находится в своем узле sw. Здесь
 
вы найдете настройки таких приложений, как X.org.
 
вы найдете настройки таких приложений, как X.org.
=== X.org? И нам не придется редактировать файл настроек, чтобы всего-навсего поменять разрешение экрана?===
+
; X.org? И нам не придется редактировать файл настроек, чтобы всего-навсего поменять разрешение экрана?
 
В этом вся идея, да. Фактически, разработчики Elektra
 
В этом вся идея, да. Фактически, разработчики Elektra
немало потрудились, чтобы X.org заработал с Elektra – это
+
немало потрудились, чтобы X.org заработал с Elektra — это
 
один из ярчайших примеров демонстрации работы идеи.
 
один из ярчайших примеров демонстрации работы идеи.
 
X.org был выбран потому, что встречается почти в каждом дистрибутиве Linux, а также потому, что использует
 
X.org был выбран потому, что встречается почти в каждом дистрибутиве Linux, а также потому, что использует
длинный и запутанный файл конфигурации – xorg.conf.
+
длинный и запутанный файл конфигурации — xorg.conf.
 
Разработчики Elektra написали заплатку к X.org, чтобы он
 
Разработчики Elektra написали заплатку к X.org, чтобы он
 
читал настройки из Elektra, а не из xorg.conf. Они называют это Электрафикацией.
 
читал настройки из Elektra, а не из xorg.conf. Они называют это Электрафикацией.
=== Значит, перевод приложения на Elektra – большой труд?===
+
; Значит, перевод приложения на Elektra — большой труд?
 
Разработчики надеются, что идея докажет свою жизнеспособность, и новые приложения будут сразу ориентироваться на Elektra. Тогда это будет не сложнее использования
 
Разработчики надеются, что идея докажет свою жизнеспособность, и новые приложения будут сразу ориентироваться на Elektra. Тогда это будет не сложнее использования
 
обычных файлов конфигурации. Но для зрелых проектов
 
обычных файлов конфигурации. Но для зрелых проектов
Строка 73: Строка 72:
 
файла конфигурации, создания для каждой опции записи
 
файла конфигурации, создания для каждой опции записи
 
в дереве, а также создания ключей с помощью лексического анализатора. Разработчики создали заплатку так, чтобы
 
в дереве, а также создания ключей с помощью лексического анализатора. Разработчики создали заплатку так, чтобы
она была на 100% совместима с другими версиями X.org –
+
она была на 100 % совместима с другими версиями X.org — если установки не могут быть найдены в Elektra, то будет
если установки не могут быть найдены в Elektra, то будет
+
 
прочтен оригинальный xorg.conf и произведено заполнение базы Elektra. Благодаря этому достигается определенная гибкость, на случай изменения формата xorg.conf.
 
прочтен оригинальный xorg.conf и произведено заполнение базы Elektra. Благодаря этому достигается определенная гибкость, на случай изменения формата xorg.conf.
=== Ладно, с X это работает, но будет ли оно работать с файлами, требуемыми во время загрузки?===
+
; Ладно, с X это работает, но будет ли оно работать с файлами, требуемыми во время загрузки?
 
Это важный пункт и главная причина, по которой Elektra
 
Это важный пункт и главная причина, по которой Elektra
 
проектировалась с минимум зависимостей и с возможностью работы на любой системе. Существует библиотека,
 
проектировалась с минимум зависимостей и с возможностью работы на любой системе. Существует библиотека,
Строка 82: Строка 80:
 
как она не зависит от сложных библиотек или сетевого
 
как она не зависит от сложных библиотек или сетевого
 
соединения, то может подключаться в процессе загрузки гораздо раньше, чем многие другие инструменты, и
 
соединения, то может подключаться в процессе загрузки гораздо раньше, чем многие другие инструменты, и
доступна даже из /sbin/init – процесса, порождающего все
+
доступна даже из /sbin/init — процесса, порождающего все
 
остальные процессы во время загрузки системы.
 
остальные процессы во время загрузки системы.
=== Как разработчики смогут добавлять поддержку Elektra?===
+
; Как разработчики смогут добавлять поддержку Elektra?
Разработчикам потребуется использовать API Elektra, чтобы модифицировать ключи базы данных – а не обращаться к демону, как, например, в Gnome Gconf. Для манипуляций с ключами и значениями базы данных разработчикам
+
Разработчикам потребуется использовать API Elektra, чтобы модифицировать ключи базы данных — а не обращаться к демону, как, например, в Gnome Gconf. Для манипуляций с ключами и значениями базы данных разработчикам
 
надо будет просто использовать API, написанный на языке С . Как мы уже уже говорили, для новых проектов это
 
надо будет просто использовать API, написанный на языке С . Как мы уже уже говорили, для новых проектов это
 
будет несложно осуществить. Доступ к самой базе данных
 
будет несложно осуществить. Доступ к самой базе данных
 
осуществляется через прикладную часть (back-end), а не
 
осуществляется через прикладную часть (back-end), а не
 
напрямую.
 
напрямую.
=== Прикладную часть?===
+
; Прикладную часть?
 
Это просто способ отделить API Elektra от способа
 
Это просто способ отделить API Elektra от способа
 
хранения данных. То есть если ваше приложение Elektraсовместимо, то вам нечего беспокоиться о способе хранения значений конфигурации или о том, как разрешаются
 
хранения данных. То есть если ваше приложение Elektraсовместимо, то вам нечего беспокоиться о способе хранения значений конфигурации или о том, как разрешаются
Строка 100: Строка 98:
 
файлы или базу данных Berkeley. Поддержки прикладных
 
файлы или базу данных Berkeley. Поддержки прикладных
 
частей с MySQL или Postgres пока что нет.
 
частей с MySQL или Postgres пока что нет.
 
+
; Можно ли сохранить в ней мои настройки Gnome и KDE?
===Можно ли сохранить в ней мои настройки Gnome и KDE?===
+
 
И Gnome, и KDE проделали долгий путь к созданию собственных приложений настройки, и Elektra задумана не
 
И Gnome, и KDE проделали долгий путь к созданию собственных приложений настройки, и Elektra задумана не
 
для соперничества с ними. А делать она будет следующее:
 
для соперничества с ними. А делать она будет следующее:
 
используя заплатку вроде той, что к X.org, предложит
 
используя заплатку вроде той, что к X.org, предложит
интерфейс к наиболее общим системным опциям, которыми пользуются и KDE и Gnome – например, смена разрешения экрана или добавление общего каталога Samba.
+
интерфейс к наиболее общим системным опциям, которыми пользуются и KDE и Gnome — например, смена разрешения экрана или добавление общего каталога Samba.
 
Elektra предоставит обоим рабочим средам более предсказуемый контроль над этими специфичными для каждого дистрибутива настройками, и, более того, позволит
 
Elektra предоставит обоим рабочим средам более предсказуемый контроль над этими специфичными для каждого дистрибутива настройками, и, более того, позволит
 
KDE получить доступ к изменениям, сделанным Gnome, и
 
KDE получить доступ к изменениям, сделанным Gnome, и
 
наоборот. Вот в чем соль!
 
наоборот. Вот в чем соль!
=== Вы как-то позабыли указать источник, где можно почерпнуть дополнительную информацию.===
+
; Вы как-то позабыли указать источник, где можно почерпнуть дополнительную информацию.
 
Вы правы. Побольше узнать об Elektra можно на сайте проекта [http://www.libElektra.org/ www.libElektra.org]
 
Вы правы. Побольше узнать об Elektra можно на сайте проекта [http://www.libElektra.org/ www.libElektra.org]

Текущая версия на 10:48, 19 июля 2008

[править] Что за штука… Elektra?

Решившие, что Elektra — подружка Грэма Моррисона, ошибаются: подружка — Лоретта. А Elektra — название блестящей идеи, реализация которой сулит избавить мир Linux от проблем с конфигурацией.

У меня всего пара минут; короче — что такое Elektra?

Elektra ставит целью заменить все файлы конфигурации одной простой иерархической и однородной базой данных для хранения всех настроек. Так будет лучше, потому что на данный момент файлы конфигурации разбросаны по всей системе, причем у каждого свой собственный формат. Не нужно будет целиком просматривать руководство, чтобы изменить одну опцию, как приходится делать сейчас. Разработчики проекта надеются, что Elektra станет главным репозитарием для хранения настроек — не только пользовательских программ, но и всех важных системных файлов конфигурации.

Разве раньше не пробовали этого делать?

Много раз. TUCS — The Unified Configuration System — ближе всех подошла к созданию простого интерфейса к обилию файлов конфигурации Linux, но исчезла без следа много лет назад. Была также Linuxconf, графическая оболочка для различных файлов, она все еще используется, но не является достаточной. По ряду причин ни одно решение не получило широкого распространения. Однако, раз уж каждый год провозглашается годом настольных Linux-систем, появление простой системы конфигурации жизненно важно для новых пользователей. Им необходимо справляться с настройкой Linux-системы без прочтения справочной документации, способной переполнить Британскую библиотеку.

Откуда взялось столь претенциозное имя?

Хороший вопрос. Быть может, у разработчиков «комплекс Электры»… Ну, это шутка, мы и сами не знаем.

Ведь комплекс Электры — это же термин Юнга? А замена ‘c’ на ‘k’ в названии не означает, что это один из проектов KDE?

Либо да, либо же они фанаты Дженнифер Гарнер [Jennifer Garner]. Вообще-то, расслабьтесь — KDE использовать не обязательно. Elektra работает на более низком уровне, чем любое рабочее окружение. Для успеха проекта необходимо, чтобы реализация была как можно более универсальной, работала на всевозможных дистрибутивах и была удобной для пользователя. Тем не менее, существует KDE-инструмент управления под названием KDBEedit, используемый для редактирования базы данных конфигурации. Интерфейс позволяет просматривать и менять иерархию настроек системы. Можно экспортировать их в XML, чтобы поделиться настройками с другими пользователями. Эти настройки обычно хранятся в виде пар ключ/значение — где ключ описывает кусок данных, например, Адрес электронной почты, а значение содержит строку (или данные какого-либо другого типа) с соответствующей информацией. Значения можно также модифицировать из командной строки.

Что-то знакомое… стойте, это ж вылитый реестр Windows!

Да, вы правы. Никуда не денешься — структура Elektra весьма похожа на ненавистный реестр Windows, и использует похожую иерархию. Как вы, наверное, знаете, реестр Windows использует узлы для разделения различных ключей на подкатегории (также известные как подключи). Самые известные из узлов — HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER, описывающие соответственно системные и пользовательские настройки. Elektra приняла эту идею на вооружение и сделала более читаемую иерархию ключей. На верхнем уровне находятся узел системы для хранения системных ключей, узел пользователя для ключей текущего пользователя и дополнительные узлы для других пользователей системы в форме user:username [пользователь:имя_пользователя].

Что содержится внутри главных узлов?

Развернув системный узел, вы обнаружите множество ветвей, эквивалентных сонмищу файлов конфигурации вашей системы Linux. Например, узел Файловой системы, являющийся Elektra-эквивалентом /etc/fstab, отвечает за монтирование всех файловых систем. Точно так же узел Групп эквивалентен файлу /etc/groups. Однако есть и более общие узлы — в частности, узел под названием Сеть, который содержит информацию всех файлов настроек, помогающих подключить ваш компьютер к сети. Системное программное обеспечение находится в своем узле sw. Здесь вы найдете настройки таких приложений, как X.org.

X.org? И нам не придется редактировать файл настроек, чтобы всего-навсего поменять разрешение экрана?

В этом вся идея, да. Фактически, разработчики Elektra немало потрудились, чтобы X.org заработал с Elektra — это один из ярчайших примеров демонстрации работы идеи. X.org был выбран потому, что встречается почти в каждом дистрибутиве Linux, а также потому, что использует длинный и запутанный файл конфигурации — xorg.conf. Разработчики Elektra написали заплатку к X.org, чтобы он читал настройки из Elektra, а не из xorg.conf. Они называют это Электрафикацией.

Значит, перевод приложения на Elektra — большой труд?

Разработчики надеются, что идея докажет свою жизнеспособность, и новые приложения будут сразу ориентироваться на Elektra. Тогда это будет не сложнее использования обычных файлов конфигурации. Но для зрелых проектов типа X.org могут потребоваться определенные усилия. Работа заплатки X.org начинается с проверки исходного файла конфигурации, создания для каждой опции записи в дереве, а также создания ключей с помощью лексического анализатора. Разработчики создали заплатку так, чтобы она была на 100 % совместима с другими версиями X.org — если установки не могут быть найдены в Elektra, то будет прочтен оригинальный xorg.conf и произведено заполнение базы Elektra. Благодаря этому достигается определенная гибкость, на случай изменения формата xorg.conf.

Ладно, с X это работает, но будет ли оно работать с файлами, требуемыми во время загрузки?

Это важный пункт и главная причина, по которой Elektra проектировалась с минимум зависимостей и с возможностью работы на любой системе. Существует библиотека, которая инкапсулирует все подробности ввода-вывода. Так как она не зависит от сложных библиотек или сетевого соединения, то может подключаться в процессе загрузки гораздо раньше, чем многие другие инструменты, и доступна даже из /sbin/init — процесса, порождающего все остальные процессы во время загрузки системы.

Как разработчики смогут добавлять поддержку Elektra?

Разработчикам потребуется использовать API Elektra, чтобы модифицировать ключи базы данных — а не обращаться к демону, как, например, в Gnome Gconf. Для манипуляций с ключами и значениями базы данных разработчикам надо будет просто использовать API, написанный на языке С . Как мы уже уже говорили, для новых проектов это будет несложно осуществить. Доступ к самой базе данных осуществляется через прикладную часть (back-end), а не напрямую.

Прикладную часть?

Это просто способ отделить API Elektra от способа хранения данных. То есть если ваше приложение Elektraсовместимо, то вам нечего беспокоиться о способе хранения значений конфигурации или о том, как разрешаются конфликты, когда несколько пользователей меняют значения одновременно. Этим займется прикладная часть, и некоторые реализации уже находятся в разработке. Самые простые используют файловую систему, в которой каждому ключу соответствует свой файл, а каждая ветвь в базе данных представляет собой каталог в файловой системе. Другие прикладные части используют обычные текстовые файлы или базу данных Berkeley. Поддержки прикладных частей с MySQL или Postgres пока что нет.

Можно ли сохранить в ней мои настройки Gnome и KDE?

И Gnome, и KDE проделали долгий путь к созданию собственных приложений настройки, и Elektra задумана не для соперничества с ними. А делать она будет следующее: используя заплатку вроде той, что к X.org, предложит интерфейс к наиболее общим системным опциям, которыми пользуются и KDE и Gnome — например, смена разрешения экрана или добавление общего каталога Samba. Elektra предоставит обоим рабочим средам более предсказуемый контроль над этими специфичными для каждого дистрибутива настройками, и, более того, позволит KDE получить доступ к изменениям, сделанным Gnome, и наоборот. Вот в чем соль!

Вы как-то позабыли указать источник, где можно почерпнуть дополнительную информацию.

Вы правы. Побольше узнать об Elektra можно на сайте проекта www.libElektra.org

Персональные инструменты
купить
подписаться
Яндекс.Метрика