Сборка xorg-server-1.9.3 из исходников или Закат Солнца вручную
Понадобилась мне самая свежая версия Xorg-сервера (зачем — в другом топике объясню, если всё получится). Даже если бы я пользовался установкой ПО из пакетов — всё равно пришлось бы собирать его вручную, так как пакетов нет пока в природе для основных дистрибутивов. Но я и так сборки из сорцов не чураюсь, а наоборот считаю ее единственно верным решением. Так что попотеть пришлось, но и результат есть.
В чём сложность этого процесса, в результате которого генерится порядка 120 Мб бинарного кода?
Xorg — это не какая-то отдельная программа или библиотека, а целая система. Так что скачать всё единым тарболом не получится. Для того, чтобы получить вчечатление о том, сколько всего входит в xorg, можно заглянуть сюда.
Честно говоря, первый раз я всё это выкачал (wget'ом, вестимо, не в ручную) и начал устанавливать по отдельности: сначала самое важное, а по мере того, как «важное» требовало удовлетворения зависимостей — мелкие тарболы. В конечном итоге xorg-сервер даже успешно сконфигурировался, но… не собрался.
Повертев его и так, и сяк, на манер героини басни Крылова «Мартышка и очки», решил, все-таки, обратиться к профессионалам. Написал в эхоконференцию Xorg, процитировав возникшую ошибку. В тот же день пришел ответ: «У Вас что-то не так с библиотекой pixman». Что с ней может быть не так? Версия старая, больше ничего. Скачал новую версию — она потребовала еще одну зависимость — udev не ниже 138. Обычно такие ситуации тянут за собой еще целую цепочку, но на этот раз больше ничего не понадобилось. Посмотреть что нужно для сборки xorg-server-1.9.3 можно здесь.
Теперь о том, как сэкономить время собирая сам Xorg. Тарболы этой системы можно разделить на группы:
1) Прототипы
2) Библиотеки
3) Шрифты
5) Драйвера
6) Сам сервер
Собирать лучше именно в указанной последовательности. Всё подряд качать не нужно. Для каждой из перечисленных групп есть список (искать здесь), который нужно скормить wget'у примерно следующим образом:
В результате в каталоге для сборки окажется несколько десятков тарболов с расширением *.bz2. Все их следует распаковать единым махом:
Затем разложить тарболы по подкаталогам в соответствии с вышеприведенным списком и собрать в нужной последовательности. Собирать тоже единым махом (перед сборкой оставить только каталоги, файлы переместить куда-нибудь или удалить):
Что всё это даст? Во-первых, прирост производительности в GUI-режиме. Он заметен невооруженным глазом. Во-вторых, последние версии xorg радикально перешли на конфигурирование с помощью udev, что дает больше гибкости в настройках. Именно для этого мне всё это и понадобилось.
Первый раз сборка у меня заняла несколько часов и закончилась неудачей. Сегодня же, после тщательной теоретической подготовки — 3 часа, включая написание этой статьи. Ну, а при клонировании на остальные 16 компьютеров будет затрачено не более 5 минут в расчете на одну машину: бинарный результат я сейчас упакую в lzm-модуль, который останется лишь распаковать на местах.
В чём сложность этого процесса, в результате которого генерится порядка 120 Мб бинарного кода?
Xorg — это не какая-то отдельная программа или библиотека, а целая система. Так что скачать всё единым тарболом не получится. Для того, чтобы получить вчечатление о том, сколько всего входит в xorg, можно заглянуть сюда.
Честно говоря, первый раз я всё это выкачал (wget'ом, вестимо, не в ручную) и начал устанавливать по отдельности: сначала самое важное, а по мере того, как «важное» требовало удовлетворения зависимостей — мелкие тарболы. В конечном итоге xorg-сервер даже успешно сконфигурировался, но… не собрался.
Повертев его и так, и сяк, на манер героини басни Крылова «Мартышка и очки», решил, все-таки, обратиться к профессионалам. Написал в эхоконференцию Xorg, процитировав возникшую ошибку. В тот же день пришел ответ: «У Вас что-то не так с библиотекой pixman». Что с ней может быть не так? Версия старая, больше ничего. Скачал новую версию — она потребовала еще одну зависимость — udev не ниже 138. Обычно такие ситуации тянут за собой еще целую цепочку, но на этот раз больше ничего не понадобилось. Посмотреть что нужно для сборки xorg-server-1.9.3 можно здесь.
Теперь о том, как сэкономить время собирая сам Xorg. Тарболы этой системы можно разделить на группы:
1) Прототипы
2) Библиотеки
3) Шрифты
5) Драйвера
6) Сам сервер
Собирать лучше именно в указанной последовательности. Всё подряд качать не нужно. Для каждой из перечисленных групп есть список (искать здесь), который нужно скормить wget'у примерно следующим образом:
wget -B http://xorg.freedesktop.org/releases/individual/lib/ -i lib-7.6-1.wget
В результате в каталоге для сборки окажется несколько десятков тарболов с расширением *.bz2. Все их следует распаковать единым махом:
ls -1 | grep bz2 | while read f ; do tar xvfj $f ; done
Затем разложить тарболы по подкаталогам в соответствии с вышеприведенным списком и собрать в нужной последовательности. Собирать тоже единым махом (перед сборкой оставить только каталоги, файлы переместить куда-нибудь или удалить):
ls -1 | while read d ; do cd $d ; ./configure --prefix=/usr ; make ; make install ; cd / ; done
Что всё это даст? Во-первых, прирост производительности в GUI-режиме. Он заметен невооруженным глазом. Во-вторых, последние версии xorg радикально перешли на конфигурирование с помощью udev, что дает больше гибкости в настройках. Именно для этого мне всё это и понадобилось.
Первый раз сборка у меня заняла несколько часов и закончилась неудачей. Сегодня же, после тщательной теоретической подготовки — 3 часа, включая написание этой статьи. Ну, а при клонировании на остальные 16 компьютеров будет затрачено не более 5 минут в расчете на одну машину: бинарный результат я сейчас упакую в lzm-модуль, который останется лишь распаковать на местах.
Комментарии (4)
RSS свернуть / развернутьSergei_T
Markony
Так за счет чего возросла производительность? Новая версия и оптимизированный под процессор код?
durman
yababay
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.