Здесь нет какого-то строго определённого плана действий, попробую набросать несколько советов. Неплохая идея сразу же проверить систему на бесхозные (ненужные) пакеты: # emerge -av --depclean. Также неплохая идея содержать систему в чистоте и после удаления пакетов подчищать за ними оставшиеся ненужные зависимости (всё тем же emerge -av --depclean). В конце в пункте 6 привожу листинг процесса, как он проходил у меня. 1. Обновить portage.
Этот шаг предстоит делать периодически (но не чаще чем раз в день). При этом обновляется дерево portage (добавляются новые пакеты, новые версии пакетов, удаляются старые).
# emerge --sync
Желающие экономить трафик, возможно захотят воспользоваться командой emerge-delta-webrsync из одноимённого пакета.
2. Пересобрать (обновить) system и мир.
При этом обновится большинство пакетов, уже установленных в системе (развёрнутых из stage3).
Сразу же смотрим какие USE-флаги используются пакетами, с помощью ufed в другой консоли включаем нужные, отключаем ненужные.
После обновления пакетов: # revdep-rebuild (входит в пакет gentoolkit) и потребуется обновить много конфигурационных (и не только) файлов: # dispath-conf (возможно входит в тот же gentoolkit) Внимание! Всегда обновляем внимательно, смотрим что удаляет и что добавляет, и решаем, нужно нам это или нет.
3. Настройки.
# reboot
Если при загрузке выводит: "Warning: the current /etc/modules.conf has not been automatically generated" выполняем: # update-modules force
Добавление ssh в автозагрузку: # rc-update add sshd default
Добавление мыши для консоли в автозагрузку: # nano /etc/conf.d/gpm #MOUSE=ps2 MOUSE=imps2 # rc-update add gpm default
Установка elogv для чтения информации, выводимой пакетами во время установки: # emerge elogv
Пакет для работы с portage: # emerge eix # update-eix
Управление частотой процессора, установка работы "по требованию" (для 2х-ядерного процессора с корректно настроенным ядром): # nano /etc/conf.d/local.start echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
Установка acpid: # emerge sys-power/acpid # rc-update add acpid default
Настройка звука (при работающих драйверах в ядре): # emerge media-sound/alsa-utils # rc-update add alsasound boot (будет сохранять регяторы громкости при выключении компьютера и восстанавливать при включении) # /etc/init.d/alsasound start # alsamixer (снять "mute", настроить громкость)
4. Создание обычного пользователя.
Первое правило: не работать по root'ом. Во-первых, глупая опечатка может порушить систему. Во-вторых, уязвимое ПО, запущенное под root'ом может повлиять на безопасность всей системы (актуально и для Windows ;)). Под root'ом рекомендуется работать через sudo и su.
Создаём пользователя: # useradd user -m -G users,audio,wheel Где: -m : создать home-директорию -G : включить пользователя в перечисленные группы (users, audio, wheel)
Задаём ему пароль: # passwd user
В /home появится папка с именем пользователя - его домашний каталог.
Второе правило: каждому пользователю - свой логин.
5. Полезная информация.
Некоторые ключи emerge. # emerge <пакет> -ключи -f - скачать все файлы, необходимые для установки пакета, но ничего не устанавливать. -fp - вывести на экран ссылки на файлы, которые необходимо скачать для установки пакета. -pv - просмотр плана установки пакета: какие будут использованы USE-флаги, какие пакеты будут ставиться по зависимостям. -pvt - тоже самое, только список пакетов будет отображен в виде дерева, в котором можно увидеть какой пакет от какого зависит. -pa - аналог pv, разница в том, что после вывода информации на экран, выдаётся запрос: начать установку - Yes/No? -C - удалить пакет из системы. -uDNvp - ключи для обновления мира - # emerge -uDNvp world
Про удаление пакетов. # emerge -C удаляет пакет, но не удаляет пакеты, установленные по зависимостям к данному пакету. Они останутся в системе бесполезным мусором (если от них не зависит какой-нибудь другой пакет). Проверить систему на бесхозные пакеты можно так: # emerge -av --depclean Проверить, нужен ли каждый пакет, список которых выведет emerge (зависит ли от него кто-нибудь) можно так: # equery d <пакет> Если он нужен, прописать его в world: # emerge -n <пакет>
Про USE-флаги. USE-флаги прописываются либо глобально в /etc/make.conf, либо для каждого пакета индивидуально в /etc/portage/package.use. Где их прописывать - дело ваше. Например, для mc необходима такая комбинация флагов: "-ncurses slang". Прописываем в package.use: # echo "app-misc/mc -ncurses slang" >> /etc/portage/package.use Для редактирования USE-флагов в make.conf используем ufed. Совсем необязательно пытаться сразу включить кучу, как вам может казаться, нужных флагов. Всему своё время: хотите поставить пакет, смотрите какие флаги пакетом могут использоваться, и решаете, что включать, а что нет. При включении какого-либо флага, к установке могут добавляться другие пакеты, тянущиеся по зависимости, и, в свою очередь, имеющие свой набор USE-флагов.
Про автозагрузку. Сюда мы добавляли при установке: поднятие сети, старт syslog'a, gpm. Это не аналог меню "Автозагрузка" в Windows. Это скорее старт сервисов при загрузке всей системы. В каждой графической среде (Gnome, KDE, xfce, etc...) автозагрузка программ реализуется по-своему. # rc-update -s - посмотреть список автозагрузки. rc-status - то же самое, кроме уровня "boot". # rc-update add <программа> <уровень загрузки> - добавление. # rc-update del <программа> <уровень загрузки> - удаление. Если не указан уровень, удаляется из всех, где присутствует.
6. Практический пример.
# emerge --sync
Сразу проверяю систему на бесхозные (ненужные) пакеты: # emerge -av --depclean Один пакет было предложено удалить, как не используемый никем (sys-libs/pwdb), удалил.
# emerge gentoolkit (сюда входит revdep-rebuild) # revdep-rebuild (проверка целостности всех библиотек) # emerge elogv (позволит прочитать сообщения после массовой установки пакетов)
Сразу хочу мышку в консоли: Настроить конфиг: # nano /etc/conf.d/gpm Запустить: # /etc/init.d/gpm start Прописать в автозагрузку: # rc-update add gpm default
Предстоит пересборка system и world, хочу посмотреть все USE-флаги: # emerge -epv world
На текущий момент USE-флаги в make.conf: USE="sse sse2 ssse3 -ipv6" Содержимое /etc/portage/package.use: # не нужно нам поддержку java (gcj) и gtk-шной морды для неё (gtk) sys-devel/gcc -gcj -gtk # по-умолчанию используется ncurses, думаю slang помешает app-editors/nano -slang -spell
* IMPORTANT: 1 config files in '/etc' need updating.
Обновление конфигов: # dispatch-conf
Список всех компиляторов: # gcc-config -l [1] i686-pc-linux-gnu-4.1.2 *
# source /etc/profile (по ходу установки это советуют сделать binutils и gcc) # elogv (посмотреть сообщения пакетов, к сожалению про "source /etc/profile" там ни слова, и как это побороть я не знаю)
Повторная пересборка с созданием бинарных пакетов (каталог packages должен быть пуст): # emerge linux-headers glibc binutils gcc-config gcc portage --oneshot -b
# source /etc/profile
Пересборка system с использованием уже собранных бинарных пакетов: # emerge -ebk system (97 пакетов)
* IMPORTANT: 16 config files in '/etc' need updating.
# dispatch-conf
Пересборка world: # emerge -ebk world (не понимаю, почему нельзя было выполнить это сразу, ведь system входит в world и будет опять пересобираться, разве что пакеты будут браться из бинарников, для ускорения процесса. Но не вижу смысла делать сначала emerge -e system, а следом emerge -e world)
* IMPORTANT: 1 config files in '/etc' need updating.
Управление частотой процессора, установка работы "по требованию": # nano /etc/conf.d/local.start echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
# reboot
* Warning: the current /etc/modprobe.conf has not been automatically generated * Use "update-modules force" to force (re)generation
# update-modules force # reboot
Совет: Не стоит выбирать профиль "desktop", который включает в себя несколько десятков use-флагов, предположительно подходящих для любой desktop-системы. Все необходимые флаги в любом случае пропишем постепенно в процессе установок пакетов, а добавление на начальном этапе этой кучи флагов из профиля desktop приведёт к большим зависимостям, и вы просто замучаетесь просматривать сто пакетов (и их use-флаги), потянувшихся по зависимостям за установкой всего одного-единственного необходимого вам пакета.
Совет: Перед установкой любого пакета, запускать команду emerge сначала с дополнительными ключами "pv" (или "av" - кому как больше нравится). Это даст возможность оценить предстоящий процесс установки, проверить и по необходимости включить (отключить) интересующие USE-флаги устанавливаемых пакетов.
Полезные пакеты и команды: # emerge emerge-delta-webrsync - теперь обновлять дерево портежей будет гораздо быстрее (за счёт экономии трафика), минус - дерево портежей после обновления будет актуально на вчерашний день включительно (изменения за сегодня вы получите только завтра).
# emerge eix - с помощью этого пакета гораздо удобнее (и быстрее) работать с поиском по дереву портежей.
# eix-sync -Wv - этой командой удобно обновлять дерево портежей, она сделает emerge-delta-webrsync && update-eix и выведет в конце список изменений в дереве portage (что добавилось, что исчезло, что готово проапгрейдиться).
# emerge -uDNvp world (или -uDNva) - предлагаю эту команду для обновления мира (если не придумаете свою, более удобную). Совсем не обязательно обновляться как только хотя бы один пакет появится в выводе этой команды. Я, например, обновляю лишь некоторые пакеты, выборочно и достаточно редко.
# emerge elogv - позволит просматривать информационные сообщения всех устанавливаемых пакетов после их установки, но сначала необходимо его настроить. Как настроить - читаем в строках после установки, у меня настроено так (/etc/make.conf): PORTAGE_ELOG_CLASSES="warn error log qa" PORTAGE_ELOG_SYSTEM="save" А если также добавить строку: PORT_LOGDIR=/var/log/portage то вся информация выводимая на экран во время компиляции пакета будет помещаться в указанный каталог (на случай, если вас не устроит elogv).
Совет: не пренебрегайте этой командой, после установки крупных вещей (Х'сы, Gnome, KDE) обязательно запустите elogv и внимательно просмотрите сообщения всех пакетов, что устанавливались. В выводе некоторых могут встречаться важные инструкции, которые необходимо будет выполнить. Удалить текущую запись из журнала elogv - dd, помощь - F1.
# emerge gentoolkit - сюда входят eclean, equery, eread, euse, glsa-check, а главное - revdep-rebuild. Must have.
Обновление конфигов.
При обновлении некоторых пакетов может потребоваться вручную обновить их конфиги. Если после установки какого-либо пакета вы видите на экране такое сообщение: * IMPORTANT: 2 config files in '...' need updating. значит некоторые конфиги ждут своего обновления. Обновить их можно либо с помощью etc-update, либо с помощью dispatch-conf. Рекомендуется использовать вторую команду, как более мощную, а при соответствующей настройке, умеющую сохранять историю изменений. В любом случае здесь рекомендуется включать мозг и внимательно изучать, какие строчки будут удалены, а какие - добавлены. Если обновляется какой-либо конфиг, где вы вносили свои корректировки, они могут быть предложены к удалению - поэтому нужно быть внимательным (сам по-первости попался - обновил конфиги не глядя, а потом удивлялся, почему настройки, которые я терпеливо прописывал в несколько файлов вдруг заменились на дефолтные).
USE-флаги
>с флагами я не совсем разобрался... зачем их прописывать, если проги и без них поставятся?
Предположим, ставим мы с тобой kopete (IM-клиент). Ты не включаешь никакие флаги и ставишь пакет, а я включаю "irc" и "yahoo". Так вот мой копете будет поддерживать также протоколы irc и yahoo, а твой - не будет.
>т.е. прогу надо будет заново ставить?
Да, тебе придётся прописать флаги и пересобрать пакет. USE-флаги нужны для того, чтобы включать некоторый функционал в собираемом пакете.
>вот мы дали команду emerge gnome -pv >там появились строки..красного, синего и желтого цвета...что это все означает?
Пример вывода emerge -uDNvp world у меня:
Жёлтым% выделены изменения в наборе флагов пакета. Флаги, больше недействительные (удалённые) для новой версии пакета будут взяты в скобки, новые (добавленные) флаги, появившиеся для новой версии, будут без скобок.
Красные - включенные флаги.
Синие - соответственно не включенные (идут по минусу).
Зелёные* - флаг был включен в системе после сборки пакета, пакет был собран без этого флага, готов к пересборке с ним.
Например, на рисунке:
[ebuild UD] app-emulation/wine-0.9.49 [0.9.57]
предлагает понизить версию пакета wine (я ставил тестовую 0.9.57, у которой были доступны новые use-флаги "gecko" и "samba", и которых не будет, если пересобрать пакет в версию 0.9.49).
Флаг "java" я включил в системе только что, и поэтому он подсветился во всех пакетах, где он может использоваться, зелёным цветом.
USE-флаги добавляются (включаются) в системе по мере необходимости.
>ну вот я и пытаюсь узнать..как определить необходимость?
К примеру, поставил ты систему, чист твой /etc/make.conf, включено только несколько обязательных флагов (прописаны в профиле). Теперь хочешь установить Пакет_А, по-хорошему пишешь:
# emerge < Пакет_А > -pv
и смотришь use-флаги всех пакетов, что будут устанавливаться. Какие флаги тебе кажутся нужными - включаешь (прописываешь). И ещё раз перезапускаешь команду (могут появиться новые зависимости со своими флагами). Процесс повторять до полного удовлетворения =)
Если прописываешь флаги в make.conf - то они будут действовать глобально для всех пакетов, где встретятся.
Если в /etc/portage/package.use в формате:
категория/пакет флаг [флаг -флаг]
(app-misc/mc 7zip -X -gpm -ncurses slang)
то тогда эти флаги будут включены только для этого пакета.
Обычно в make.conf находится некоторое количество глобальных флагов (X, kde, gnome, alsa, etc...) и много-много строк в package.use. Так постепенно use-флаги и накапливаются. А если ты сразу пропишешь в make.conf "Х, kde, gnome, samba" и т.д. (думая, что "вот сейчас я пропишу всё что мне надо и забуду про эти флаги"), то установка какого-нибудь mc потянет за собой столько пакетов по зависимостям... что ты будешь совсем не рад =) Причём, есть вероятность, что всё зациклится и выпадет ошибка.
Смотреть, что означает конкретный флаг удобно в другой консоли в ufed. Полезный пакет:
# emerge ufed - интерактивный ncurses-based редактор use-флагов. В нём флаги можно включать (отключать) и ufed будет прописывать их в /etc/make.conf. Конечно информация о флагах здесь не настолько подробная, как хотелось бы (особенно для новичка), но всё же лучше чем ничего.
>но ведь можно сделать так: >USE="флаг" emerge < пакет >
А при обновлении мира, флаг у этого пакета потеряется, ибо нигде не прописан, то есть при пересборке (обновлении пакета) получится USE="-флаг" emerge < пакет >
и пакет потеряет часть функциональности.
>понял, а как быть, если прога тянет за собой другие, а у тех свои зависимости?
Смотришь их флаги, включаешь, а они после этого потянут ещё что-нибудь... смотришь теперь и их флаги)) пока не остановится процесс разрастания))
Если не планируется использовать deltup, можно прописать зеркало yandex в make.conf:
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/";
(хотя эта строка и при дельтапе не помешает).
Поддержание системы в чистоте и порядке =)
При установке пакета А, он прописывается в world (/var/lib/portage/world), все пакеты B C D, которые он потянул за собой по зависимостям никуда не прописываются, но они нужны пакету А и поэтому не болтаются в системе мёртвым грузом. Соответственно команда "# emerge -a --depclean" не сообщает ни о каких бесхозных пакетах.
Пакет А нам надоел и мы его удаляем: "# emerge -C пакет_А"
Но пакеты B C D всё ещё остаются в системе, совершенно ненужные никому. Удалить их можно лишь точно зная их имена, либо с помощью команды "# emerge -a --depclean".
Проверка целостности системы:
# revdep-rebuild - команда проверит целостность зависимостей системы, и при необходимости (найденных ошибках) переустановит (доустановит) необходимые пакеты. Рекомендуется запускать всегда после выполнения команды "emerge -a --depclean".
Установка пакетов. Х'сы, DE.
Опишу свои личные соображения. Так как система будет использоваться на десктопе для повседневной работы, то обязательно понадобятся Х'сы, какое-то DE, различные кодеки и прочие приложения. Можно сказать "emerge gnome" или "emerge kde" и потом долго ковыряться в use-флагах нескольких сотен пакетов - а их будет много, ибо потянутся и Х'сы, а если повезёт, то захватятся и кодеки. Зато, если хватит сил, вся система будет установлена одной командой =)
Я же предпочитаю разбивать этот процесс на подпроцессы:
# emerge xorg-x11 - ставим только Х'сы, драйвер на видеокарту, добиваемся его работы и direct rendering'а.
# emerge ffmpeg imagemagick xine-lib mplayer - в каком порядке не особо важно, главное не одновременно (а то опять увязнете в сотне-другой зависимостей). После установки этих пакетов и всех нужных зависимостей, в системе будут стоять все необходимые видео/аудио кодеки, а также будет поддержка графических форматов. Здесь же может потянуться в зависимостях samba и cups.
И уже последним делом:
# emerge gnome (или kde-meta) - Гнум, KDE, либо что вам там нравится.
Наблюдать за процессом установки можно в другой консоли, запустив: tail -f /var/log/emerge.log
Надеюсь, эта информация помогла вам разобраться хоть в каких-то вопросах =)
Внимание! Этот пост не отменяет прочтение хендбука, так что вам теперь сюда: http://www.gentoo.org/doc/ru/handbook/
Комментариев нет:
Отправить комментарий