среда, 10 июля 2013 г.

Знакомство с Gentoo. Часть 3. Допил системы и решение накопившихся проблем

Эта заметка является продолжением второй части моего знакомства с Gentoo.
По идее, после установки системы, иксов и WM, я должен был приступать к непосредственной настройке awesome и установке софта.
Однако, по пути я встретил много проблем, которые я решил, я думаю что их решение достойно отдельной заметки.

Значит, после того, как я все настроил во второй части, я перезагрузился и увидел, что awesome не запускается и я не могу установить большинство программ.
Я стал читать Gentoo Handbook, и гораздо больше узнал о portage и USE-флагах.

Первым делом, я решил изменить значение переменной USE в файле /etc/portage/make.conf:
USE="-kde -qt4 -qt3 -samba -acl -ldap -gnome perl smp threads webkit pam ssl gtk doc bash-completion dbus fontconfig python unicode alsa X"
Объясняю, для чего это.
Система portage позволяет компилировать каждый пакет исключительно под свою систему. Например, если вы используете gnome, то вам нет никакой нужды устанавливать KDE, а некоторые программы "тянут" подобные зависимости.
Для этого и нужна переменная USE. Она содержит в себе список флагов:
пример: USE="python -perl"
В данном случае мы указали, что если программа рекомендует установить какие-то зависимости/библиотеки перла, то они устанавливаться не будут (перед perl стоит знак минуса "-"), если программа рекомендует установить зависимости/библиотеки питона, они установятся.
Таким образом, по значению моей переменной USE можно увидеть, что я не хочу иметь что-либо связанное с kde, qt, samba, acl, ldap, gnome. Однако я хочу, чтобы приложение работали с perl, python, ssl, gtk и т.д.

Затем я решил обновить систему:
$ sudo emerge --sync
$ sudo emerge --update --ask --deep --with-bdeps=y --newuse world
где--sync - синхронизация дерева portage (обновление);
--update world - обновление мира (world);
--ask - спрашивать, перед тем, как обновляться;
--deep - разрешить зависимости;
--with-bdeps=y - обновлять зависимости;
--newuse - обновить с новыми значениями флага USE.

Однако при запуске второй команды ничего не обновилось, потому что были ошибки:
<пропущено>
[blocks b      ] <sys-apps/shadow-4.1.5-r1 ("<sys-apps/shadow-4.1.5-r1" is blocking sys-auth/pambase-20120417-r2)
<пропущено>

The following USE changes are necessary to proceed:
<пропущено>
# required by x11-drivers/xf86-input-mouse-1.8.1
=media-libs/mesa-9.1.2-r1 xa
# required by @world (argument)
=app-doc/doxygen-1.8.3.1 dot
# required by @world (argument)
>=app-text/docbook-sgml-utils-0.6.14-r1 jadetex
<пропущено>

Для того, чтобы их исправить нужно в файл /etc/portage/package.use добавить:
# vim /etc/portage/package.use
media-libs/mesa xa
app-doc/doxygen dot
app-text/docbook-sgml-utils jadetex
x11-libs/libdrm libkms

Выполнить команду:
$ sudo emerge --oneshot shadow

После этого, снова выполнить команду:
$ sudo emerge --update --ask --deep --with-bdeps=y --newuse world
Вышла такая надпись:
Would you like to merge these packages? [Yes/No]
Это значит, что все в порядке, можно пересобрать мир.

После того, как все это закончится (примерно целая ночь) выполним команды:
# emerge gentoolkit
# emerge --depclean
# revdep-rebuild
Установили пакет gentoolkit, почистили и устранили зависимости.

После всего этого дела я перезагрузился и увидел, что иксы не запускаются.
Ошибка типа:
device not found, screen not found.

Установил заново драйвера и добавил udev и dbus в автозагрузку:
$ sudo emerge media-libs/mesa
$ sudo emerge x11-base/xorg-drivers x11-drivers/xf86-input-tslib x11-drivers/xf86-input-evdev
$ sudo rc-update add udev boot
$ sudo rc-update add dbus boot

Сконфигурировал новый файл xorg'а:
$ sudo Xorg- configure
$ sudo mv /root/xorg.conf.new /etc/X11/xorg.conf
Иксы заработали, дело было в драйверах.

Запускаю awesome, теперь он не работает...
В логах что-то типа: theme.lua не найден.
Тут моя ошибка, неправильный путь к конфигу указал.
Сменил, все заработало.

После установки чего-либо, у меня появилось такое сообщение:
* IMPORTANT: 6 config files in '/etc' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files.
После того как я обновил систему, некоторые программы предлагают установить дефолтные настройки (ssh, vim и т.д.). У меня vim и ssh уже настроены, поэтому я хочу сохранить все свои настройки.
$ sudo etc-update

Затем установил terminator и consolekit:
$ sudo emerge terminator consolekit

И на всякий случай установил распакованное ядро, оказывается его не надо было удалять, ибо оно потом очень сильно пригождается:
$ sudo emerge gentoo-sources

Комментариев нет: