Здесь нет какого-то строго определённого плана действий, попробую набросать несколько советов. Неплохая идея сразу же проверить систему на бесхозные (ненужные) пакеты: # emerge -av --depclean. Также неплохая идея содержать систему в чистоте и после удаления пакетов подчищать за ними оставшиеся ненужные зависимости (всё тем же emerge -av --depclean). В конце в пункте 6 привожу листинг процесса, как он проходил у меня.
1. Обновить portage.
Этот шаг предстоит делать периодически (но не чаще чем раз в день). При этом обновляется дерево portage (добавляются новые пакеты, новые версии пакетов, удаляются старые).
# emerge --sync
Желающие экономить трафик, возможно захотят воспользоваться командой emerge-delta-webrsync из одноимённого пакета.
1. Обновить portage.
Этот шаг предстоит делать периодически (но не чаще чем раз в день). При этом обновляется дерево portage (добавляются новые пакеты, новые версии пакетов, удаляются старые).
# emerge --sync
Желающие экономить трафик, возможно захотят воспользоваться командой emerge-delta-webrsync из одноимённого пакета.
2. Пересобрать (обновить) system и мир.
При этом обновится большинство пакетов, уже установленных в системе (развёрнутых из stage3).
Для обновления читаем , либо просто:
# emerge -epv world
Сразу же смотрим какие 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
Добавление sshd в автозагрузку *если нужно*:
# rc-update add sshd default
Список всех компиляторов (просто интересно):
# gcc-config -l
[1] i686-pc-linux-gnu-4.1.1 *
Пересборка toolchain:
# emerge linux-headers glibc binutils gcc-config gcc --oneshot
* 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.
# dispatch-conf
# source /etc/profile
# emerge eix
# update-eix
# cat /proc/cpuinfo
# echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Управление частотой процессора, установка работы "по требованию":
# 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=";
(хотя эта строка и при дельтапе не помешает).
Поддержание системы в чистоте и порядке =)
При установке пакета А, он прописывается в 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
Надеюсь, эта информация помогла вам разобраться хоть в каких-то вопросах =)
Внимание! Этот пост не отменяет прочтение хендбука, так что вам теперь сюда:
При этом обновится большинство пакетов, уже установленных в системе (развёрнутых из stage3).
Для обновления читаем , либо просто:
# emerge -epv world
Сразу же смотрим какие 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
Добавление sshd в автозагрузку *если нужно*:
# rc-update add sshd default
Список всех компиляторов (просто интересно):
# gcc-config -l
[1] i686-pc-linux-gnu-4.1.1 *
Пересборка toolchain:
# emerge linux-headers glibc binutils gcc-config gcc --oneshot
* 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.
# dispatch-conf
# source /etc/profile
# emerge eix
# update-eix
# cat /proc/cpuinfo
# echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Управление частотой процессора, установка работы "по требованию":
# 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=";
(хотя эта строка и при дельтапе не помешает).
Поддержание системы в чистоте и порядке =)
При установке пакета А, он прописывается в 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
Надеюсь, эта информация помогла вам разобраться хоть в каких-то вопросах =)
Внимание! Этот пост не отменяет прочтение хендбука, так что вам теперь сюда:
Комментариев нет:
Отправить комментарий