Gentoo: решение проблем

29 December 2009 #gentoo #tips

Так уж получается, что если вы опытный пользователь Gentoo, то и с проблемами вы почти не сталкиваетесь, просто потому, что уже знаете, как использовать и что использовать для выявления причин создавшейся ситуации и соответственно для вас решить проблему – совершенно ничего не значит. Просто потому что вы не даже не осознаете, что проблема была. Для вас это обычный рабочий процесс.

Однако если в Gentoo вы недавно, много вы просто не знаете, приходиться сталкиваться с некоторыми вещами, которые пока выходят за рамки вашего понимая. Что же делать? Тупо сидеть и “курить” маны? Глупо конечно и не продуктивно.

Система создана для того, чтобы с ее помощью работать с программным обеспечением, а не для того, чтобы разбираться с этой самой системой. Поэтому запомните два правила:

  1. поменьше экспериментов;
  2. при возникновении проблем не бойтесь обращаться к сообществу.

Именно эти два правила позволят вам решить большую часть проблем, с которыми вы можете столкнуться в Gentoo. Первое правило подразумевает, что не стоит излишне экспериментировать с системой, только ради самого эксперимента (не берем в расчет случаи, когда система ставиться только ради этого самого эксперимента).

А второе правило говорит о том, что сообщество в Gentoo очень дружелюбное и в большинстве случаев при обращении к нему вам помогут. Так же, если вы уже обладаете определенным опытом, не побрезгуйте, помогите другим людям в их вопросах!

Просто для примера. У меня вдруг появилась проблема, которая проявлялась как зависание системы при выключении компьютера на этапе отключения lvm2. При этом, что еще более странным было, lvm2 стояло, но не использовалось в системе и не было прописано в блоке запуска системы. Почему происходил запуск lvm2, и почему система не могла корректно завершить свою работу – большой вопрос! Обратился в русскоязычное  сообщество, которое расположено по адресу www.gentoo.ru/forum. Менее чем за сутки решение нашлось!

Достаточно было проверить обратные зависимости пакета lvm2, для этого используется команда:

$ equery d lvm2

Он мне выдал, что lvm2 установлен как зависимость для cryptsetup, аналогично проверил обратные зависимости для данного пакета:

$ equery d cryptsetup

На что получил зависимости данного пакета от hal и pmount, при этом рядом с каждым пакетом были описаны флаги, которые устанавливали нашу зависимость. В моем случае я получил два флага, это crypt и kernel_linux. Второй флаг является системным и отключению не подлежит, поэтому просто пересобираем наши пакеты hal и pmount с флагом -crypt, прописав предварительно данный use в файл /etc/portage/packages.use.

После чего просто удаляем cryptsetup и lvm2. Не забывая отследить, не нарушились ли зависимости с помощью команды:

$ revdep-rebuild

И соответственно:

$ emerge -auND world

Если все нормально, и удаленные пакеты не были установлены вновь, значит наша операция прошла успешно!