Создание оболочки GNOME из исходного кода
(Последнее обновление контента: 11 февраля 2011 года, на основе официальное руководство, не стесняйтесь редактировать.)
0. Предупреждения/ошибки во время компиляции
GNOME Shell находится в стадии интенсивной разработки, и исходные тексты часто обновляются пару раз в день. Хотя приведенные ниже инструкции в целом должны работать, может случиться так, что для успешной компиляции потребуются некоторые хаки или это вообще невозможно.
Если у вас возникнут какие-либо проблемы, проверьте:
Текущие проблемы:
-
Необходимо удалить пару файлов в каталогах библиотеки, иначе компиляция завершится неудачей. При выполнении системных обновлений эти файлы могут возвращать: read этот для объяснения, почему необходимо удалить эти файлы и как предотвратить обновления для их повторной установки.
sudo rm -rf /usr/lib*/*.la
(Не беспокойтесь, это не повредит вашей системе!)
-
Прежде чем вы сможете запустить GNOME Shell, вам необходимо удалить файл после процесса сборки:
rm ~/gnome-shell/install/lib*/gtk-3.0/modules/libcanberra-gtk-module.so
1. Создание GNOME Shell
(Протестировано на 32-разрядной версии Ubuntu 10.10 и 64-разрядной версии Ubuntu 11.04 для разработки.)
Следующее позволит загрузить, скомпилировать и установить GNOME Shell в режиме песочницы, что означает, что это не коснется остальной части вашей системы!
-
Установка зависимостей:
sudo apt-get install curl dpkg-dev autopoint libedataserverui1.2-dev \libecal1.2-dev evolution-data-server-dev libcups2-dev libupower-glib-dev \libgnome-keyring-dev libxklavier-dev libvorbis-dev libltdl-dev \libgstreamer0.10-dev libcroco3-dev xserver-xephyr xulrunner-dev \python-dev libpam0g-dev mesa-utils mesa-common-dev libxml2-dev \libreadline5-dev libpulse-dev liborbit2-dev libgl1-mesa-dev libwnck-dev \libtiff4-dev libstartup-notification0-dev libpng12-dev libjpeg62-dev \libjasper-dev libgtop2-dev libgnome-desktop-dev libgnome-menu-dev \libffi-dev libexpat1-dev libdbus-glib-1-dev icon-naming-utils \gtk-doc-tools gnome-common git-core gettext flex bison automake cvs
-
Получить сценарий настройки GNOME Shell:
curl -O https://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh
-
Создайте инструмент сборки jhbuild
и загрузите конфигурационные файлы:
/bin/bash gnome-shell-build-setup.sh
-
Это приведет к установке jhbuild
к ~/bin
, который вам нужно добавить в свой PATH
-переменная:
. ~/.profile
[Необязательно]: Вы можете изменить несколько jhbuild
такие параметры, как путь для загрузки исходных текстов и т.д. с помощью редактирования файла ~/.jhbuildrc-custom
.
-
Запустите процесс сборки:
jhbuild build
>Это позволит (в настоящее время) скомпилировать 33 модуля. Выпейте чашечку кофе, вздремните - это займет некоторое время.
Как только вы увидите *** success *** [33/33]
с тобой покончено. Поздравляем, вы только что скомпилировали GNOME Shell!
2. Запуск GNOME Shell
-
Если вы используете Compiz, вам сначала нужно остановить его (запустив Metacity), иначе GNOME Shell не запустится:
metacity --replace &
-
Наконец, беги:
cd ~/gnome-shell/source/gnome-shell/src./gnome-shell --replace
Вот и все, надеюсь, теперь вы должны запускать GNOME Shell.
3. Сделать GNOME Shell оконным менеджером по умолчанию
В Ubuntu 10.10 вы можете просто заменить оконный менеджер сеанса GNOME, изменив ключ GConf:
-
Создайте локальный лаунчер .desktop для GNOME Shell:
ln -s ~/gnome-shell/install/share/applications/gnome-shell.desktop ~/.local/share/applications/gnome-shell.desktop
-
Затем измените оконный менеджер сеанса на GNOME Shell:
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-shell" -t string
-
Чтобы отменить изменение, выполните:
gconftool-2 -s /desktop/gnome/session/required_components/windowmanager "gnome-wm" -t string
В Ubuntu 11.04, изменив windowmanager ключ, похоже, не работает. Вместо этого вы можете добавить новый элемент сеанса, который вы можете выбрать на экране входа в систему GDM. Для этого вам нужно создать файл local .desktop, как указано выше, а затем создать два файла:
-
Файл сеанса: /usr/share/gnome-sessions/sessions/gnome-shell.session
:
[GNOME Session]Name=gnome-shellRequired=windowmanager;Required-windowmanager=gnome-shellDefaultApps=gnome-settings-daemon;
-
Элемент сеанса, указывающий на файл сеанса: /usr/share/xsessions/gnome-shell.desktop
:
[Desktop Entry]Name=GNOME ShellComment=This session logs you into UbuntuExec=gnome-session --session=gnome-shellTryExec=gnome-sessionIcon=Type=ApplicationX-Ubuntu-Gettext-Domain=gnome-session-2.0
Выйдите из системы, и вы сможете выбрать Оболочка ГНОМА как сеанс.
4. Обновление GNOME Shell
-
Бегущий
jhbuild build
следует обновить исходные тексты и перестроить то, что необходимо.
-
Если это не удается для модуля, например, вы получаете что-то вроде этого:
fatal: git-write-tree: error building treesCannot save the current index state*** Error during phase checkout of gdk-pixbuf: ########## Error running git stash save jhbuild-stash *** [7/33]
затем вы можете попытаться стереть текущий каталог модуля и начать с чистых источников, выбрав опцию 6:
[6] Go to phase "wipe directory and start over"
-
Если это не поможет, вы можете начать с нуля, запустив:
jhbuild build -afc
Все еще не компилируетесь? Затем проверьте места, упомянутые в 0.