* [gentoo-user-ru] Описание portage
@ 2005-05-04 15:07 Alex Efros
2005-05-05 4:59 ` Alexander Tratsevsky
` (3 more replies)
0 siblings, 4 replies; 29+ messages in thread
From: Alex Efros @ 2005-05-04 15:07 UTC (permalink / raw
To: gentoo-user-ru
Hi!
Когда я изучал Gentoo и собирался на него переходить (я в этот момент
уже года два-три работал на само-собранном дистрибутиве по идеям LFS,
он меня полностью устраивал, но его поддержка требовала слишком много
времени) я столкнулся с тем, что хотя документации по portage было
довольно много, но она была не полная и не систематизированная (по
крайней мере, не систематизированная удобным для меня образом).
К примеру, ответ на вопрос: "как обновить систему?" в виде "emerge world"
меня категорически не устраивал, т.к. после сборки своего дистрибутива я
в полной мере осознавал что так просто это делаться не может, если,
конечно, вам интересно чтобы после обновления система всё ещё работала. :)
Тогда я начал составлять для себя некое описание portage, просто чтобы
лучше понимать как им пользоваться. Было это года полтора назад.
В процессе составления такого описания, в какой-то момент понимание что
и как делать у меня появилось и описание с тех пор я обновлять и
прорабатывать TODO перестал. Поскольку недавно я это осознал, и понял
что до удобоваримого вида я его уже не доведу, и переводить на
английский, как планировал, не буду, то я решил его запостить в том виде,
в котором оно сейчас есть. Может быть оно кому-нить пригодится. Если нет -
ну что-ж, тогда сорри за траффик. :)
P.S. Лицензия: с этим тектом можно делать всё, что хотите. :)
P.P.S. Если у кого будут вопросы по тексту - например, почему я не
пользуюсь RC-скриптами, или наоборот, ответы на вопросы в моём разделе
"вопросы нуждающиеся в уточнении" - you are welcome. :)
***************************************************************
*** Устройство и работа portage с точки зрения пользователя ***
***************************************************************
Здесь собрана информация по нюансам использования portage из самых разных
источников: документации, web-сайтов, Gentoo'шных форумов, maillist-ов и
личного опыта. В некоторых местах (особенно где английский текст) -
это просто cut&paste из этих источников.
Предполагается, что базовые знания по portage уже есть, и, например,
рассказывать что такое `emerge sync` или USE-флаги не нужно.
Основной упор при сборе информации делался на:
- описание разницы между разными способами выполнить одну и ту-же задачу
(с примерами/аргументами описывающими последствия выполнения задачи "не
правильным" способом)
- составление "рецептов" по решению типовых задач
- полноту описания отдельных аспектов portage
NOTE Всё что касается RC-скриптов я не изучал вообще т.к. я ими не пользуюсь.
*** Настройка portage
# FEATURE: Установить $CFLAGS для оптимизации компиляции программ.
# FEATURE: Выбрать стабильную или тестовую версию пакета.
# FEATURE: Выбрать опциональные возможности пакета включаемые при компиляции
# (USE-флаги).
# FEATURE: Замаскировать/демаскировать выбранные версии пакетов.
Настраивать portage можно через:
* /etc/make.profile (симлинк указывающий на текущий профайл)
* /etc/make.conf (пользовательские настройки)
* /etc/portage/ (пользовательские изменения для отдельных пакетов и профайла)
* переменные окружения
Изменять переменные окружения не рекомендуется т.к.
эти изменения не будут учтены при последующих
перекомпиляциях пакетов.
Текущие настройки выдаёт `emerge info`. Они являются результатом объединения
глобальных настроек (перечисленных ниже) и пользовательских настроек
(перечисленных выше). Файлы с глобальными настроками редактировать нельзя.
Глобальные настройки можно посмотреть в:
* /etc/make.globals (глобальные настройки)
* /usr/portage/* (файлы с разными настроками, в т.ч. package.mask)
* /usr/portage/ВАШ/ТЕКУЩИЙ/ПРОФАЙЛ/
Плюс все профайл-каталоги которые этот профайл "наследует"
(имя унаследованного профайла-каталога находится в
файле parent, а сам каталог с профайлом определяется
через симлинк /etc/make.profile - см. выше).
Документация по возможным параметрам portage:
* `man make.conf`
* `man portage`
* /etc/make.conf.example
*** Выбор устанавливаемых пакетов
# FEATURE: Можно выбрать, какую версию нужной программы устанавливать.
# FEATURE: Каждый ebuild скрипт может быть помечен как
# стабильный/тестируемый/не работает отдельно для каждой архитектуры.
Portage-у, для установки определенной версии определенной программы, нужен
специальный скрипт (ebuild) в котором описаны специфичные для этой
программы/версии команды компиляции/инсталляции, опциональные возможности и
текущий статус: стабильная/нестабильная/неработающая версия.
Одновременно в portage может быть несколько разных версий, часть из которых
может быть помечена как стабильные, часть как нестабильные, etc. и всегда
можно форсировать установку любой из этих версий пакета. По умолчанию portage
будет устанавливать либо максимальную из стабильных версий, либо из
нестабильных - в зависимости от настроек.
Для установки нестабильной или нерабочей версии нужно разрешить их
индивидуально для каждого пакета в /etc/portage/package.keywords .
Кроме того можно глобально разрешить установку нестабильных версий для
всех пакетов в настройках portage, специально для любителей потестировать
самые свежие глюки. :)
ebuild may be marked '-arch', meaning "does not work", '~arch', meaning
"unstable", or 'arch', meaning "stable".
Примеры записей в /etc/portage/package.keywords :
cate-gory/package
разрешает использовать любые "нестабильные" версии пакета (кстати, в
документации я такого синтаксиса не нашёл - имеется в виду возможность
не указывать ~x86, что очень удобно)
=cate-gory/package-version ~x86
разрешает использовать именно эту "нестабильную" версию пакета, не будет
пытаться downgrade-нуть её на предыдущую стабильную при emerge -u, и не
будет автоматически апгрейдить её на более новые "нестабильные" версии
~cate-gory/package-version ~x86
где version не включает номер ревизии (-rX) будет работать как и
предыдущий вариант с одним исключением - автоматические апгрейды на
более новые "нестабильные" ревизии этой-же (!!!) версии пакета будут
разрешены
Некоторые версии программ могут быть замаскированы:
* для всех профайлов: /usr/portage/profiles/package.mask
* для текущего профайла: /etc/make.profile/packages
* пользователем: /etc/portage/package.mask
* пользователем при предыдущей установке этого пакета: /var/lib/portage/world
Это может произойти если при emerge указывалась конкретная
версия пакета через = (или допустимые диапазоны версий
через <>) без использования --oneshot, и в файл world
была добавлена строка содержащая эти ограничения.
Для установки замаскированного пакета его нужно демаскировать: для первых
двух случаев через /etc/portage/package.unmask для третьего просто убрав
ограничение из /etc/portage/package.mask а в последнем случае убрав ограничение
из /var/lib/portage/world .
You can "pin" a package. Just put ">=app-grp/appname-x.y.z" into
/var/lib/portage/world and emerge -u world won't try to downgrade, or use
= instead of >= and it will never try to change the version at all.
# FEATURE: Можно иметь свои локальные наборы ebuild скриптов.
Ebuild-скрипты должны находится либо в основном каталоге portage,
либо в одном из дополнительных каталогов portage.
Основной каталог задается в настройках portage как PORTDIR (обычно это
/usr/portage/). Дополнительные каталоги можно указать в настройках portage
как PORTDIR_OVERLAY (обычно это один каталог: /usr/local/portage).
Если ebuild для одной и той-же версии программы будет найден и в основном
каталоге, и в дополнительных - будет использован скрипт из дополнительного
каталога.
Свои ebuild скрипты нужно хранить в дополнительных каталогах,
т.к. изменения в основном каталоге будут потеряны при
`emerge sync`. Это же касается изменений основных ebuild-ов -
нужно сначала скопировать их из основного каталога в
дополнительный и уже там изменять.
# FEATURE: Все программы сгруппированы по категориям.
Внутри каталога portage ebuild скрипты сгруппированы по категории и
названию программы: /usr/portage/CATEGORY-NAME/SOFT/NAME-VERSION.ebuild .
Иногда программу переносят из одной категории в другую, все такие
переименования описаны в файлах /usr/portage/profiles/updates/* .
*** USE-флаги
USE-флаги бывают "глобальные" (используемые более чем одним пакетом) и
"локальные" (используемые только одним пакетом). Их описания в файлах:
/usr/portage/profiles/use.desc и /usr/portage/profiles/use.local.desc .
Дополнительные USE-флаги могут быть добавлены автоматически после установки
соответствующего софта: /etc/make.profile/use.defaults (но они перекрываются
любыми юзерскими настройками - make.conf, /etc/portage/ и $USE).
Приоритет USE-флагов:
- Default USE setting declared in /etc/make.profile/make.defaults
(плюс make.defaults из унаследованных профайл-каталогов)
- Inherited USE setting if a package from /etc/make.profile/use.defaults
is installed (плюс use.defaults из унаследованных профайл-каталогов)
- User-defined USE setting in /etc/make.conf
- User-defined USE setting in /etc/portage/package.use
- User-defined USE setting as environment variable
После изменения USE-флагов рекомендуется пересобрать все пакеты,
на которые влияют эти флаги: `emerge --newuse world`, после чего
сделать что-нить типа
emerge -p depclean
чтобы удалить ставшие лишними из-за изменения USE-флагов пакеты.
*** Полное обновление системы
* Приведение в порядок /var/lib/portage/world . В world должен быть список
программ, которые нужно доустановить плюс к тем, которые уже входят в
"system" (т.е. в текущий профайл).
- в world не должно быть никаких библиотек, etc., которые не нужны
сами по себе, а нужны только для удовлетворения чьих-то зависимостей
(чтобы не продолжать устанавливать/обновлять их если они уже станут
не нужны по какой-то причине)
- программ, которые уже входят в "system" не должно быть в world
(почему, кстати, и где это написано? и как быть с тем, что содержимое
system может меняться при изменении профайла?)
- в world нельзя указывать определенную версию софта, это лучше делать
в /etc/portage/package.mask (а это почему и где написано?)
- скрипт `regenworld` может помочь восстановить world путем анализа
/var/log/emerge.log и генерации на его базе файла world
(он перезапишет текущий world!)
- скрипт `dep -p -w` поможет найти избыточные записи в world
(которые всё-равно нужны другим записям в world или входят в system).
* Перед серьёзными обновлениями желательно просмотреть /etc/portage/* ,
т.к. там могут быть уже не актуальные записи мешающие текущему обновлению.
* Обновление profile.
- Не каждый Gentoo release включает в себя новый profile (например,
2004.1 был без profile).
- Даже если новый profile есть, то переходить на него не обязательно
(если это будет обязательно, то старый профайл будет deprecated и
emerge об этом должен будет громко кричать).
- Инструкция по обновлению profile будут выкладываться здесь:
http://www.gentoo.org/doc/en/gentoo-upgrading.xml
и как правило сводиться к изменению симлинка /etc/make.profile .
* USE-флаги.
- Запустить `emerge -uDpv --newuse world` и проверить что USE-флаги для
всех пакетов выставлены корректно, и при необходимости скорректировать
USE-флаги через /etc/make.conf или /etc/portage/package.use .
* Запуск обновления системы (если не нужно ли обновлять toolchain).
- Если `emerge -uDpv --newuse world` показывает что будет обновляться
пакет входящий в toolchain (linux-headers, glibc, binutils или gcc), то
крайне рекомендуется полностью перекомпилировать всю систему -
см. следующий пункт - а иначе можно вместо следующего пункта просто
запустить:
emerge -uDav --newuse world
- Некоторые причины не использовать emerge -U вместо -u :
Reason 1: Problems with SLOTs
This occured to quite a few people that wanted gimp-2 instead of
gimp-1.2. Imagine gimp-1.2 marked stable and in SLOT 1, gimp-2
marked unstable and in SLOT 2. Now you do an "ACCEPT_KEYWORDS=~x86"
emerge gimp" and get gimp-2. Later on you consider it's time to update
your system with anything similar to "emerge -U world". This will
install gimp-1.2, because gimp is in the worldfile, and "-U" doesn't
handle the SLOTs here as one might expect it.
Reason 2: Problems if ebuilds are removed from Portage tree
Imagine there are two versions of package foo in portage, foo-1.4 marked
stable and foo-1.6 marked unstable. You want unstable and emerge it like
gimp above. Some time later you update world like above, but in the
meantime foo-1.6.1 came out fixing an important security hole in
foo-1.6. Now there are two possibilities:
a) foo-1.6 got removed from Portage. This
results in foo-1.4 getting installed, thus a downgrade instead of
"-U"
b) even worse when foo-1.6 wasn't removed from Portage due to whatever
reason: foo-1.6 (the one with the security hole) would stay on your
system until something greater than foo-1.6 gets marked stable.
* Обновление одного из пакетов входящих в toolchain.
- Если обновляется хотя-бы один из linux-headers, glibc, binutils или gcc,
то рекомендуется пересобрать их дважды, после чего весь system, после
чего весь world.
Цель двойной компиляции toolchain - получить гарантированно стабильный и
корректный toolchain не зависящий от предыдущего.
Перекомпилировать system/world после этого жёсткой необходимости нет,
по крайней мере если остальной софт продолжает работать (возможно даже
используя библиотеки из старого toolchain - см. предыдущие пункты об
апгрейде).
Цель перекомпиляции system/world - чтобы весь софт получил потенциальное
преимущество от установки нового toolchain. system перекомпилируется
перед world из тех-же соображений, т.к. при компиляции программ из world
используются утилиты из system.
- Если увеличивается первая или вторая цифра версии gcc, то перед второй
сборкой нужно переключиться на новую версию через gcc-config - иначе
новый gcc просто установится параллельно со старым в "новый слот" но
по умолчанию использоваться будет старый.
- При сборке system после двойной перекомпиляции toolchain нет
необходимости опять компилировать toolchain как часть system.
Аналогично при сборке world после system нет небходимости опять
компилировать пакеты из system как часть world. Это можно попробовать
обойти либо вручную, либо используя скрипты из
http://forums.gentoo.org/viewtopic.php?t=282474 либо через бинарные
пакеты и `emerge -k` (я предпочитаю последний вариант).
- Итого, рекомендованный набор команд:
# для того, чтобы безопасно использовать `emerge -k` нужно очистить
# каталог с текущими бинарными пакетами
# (напр., переместить его в /tmp/portage-packages)
pkgdir=$(portageq pkgdir)
mv $pkgdir /tmp/portage-packages
install -d -o portage -g portage $pkgdir
# первая сборка toolchain
emerge linux-headers glibc binutils gcc-config gcc
# выбрать новый gcc если он установился в новый слот
gcc-config имя_или_номер_нового_gcc # см. `gcc-config -l`
source /etc/profile
# компиляция toolchain с созданием бинарных пакетов
emerge -b glibc binutils gcc portage
emerge -bke system # не компилить glibc, binutils и gcc
emerge -bke world # не компилить предыдущие пакеты (включая system)
- Чисто теоретически существует пакет binutils-config, который когда-нить
может потребоваться использовать аналогично gcc-config.
* Обновление безопасности.
- Даже после `emerge -uDav --newuse world` в системе могут оставаться
устаревшие пакеты с дырами в безопасности - в слотах!
glsa-check -l | grep '\[N\]'
emerge ... # если нужно
* Удаление не используемых пакетов.
- После обновления системы в ней могут оказаться пакеты, которые никто
не использует. Эти пакеты желательно удалить, т.к. они не будут в
дальнейшем обновляться при `emerge -uDav --newuse world`.
emerge -a depclean # очень осторожно!!!
* После обновления библиотек может потребоваться перекомпилировать
программы, которые эти библиотеки используют:
rm /root/.revdep-rebuild*.?_*
revdep-rebuild -p
revdep-rebuild
* Обновление конфигов.
dispatch-conf
* Если используется runit-init и обновлялся пакет baselayout, то нужно
восстановить /sbin/init:
ls -l /sbin/*init*
if (/sbin/init это бинарник, а не симлинк) {
mv /sbin/init /sbin/init-sysv
ln -s runit-init /sbin/init
}
* Отслеживание важных сообщений при установке пакетов.
- В процессе `emerge world` выдаётся очень много сообщений, причём
важные комментарии перемешаны с командами компиляции, и отследить
их при сборке нескольких пакетов одновременно не возможно.
Но все эти сообщения можно получить из log-файлов после окончания
установки `emerge world`. Для этого нужно использовать либо
`enotice` либо `portlog-info`.
*** Обновление критических системных пакетов
* Апгрейд gcc.
- Должен быть абсолютно безопасным благодаря использованию SLOT-ов!
Проблемы при установке нового gcc возникнут если новый gcc бинарно
несовместим со старым. Вероятно это связано с тем, что некоторые
бинарники (например, /usr/sbin/mysqld) используют библиотеки gcc
(например, /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/libstdc++.so.5).
В таких случаях этим "бинарно несовместимым" версиям gcc назначаются
разные SLOT-ы, и апгрейд на такую версию приведет к установке новой
версии без удаления старой (выбирать, какая версия будет
использоваться при компиляции новых программ можно через `gcc-config`).
* Апгрейд gcc/glibc/других критических библиотек.
- Перед апгрейдом может иметь смысл отключать AUTOCLEAN (см. `man
make.conf`) чтобы старая версия glibc не была удалена до того как
весь зависящий от неё софт не будет пересобран с новой версией.
После того как всё будет пересобрано можно будет удалить старые версии
через `emerge --clean`.
- Так-же может иметь смысл на всякий случай сохранить до обновления
текущие версии через `quickpkg glibc`. Тогда её можно будет
восстановить в случае проблем с новой версией:
`emerge -k /usr/portage/packages/sys-libs/glibc-2.3.2-r1.tbz2`.
- После апгрейда нужно обязательно запускать `revdep-rebuild`, чтобы
пересобрать проги зависящие от старой версии обновляемой библиотеки.
* Апгрейд любого из пакетов входящих в toolchain (linux-headers, glibc,
binutils, gcc) или перекомпиляция их с серьёзными отличиями в USE-флагах
(напр. nptl, hardened).
- Во избежание глюков крайне рекомендуется не экономить на времени
компиляции и сделать всё как описано в разделе "Полное обновление
системы", вариант с обновлением toolchain.
*** Перезаписывание существующих файлов при установке пакета
Файлы принадлежат последнему установленному пакету. Все зависит от
порядка инсталляции и не зависит от номера версии или номера ревизии
установленных пакетов. Удаление пакета установленного последним и
содержащего некий файл, удалит и сам файл, даже если установлены пакеты
более старших версии того же самого программного обеспечения (полагая, что
пользователь вручную не изменял файл).
Описание работы фичи "config file protection", благодаря которой часть файлов
(в основном, в /etc/) не переписывается автоматом при установке новой версии
пакета можно прочитать в `emerge --help config`. Такие файлы должны быть
обновлены вручную после установки пакета через утилиту `dispatch-conf`
или другие альтернативные утилиты (но использовать `etc-update` крайне
не рекомендуется!).
*** Удаление пакетов
Удаление пакетов опасно. Если вы удалите какой-нибудь важный пакет
ваша система, скорей всего, перестанет функционировать, а удаление
библиотек может неудачно повлиять на работу программного обеспечения.
Portage не предупредит вас если вы удалите системный пакет или какую-нибудь
зависимость для других пакетов.
При удалении пакета всегда есть риск что этот пакет нужен другим
установленным пакетам. Можно попытаться проверить зависят ли от удаляемого
пакета другие через `qpkg -q -I имяпакета` и/или через `dep -r имяпакета`.
После удаления можно проверить что он сейчас никому не нужен через
`emerge -Dp world` и/или `revdep-rebuild -p`.
*** Разное
Если нужно установить какой-то пакет временно, для эксперимента или
из каких-то "системных" соображений (например, если он был нечаянно
удалён или его нужно обновить чтобы закрыть дыру в безопасности),
либо если нужно ПЕРЕустановить какой-то пакет - всегда нужно
использовать параметр --oneshot чтобы этот пакет не дописался в world.
Значение CHOST в /etc/make.conf можно изменять только при установке из stage1,
до запуска bootstrap.
You can always pass a full path to an ebuild to emerge, and this will bypass
all mask checking, so this is another quick way to install one masked package.
Но при этом пишут, что запускать `emerge /path/to/file.ebuild` нельзя.
В частности, в `man emerge`: "WARNING: The implementation of
emerge /path/to/ebuild is broken and so this syntax shouldn't be used.".
TODO
Просмотреть:
http://forums.gentoo.org/viewtopic.php?t=171464
Сравнить (поиск по форуму) cfg-update и dispatch-conf; colordiff! etc.
Куча дополнительного софта для работы с portage:
/usr/portage/app-portage/* :) плюс
http://gentooexperimental.org/script/repo/list
- enotice
- portlog-info (вероятно, не нужен при использовании enotice)
- gest (сравнить с `genlop -p` и `splat -s`)
- glcu (для серверов):
http://www.panhorst.com/glcu/
http://forums.gentoo.org/viewtopic-p-2123630.html
- find-old-distfiles (довести до ума)
- dep
- cruft, cruft2.py (проверить на безопазность и полезность)
* Обновление пакетов из-за секьюрити
- glsa-check
- ручной inject некоторых glsa из-за багов glsa-check
* Еще одна вещь, о которой следует упомянуть, - это команда
emerge ingect =pkg-PV-PR
Она позволяет зарегистрироватт определенную версию пакета без его
установки. Ее можно применить, если, скажем, после очередного выполнения
rsync Вы проверили результат
emerge -pu world
и в целом Вам все нравится, вот только Вы не хотите выполнить upgrade
какого-то определенного пакета. Тогда его можно просто принудительно
включить в дазу данных как обновленный, выполнив команду
emerge inject pkg-PV-PR
NB! Начиная с 2.0.51:
The use of --inject is deprecated for the time being. Injecting
packages should now be done by adding the package to
/etc/portage/profile/package.provided using the full name
(<category>/<name>-<version>) instead.
Для обнаружения inject-нутых пакетов и переноса их в package.provided
можно использовать:
http://www.stud.uni-karlsruhe.de/~uxhz/gentoo/misc/einjected
и затем спокоино выполнять
emerge -u world
*** Краткий справочник по параметрам основных команд
* Полезные фичи etcat:
etcat -v ... # вывести все версии пакета ... в портаже
etcat -u ИМЯ # с какими настройками USE (только из влияющих
# на эту программу) была установлена программа
* Полезные фичи qpkg:
qpkg -I # список установленных пакетов
qpkg -I -v # список установленных пакетов с версиями
qpkg -I -v /pkg- # версия установленного пакета pkg :-)
qpkg -q -I ... # вывести пакеты зависящие от заданного
# (насколько я понял, это лучше делать через
# dep)
* Полезные фичи emerge ("..." означает список имен программ):
TODO В полезные фичи emerge нужно дописать инфу по --resume и --skipfirst !
# Информация
emerge info # вывести текущие настройки (в т.ч. USE)
emerge -s ... # поиск в имени
emerge -p -v ... # какие USE флаги влияют на эту программу и
# сколько Kb еще нужно докачать исходников
emerge -p -f ... # вывод url откуда можно тянуть sources
emerge -p -e ... # показать все зависимости программы без glibc
emerge -p -u ... # показать, что будет обновляться
emerge -p depclean # вывести пакеты которых нет в world и от
# которых никто не зависит (для удаления)
# Выкачка
emerge sync # обновление portage через rsync://
emerge -f ... # только выкачка sources без установки
# Установка
emerge -p ... # вывод что нужно для установки программы
emerge -p -t ... # вывод что нужно для установки программы
# (зависимости выводятся в виде дерева)
emerge -a ... # то-же что и -p, но после вывода информации
# спрашивает продолжить ли выполнять emerge
emerge -k ... # установка прекомпилированной программы из
# /usr/portage/package/All/ __ЕСЛИ__ там есть
# нужная версия программы
emerge -K ... # как и -k, но если нужной прекомпилированной
# версии нет, то используется какая есть
emerge ... # установка программы
emerge -u ... # обновить пакет (возможно, на меньшую версию)
emerge -uD --newuse world # полный апгрейд системы
emerge -C ... # удалить пакет (unmerge). зависимости при
# удалении __НЕ__ проверяются!!!
Программа(ы) в "..." могут быть заданы как:
system # базовый набор софта
world # весь софт, который ставился ручками + system
name # автовыбор лучшей версии программы name
"=name-version" # установка именно этой версии
"<name-version" # установка лучшей версии меньшей заданной
">name-version" # установка лучшей версии большей заданной
"<=name-version"
">=name-version"
При выводе -p могут быть использованы обозначения:
B (blocks) The package listed to the left is blocking the emerge
of the package listed to the right
N (new) The package is new to your system and will be emerged
for the first time
R (reemerge) The package isn't new, but needs to be reemerged
F (fetch) The package requires that you download the source code
manually (for instance due to licencing issues)
U (update) The package already exists on your system but will be
upgraded
UD (downgrade) The package already exists on your system but will be
downgraded
U- (slot warning) The package you have installed on your system is listed
as a package that can not coexist with a different
version, but your update does. The update will be
installed and the older version will be removed.
*** Вопросы, нуждающиеся в уточнении
Чистка distfiles.
Разобраться, включен ли у меня sandbox и достаточно ли этого для безопасной
компиляции (что такое user* FEATURES и нужны ли они вместе/вместо sandbox).
Интересно, как будет ставиться прога, которой нужно установить suid-ные
root-овые файлы если её собирать так:
FEATURES="userpriv usersandbox sfperms"
Что такое `fixpackages`? Нужно ли его запускать ручками?
/etc/portage/bashrc подчитывается перед установкой каждой программы, даже если
emerge ставит их много одновременно?
http://home.jesus.ox.ac.uk/~ecatmur/gentoo/etc/portage/bashrc написан в
расчете именно на это (изменяет $CFLAGS индивидуально для ethereal).
Насколько безопасно в /etc/portage/rsync_excludes засунуть:
/usr/portage/metadata/cache
portageq envvar NOCOLOR
Проверить действительно ли --metadata ускоряет рассчёт зависимостей
для вытянутого архива с portage (аналогично можно проверить --regen).
*** Полезные файлы и программы
Одна из gentoo-шных утилит, которой стоит пользоваться: `env-update`.
(Она вызывается автоматом после установки любого пакета.)
TODO обновить этот список для последней версии portage перед тем как его
описывать!
- описать все файлы/каталоги используемые в portage с точки зрения их задач:
/var/cache/edb/*
/var/db/pkg/*
/var/log/portage/
/var/log/emerge.log
/usr/portage/distfiles/
/usr/portage/metadata/*
/usr/portage/packages/
/usr/portage/profiles/*
/usr/portage/profiles/updates/
/usr/portage/rpm/
/usr/portage/scripts/*
/usr/local/portage/
/etc/env.d/
/etc/modules.d/
/etc/dispatch-conf.conf
/etc/etc-update.conf
- описать полезные программы используемые для манипуляции этими файлами:
modules-update
/usr/bin/xpak -> ../lib/portage/bin/xpak 1087030209
/usr/bin/repoman -> ../lib/portage/bin/repoman 1087030209
/usr/bin/g-cpan.pl -> ../lib/portage/bin/g-cpan.pl 1087030209
/usr/bin/portageq -> ../lib/portage/bin/portageq 1087030209
/usr/bin/emerge -> ../lib/portage/bin/emerge 1087030209
/usr/bin/quickpkg -> ../lib/portage/bin/quickpkg 1087030209
/usr/bin/tbz2tool -> ../lib/portage/bin/tbz2tool 1087030209
/usr/sbin/fixpackages -> ../lib/portage/bin/fixpackages 1087030209
/usr/sbin/env-update -> ../lib/portage/bin/env-update 1087030209
/usr/sbin/etc-update -> ../lib/portage/bin/etc-update 1087030209
/usr/sbin/emerge-webrsync -> ../lib/portage/bin/emerge-webrsync 1087030209
/usr/sbin/regenworld -> ../lib/portage/bin/regenworld 1087030209
/usr/sbin/archive-conf -> ../lib/portage/bin/archive-conf 1087030209
/usr/sbin/ebuild -> ../lib/portage/bin/ebuild 1087030209
/usr/sbin/dispatch-conf -> ../lib/portage/bin/dispatch-conf 1087030209
/usr/sbin/ebuild.sh -> ../lib/portage/bin/ebuild.sh 1087030209
/usr/sbin/pkgmerge -> ../lib/portage/bin/pkgmerge 1087030209
/usr/lib/portage/bin/domo
/usr/lib/portage/bin/queryhost.sh
/usr/lib/portage/bin/fix-db.py
/usr/lib/portage/bin/fixdbentries
/usr/lib/portage/bin/sandbox
/usr/lib/portage/bin/chkcontents
/usr/lib/portage/bin/pkgmerge.new
/usr/lib/portage/bin/db-update.py
/usr/lib/portage/bin/extra_functions.sh
/usr/lib/portage/bin/emergehelp.py
/usr/lib/portage/bin/pkgname
/usr/lib/portage/bin/find-requires
/usr/lib/portage/bin/fixvirtuals
/usr/lib/portage/lib/sandbox.bashrc
/usr/share/man/man5/ebuild.5.gz
/usr/share/man/man5/portage.5.gz
/usr/share/man/man5/make.conf.5.gz
/usr/bin/euse
/usr/bin/qpkg
/usr/bin/etcat
/usr/bin/revdep-rebuild
/usr/bin/glsa-check
/usr/bin/dep-clean
/usr/bin/equery
/usr/bin/ewhich
/usr/bin/pkg-size
/usr/sbin/pkg-clean
/usr/sbin/mkebuild
/usr/share/doc/gentoolkit-0.2.0_pre8/*/README
genlop
esearch
/usr/bin/ebump
/usr/bin/gensync
/usr/bin/epkgmove
/usr/bin/echangelog
/usr/bin/ekeyword
ufed
--
WBR, Alex.
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Описание portage
2005-05-04 15:07 [gentoo-user-ru] Описание portage Alex Efros
@ 2005-05-05 4:59 ` Alexander Tratsevsky
2005-05-05 10:05 ` [gentoo-user-ru] Re: [OBORONA-SPAM] " Alex Efros
2005-05-05 10:45 ` [gentoo-user-ru] Re: [gentoo-user-ru] " Марсель Рысаев
` (2 subsequent siblings)
3 siblings, 1 reply; 29+ messages in thread
From: Alexander Tratsevsky @ 2005-05-05 4:59 UTC (permalink / raw
To: gentoo-user-ru
>Тогда я начал составлять для себя некое описание portage, просто чтобы
>лучше понимать как им пользоваться. Было это года полтора назад.
>В процессе составления такого описания, в какой-то момент понимание что
>и как делать у меня появилось и описание с тех пор я обновлять и
>прорабатывать TODO перестал. Поскольку недавно я это осознал, и понял
>что до удобоваримого вида я его уже не доведу, и переводить на
>английский, как планировал, не буду, то я решил его запостить в том виде,
>в котором оно сейчас есть. Может быть оно кому-нить пригодится. Если нет -
>ну что-ж, тогда сорри за траффик. :)
>
>
>
Надо бы на http://ru.gentoo-wiki.com выложить!
--
Alexander Tratsevsky
Calculate Pack, Jsc.
http://www.calculate.ru
mailto:support@calculate.ru
(812) 346-55-50
(095) 772-76-78
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* [gentoo-user-ru] Re: [OBORONA-SPAM] Re: [gentoo-user-ru] Описание portage
2005-05-05 4:59 ` Alexander Tratsevsky
@ 2005-05-05 10:05 ` Alex Efros
2005-05-05 10:24 ` [gentoo-user-ru] Re: [OBORONA-SPAM] Re: [gent oo-user-ru] " Vladimir Jakubovskij
0 siblings, 1 reply; 29+ messages in thread
From: Alex Efros @ 2005-05-05 10:05 UTC (permalink / raw
To: gentoo-user-ru
Hi!
On Thu, May 05, 2005 at 08:59:23AM +0400, Alexander Tratsevsky wrote:
> Надо бы на http://ru.gentoo-wiki.com выложить!
Там всё по категориям побито... а у меня всё вместе и мало-мало сумбурно
местами. Кроме того часть информации из моего текста там уже есть. Так
что чтобы это было полезно народу текст нужно перелопатить как следует.
А я последнее время завален работой и времени нет. Так что если кто
возьмётся - буду только рад. Для этого, в общем-то, в maillist и кидал.
--
WBR, Alex.
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: [OBORONA-SPAM] Re: [gent oo-user-ru] Описание portage
2005-05-05 10:05 ` [gentoo-user-ru] Re: [OBORONA-SPAM] " Alex Efros
@ 2005-05-05 10:24 ` Vladimir Jakubovskij
0 siblings, 0 replies; 29+ messages in thread
From: Vladimir Jakubovskij @ 2005-05-05 10:24 UTC (permalink / raw
To: gentoo-user-ru, Alex Efros, gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 755 bytes --]
я смогу сделать это. но только в воскресенье смогу начать.
On 5/5/05, Alex Efros <powerman@sky.net.ua> wrote:
>
> Hi!
>
> On Thu, May 05, 2005 at 08:59:23AM +0400, Alexander Tratsevsky wrote:
> > Надо бы на http://ru.gentoo-wiki.com выложить!
>
> Там всё по категориям побито... а у меня всё вместе и мало-мало сумбурно
> местами. Кроме того часть информации из моего текста там уже есть. Так
> что чтобы это было полезно народу текст нужно перелопатить как следует.
> А я последнее время завален работой и времени нет. Так что если кто
> возьмётся - буду только рад. Для этого, в общем-то, в maillist и кидал.
>
> --
> WBR, Alex.
> --
> gentoo-user-ru@gentoo.org mailing list
>
>
--
homepage:
www.ingae.tinkle.lt <http://www.ingae.tinkle.lt>
[-- Attachment #2: Type: text/html, Size: 1305 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* [gentoo-user-ru] Re: [gentoo-user-ru] Описание portage
2005-05-04 15:07 [gentoo-user-ru] Описание portage Alex Efros
2005-05-05 4:59 ` Alexander Tratsevsky
@ 2005-05-05 10:45 ` Марсель Рысаев
2005-05-11 10:51 ` [gentoo-user-ru] Установка KDE 3.4 Alexander Tratsevsky
2008-04-13 5:16 ` [gentoo-user-ru] Re: Описание portage Alex Efros
3 siblings, 0 replies; 29+ messages in thread
From: Марсель Рысаев @ 2005-05-05 10:45 UTC (permalink / raw
To: Alex Efros
AE> Тогда я начал составлять для себя некое описание portage, просто чтобы
AE> ***************************************************************
AE> *** Устройство и работа portage с точки зрения пользователя ***
AE> ***************************************************************
AE> Здесь собрана информация по нюансам использования portage из самых разных
Очень интересная подборка, много вкусностей, спасибо.
От себя я бы еще добавил, вдруг кто-то не знает:
для ускорения процесса сборки (если пакеты еще не выкачаны), можно на
одном терминале запустить emerge с ключом -f, а на другом собственно
сборку. Конфликтов не возникает, а процесс движется веселей.
--
С уважением,
Марсель mailto:mrysaev@narod.ru
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* [gentoo-user-ru] Установка KDE 3.4
2005-05-04 15:07 [gentoo-user-ru] Описание portage Alex Efros
2005-05-05 4:59 ` Alexander Tratsevsky
2005-05-05 10:45 ` [gentoo-user-ru] Re: [gentoo-user-ru] " Марсель Рысаев
@ 2005-05-11 10:51 ` Alexander Tratsevsky
2005-05-11 11:33 ` Dmitry Rys
2005-05-12 3:58 ` Makurin Roman
2008-04-13 5:16 ` [gentoo-user-ru] Re: Описание portage Alex Efros
3 siblings, 2 replies; 29+ messages in thread
From: Alexander Tratsevsky @ 2005-05-11 10:51 UTC (permalink / raw
To: gentoo-user-ru
Как мне правильно поставить нестабильную kde3.4
В данный момент мне пришлось выписась в package.mask все пакеты которые
стояли из kde: kdelibs и т.д. и переустановить с ACCEPT_KEYWORDS="~x86"
их все по очереди.
Но есть один глюк, возможно связанный с таким подходом. При открытии
файла в диалоговом окне KDE мне не показывает список имеющихся файлов,
только папки. Может этот глюк от кривой установки.
Как правильно поставить? Не переустанавливать же все пакеты вручную.
--
Alexander Tratsevsky
Calculate Pack, Jsc.
http://www.calculate.ru
mailto:support@calculate.ru
(812) 346-55-50
(095) 772-76-78
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Установка KDE 3.4
2005-05-11 10:51 ` [gentoo-user-ru] Установка KDE 3.4 Alexander Tratsevsky
@ 2005-05-11 11:33 ` Dmitry Rys
2005-05-11 12:28 ` Gleb Litvjak
` (2 more replies)
2005-05-12 3:58 ` Makurin Roman
1 sibling, 3 replies; 29+ messages in thread
From: Dmitry Rys @ 2005-05-11 11:33 UTC (permalink / raw
To: gentoo-user-ru
Возможно, это не поможет в решении проблемы, но на всякий случай скажу,
что я ставил командой "ACCEPT_KEYWORDS=~x86 emerge kde", и он нормально
установился (без такого глюка).
Alexander Tratsevsky wrote:
> Как мне правильно поставить нестабильную kde3.4
> В данный момент мне пришлось выписась в package.mask все пакеты
> которые стояли из kde: kdelibs и т.д. и переустановить с
> ACCEPT_KEYWORDS="~x86" их все по очереди.
>
> Но есть один глюк, возможно связанный с таким подходом. При открытии
> файла в диалоговом окне KDE мне не показывает список имеющихся файлов,
> только папки. Может этот глюк от кривой установки.
>
> Как правильно поставить? Не переустанавливать же все пакеты вручную.
>
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Установка KDE 3.4
2005-05-11 11:33 ` Dmitry Rys
@ 2005-05-11 12:28 ` Gleb Litvjak
2005-05-11 12:36 ` Alexander Tratsevsky
2005-05-11 12:52 ` Ivan "Sandello"
2 siblings, 0 replies; 29+ messages in thread
From: Gleb Litvjak @ 2005-05-11 12:28 UTC (permalink / raw
To: gentoo-user-ru
On Wednesday 11 May 2005 14:33, Dmitry Rys wrote:
Был такой глюк, починен ужо. Сделай emerge sync и переемерджей kde-i18n (или
не используй русскую локализацию)
--
BOFH Excuse #407:
Route flapping at the NAP.
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Установка KDE 3.4
2005-05-11 11:33 ` Dmitry Rys
2005-05-11 12:28 ` Gleb Litvjak
@ 2005-05-11 12:36 ` Alexander Tratsevsky
2005-05-11 12:52 ` Ivan "Sandello"
2 siblings, 0 replies; 29+ messages in thread
From: Alexander Tratsevsky @ 2005-05-11 12:36 UTC (permalink / raw
To: gentoo-user-ru
Наверное я торможу. Или какие-то другие тараканы.
>Возможно, это не поможет в решении проблемы, но на всякий случай скажу,
>что я ставил командой "ACCEPT_KEYWORDS=~x86 emerge kde", и он нормально
>установился (без такого глюка).
>
>Alexander Tratsevsky wrote:
>
>
--
Alexander Tratsevsky
Calculate Pack, Jsc.
http://www.calculate.ru
mailto:support@calculate.ru
(812) 346-55-50
(095) 772-76-78
--
gentoo-user-ru@gentoo.org mailing list
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Установка KDE 3.4
2005-05-11 11:33 ` Dmitry Rys
2005-05-11 12:28 ` Gleb Litvjak
2005-05-11 12:36 ` Alexander Tratsevsky
@ 2005-05-11 12:52 ` Ivan "Sandello"
2 siblings, 0 replies; 29+ messages in thread
From: Ivan "Sandello" @ 2005-05-11 12:52 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/html, Size: 1804 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Установка KDE 3.4
2005-05-11 10:51 ` [gentoo-user-ru] Установка KDE 3.4 Alexander Tratsevsky
2005-05-11 11:33 ` Dmitry Rys
@ 2005-05-12 3:58 ` Makurin Roman
1 sibling, 0 replies; 29+ messages in thread
From: Makurin Roman @ 2005-05-12 3:58 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 960 bytes --]
В сообщении от Среда 11 Май 2005 14:51 Alexander Tratsevsky написал(a):
> Как мне правильно поставить нестабильную kde3.4
> В данный момент мне пришлось выписась в package.mask все пакеты которые
> стояли из kde: kdelibs и т.д. и переустановить с ACCEPT_KEYWORDS="~x86"
> их все по очереди.
>
> Но есть один глюк, возможно связанный с таким подходом. При открытии
> файла в диалоговом окне KDE мне не показывает список имеющихся файлов,
> только папки. Может этот глюк от кривой установки.
>
> Как правильно поставить? Не переустанавливать же все пакеты вручную.
>
Да у меня тоже такой глюк :-). Всё из-за того что значение "Фильтра"
установлено в "Все файлы", если удалить это значение и нажать Enter то все
будет нормал :-)
Хотя согласен.... фича не из приятных ;-)
> --
> Alexander Tratsevsky
> Calculate Pack, Jsc.
> http://www.calculate.ru
> mailto:support@calculate.ru
> (812) 346-55-50
> (095) 772-76-78
--
Jabber: drolyk@jabber.ru
ICQ: 105266647
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* [gentoo-user-ru] Re: Описание portage
2005-05-04 15:07 [gentoo-user-ru] Описание portage Alex Efros
` (2 preceding siblings ...)
2005-05-11 10:51 ` [gentoo-user-ru] Установка KDE 3.4 Alexander Tratsevsky
@ 2008-04-13 5:16 ` Alex Efros
2008-04-13 11:27 ` Peter Volkov
3 siblings, 1 reply; 29+ messages in thread
From: Alex Efros @ 2008-04-13 5:16 UTC (permalink / raw
To: gentoo-user-ru
Hi!
Три года назад я запостил здесь документ subj, посвящённый поддержке и
обновлению Gentoo. Он был практически не отформатирован и немного хаотичен.
И таки вы мне не поверите, но у меня наконец-то дошли руки его нормально
отформатировать (AsciiDoc, not GuideXML -- sorry guys I hate XML :)) и
обновить под текущие реалии:
http://powerman.name/doc/portage
--
WBR, Alex.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-13 5:16 ` [gentoo-user-ru] Re: Описание portage Alex Efros
@ 2008-04-13 11:27 ` Peter Volkov
2008-04-13 13:52 ` Alex Efros
0 siblings, 1 reply; 29+ messages in thread
From: Peter Volkov @ 2008-04-13 11:27 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 9869 bytes --]
В Вск, 13/04/2008 в 08:16 +0300, Alex Efros пишет:
> Три года назад я запостил здесь документ subj, посвящённый поддержке и
> обновлению Gentoo. Он был практически не отформатирован и немного хаотичен.
> И таки вы мне не поверите, но у меня наконец-то дошли руки его нормально
> отформатировать (AsciiDoc, not GuideXML -- sorry guys I hate XML :)) и
> обновить под текущие реалии:
> http://powerman.name/doc/portage
Привет, Alex.
Есть несколько замечаний, которые, по моему, стоит исправить, ибо иначе
статья вводит в заблуждение не окрепшие умы :)
1. CHOST возможно менять даже без stage1:
http://www.gentoo.org/doc/en/change-chost.xml
Вообще, толку от stage1 для пользователей gentoo сейчас почти нет и
именно поэтому установку со stage1 просто удалили из handbook. Так что я
бы вообще про него ничего не писал. (те, для кого есть толк от stage1 и
так всё знают про неё)
2. Как выставлять MAKEOPTS? Если я правильно помню то: число процессоров
+ 1.
3. Версии пакетов: при указании cate-gory/package выбирается не "любая
версия", а самая последняя доступная.
4. portage уже умеет работать со слотами. Так что обновить java можно:
emerge -u dev-java/sun-jdk:1.5
5. По поводу обновления и чего не достаточно.
Прочитайте первый вопрос в:
http://www.gentoo.org/proj/en/portage/doc/faq.xml
Если вы сделаете, так как там написано, portage *будет* обновлять *все*
пакеты указанные в world файле и все их зависимости. Единственное, что
надо будет делать, чтобы не было необновляемых уязвимых пакетов это
правильно делать emerge --depclean.
6. Цитирую ваш текст:
> Я где-то вычитал, что так же в нём не должно быть пакетов, которые уже
> входят в system. Я с этим не согласен:
Это действительно не нужно и не нужно это никому советовать.
> Непонятно, как это можно проконтролировать; как по-простому узнать
> список пакетов входящих в system.
Список пакетов system можно посмотреть в профиле. В файле packages. Но
помните что профили стекируются и значит вам нужно пройтись по всем
parents и посмотреть, что где включено, что где отключено.
> При изменении профайла состав пакетов входящих в system может
> измениться, и удалённые из system пакеты будут удалены при выполнении
> emerge --depclean.
Не забывайте, что emerge --depclean нельзя делать бездумно. Нужно
всегда(!) сначала делать
emerge -p --depclean
и потом, если всё Ок
emerge --depclean
Тогда вы не пропустите нужные вам пакеты...
> А если мне эти пакеты нужны?
Читаем внимательно то, что portage пишет всякий раз вы делаете
emerge --depclean (особенно второй абзац):
*** WARNING *** Depclean may break link level dependencies. Thus, it is
*** WARNING *** recommended to use a tool such as `revdep-rebuild` (from
*** WARNING *** app-portage/gentoolkit) in order to detect such breakage.
*** WARNING ***
*** WARNING *** Also study the list of packages to be cleaned for any obvious
*** WARNING *** mistakes. Packages that are part of the world set will always
*** WARNING *** be kept. They can be manually added to this set with
*** WARNING *** `emerge --noreplace <atom>`. Packages that are listed in
*** WARNING *** package.provided (see portage(5)) will be removed by
*** WARNING *** depclean, even if they are part of the world set.
*** WARNING ***
*** WARNING *** As a safety measure, depclean will not remove any packages
*** WARNING *** unless *all* required dependencies have been resolved. As a
*** WARNING *** consequence, it is often necessary to run
*** WARNING *** `emerge --update --newuse --deep world` prior to depclean.
> Что плохого, если я
> заранее обезопашу себя от этой ситуации внеся все нужные мне пакеты
> в /var/lib/portage/world, даже если сейчас некоторые из них входят в
> system?
Вы же сами боретесь за то, чтобы в world файле было как можно меньше не
нужного... Они там просто лишние.
7. Любопытно, при каких обстоятельствах, portage добавляет *версии*
пакетов в world файл? Ни разу с этим не встречался.
8. dep -p -w - я бы советовал с осторожностью его использовать. Впрочем,
если вы будете внимательно смотреть на вывод emerge --depclean проблем
быть не должно.
9. > Если emerge -uDNpv world показывает, что будет обновляться пакет
> входящий в toolchain (linux-headers, glibc, binutils или gcc), то
> ОЧЕНЬ рекомендуется полностью перекомпилировать всю систему.
Ух, зачем? При обновлениях внутри одного слота это явно overkill. При
обновлении слотов есть gcc upgrading guide и тогда, возможно, я с вами
соглашусь...
10. > Чисто теоретически существует пакет binutils-config
Он существует вполне реально, если вы собираете binutils с USE флагом
multislot.
11.
> Даже после emerge -uDN world в системе могут оставаться устаревшие
> пакеты с известными уязвимостями — в слотах!
Это очень громкое утверждение, и не соответствует реальности.
12.
> Даже после emerge -uDN world в системе могут оставаться устаревшие
> пакеты с известными уязвимостями — в слотах!
Откат на предыдущие версии glibc очень сложен и средствами portage не
возможен. Возможно только на предыдущие ревизии... Поэтому тут нужно
быть ну очень осторожными иначе систему придётся перезагружать с
liveCD...
> После апгрейда нужно обязательно запустить revdep-rebuild, чтобы
> пересобрать пакеты слинкованные со старой версией glibc.
Это совсем не верно. glibc обеспечивает обратную совместимость, так что
в данном случае revdev-rebuild не захочет ничего обновлять.
А вот то, что у вас при последним пунктом обновления системы нет
revdep-rebuild - это баг :)
13.
> (но использовать etc-update крайне не рекомендуется!).
В чём проблема etc-update? Кем не рекомендуется и почему??? Я её
использовал в течении года, а то и больше абсолютно без проблем...
14.
> Настройка […] для конкретного пакета
> В portage есть универсальный хук: /etc/portage/bashrc.
Для конкретного пакета, есть куда более удобный способ. Добавляйте
переменные окружения в
/etc/portage/env/category/package
и всё будет работать. Не нужно усложнять...
15. > Чистка каталога с distfiles
Ух. Откройте для себя eclean и не изобретайте велосипед :)
В остальном, учитывая, что документации о portage на русском языке мало,
полезно иметь ещё одну. С другой стороны, на мой взгляд куда полезнее
было бы обновить handbook, но это и сложнее, чем писать с нуля ... но
это только на мой взгляд и в этом списке рассылки это офтопик )
--
Peter.
[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-13 11:27 ` Peter Volkov
@ 2008-04-13 13:52 ` Alex Efros
2008-04-13 14:01 ` Vladimir Rusinov
2008-04-14 20:27 ` Peter Volkov
0 siblings, 2 replies; 29+ messages in thread
From: Alex Efros @ 2008-04-13 13:52 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 7089 bytes --]
Hi!
On Sun, Apr 13, 2008 at 03:27:57PM +0400, Peter Volkov wrote:
> Есть несколько замечаний, которые, по моему, стоит исправить, ибо иначе
> статья вводит в заблуждение не окрепшие умы :)
Громадное спасибо, на такой шикарный ответ я даже не рассчитывал!
Пункты, которые я не прокомментировал ниже, уже исправлены.
> 5. По поводу обновления и чего не достаточно.
Ну, тупого выполнения распространённой и простой комбинации
emerge --sync
emerge -uDNa world
dispatch-conf
в любом случае не достаточно - иногда обновляется toolchain, плюс есть ещё
glsa-check, depclean и revdep-rebuild, иногда нужно выполнить
специфический upgrade guide для какого-то пакета, настроить и читать
ELOG_NOTICE... Поэтому мне кажется что явным образом подчеркнуть
недостаточность этих команд необходимо.
> Прочитайте первый вопрос в:
>
> http://www.gentoo.org/proj/en/portage/doc/faq.xml
>
> Если вы сделаете, так как там написано, portage *будет* обновлять *все*
> пакеты указанные в world файле и все их зависимости. Единственное, что
> надо будет делать, чтобы не было необновляемых уязвимых пакетов это
> правильно делать emerge --depclean.
Честно говоря, я не совсем понял как это работает, может Вы поясните?
Например, слоты. Я сделал emerge sun-jdk, при этом установилась версия 1.4.
В world при этом слот не указан, там просто написано sun-jdk.
Через некоторое время при обновлении world у меня в слот ставится версия 1.5.
В world файле при этом по-прежнему только одна строка sun-jdk.
Обновляться с world теперь будет только 1.5.
И что, опция --with-bdeps форсирует обновление 1.4? Сомневаюсь я что-то...
Я подозреваю, что есть ещё какие-то пакеты/ситуации (не учтённые мной в
этой документации), которые даже при описанном мной способе не будут
обновляться - и для обновления которых нужна --with-bdeps. Я прав?
> 6. Цитирую ваш текст:
> > Я где-то вычитал, что так же в нём не должно быть пакетов, которые уже
> > входят в system. Я с этим не согласен:
> ???Это действительно не нужно и не нужно это никому советовать.
> > Непонятно, как это можно проконтролировать; как по-простому узнать
> > список пакетов входящих в system.
> Список пакетов system можно посмотреть в профиле. В файле packages. Но
> помните что профили стекируются и значит вам нужно пройтись по всем
> parents и посмотреть, что где включено, что где отключено.
Ага, ходил я уже ручками по всем parent-ам, имел такое удовольствие.
Это никак нельзя назвать "по-простому узнать". Я к тому, что если
официально не рекомендуется держать в world пакеты из system, то должен
быть простой способ это проверять и исправлять.
> > Что плохого, если я
> > заранее обезопашу себя от этой ситуации внеся все нужные мне пакеты
> > в /var/lib/portage/world, даже если сейчас некоторые из них входят в
> > system?
> Вы же сами боретесь за то, чтобы в world файле было как можно меньше не
> нужного... Они там просто лишние.
Э... с этим просто невозможно согласиться. :) Это _нужные_ мне пакеты, и
они совсем не лишние в файле world - который является списком именно
нужных _МНЕ_ (а не системе для поддержания работоспособности) пакетов.
Лишние записи в world вредны потому, что во-первых могут в определённых
случаях мешать нормальному обновлению, и во-вторых увеличивают кол-во
установленного софта без нужды (а это, в частности, повышает вероятность
взлома системы - очень обидно если тебя ломают через дыру в пакете,
который даже не должен был быть установлен!).
Нужные мне пакеты из system не являются "лишними". Они избыточны, да,
но вреда от них я никакого не вижу. А он есть? :)
> 7. Любопытно, при каких обстоятельствах, portage добавляет *версии*
> пакетов в world файл? Ни разу с этим не встречался.
Затрудняюсь ответить. Но я их несколько лет назад там встречал, хотя сам
ручками этого в world не добавлял. Сейчас вместо этого там слоты появились.
> 8. dep -p -w - я бы советовал с осторожностью его использовать. Впрочем,
> если вы будете внимательно смотреть на вывод emerge --depclean проблем
> быть не должно.
Кстати, я тут погонял свежую версию dep - она явно более агрессивная чем
emerge --depclean. Вообще, раньше --depclean работал плохо и dep - это
было спасение. А сейчас вроде и --depclean весьма неплохо справляется.
В любом случае dep штука интересная - как минимум предоставляет кучу
дополнительной информации.
> 9. > Если emerge -uDNpv world показывает, что будет обновляться пакет
> > входящий в toolchain (linux-headers, glibc, binutils или gcc), то
> > ОЧЕНЬ рекомендуется полностью перекомпилировать всю систему.
> Ух, зачем? При обновлениях внутри одного слота это явно overkill. При
> обновлении слотов есть gcc upgrading guide и тогда, возможно, я с вами
> соглашусь...
Вообще этот вопрос многократно и очень бурно обсуждался на форумах gentoo.
Если систему полностью не пересобирать, то иногда у народа вылазили
довольно специфические глюки. И это были не разовые случаи. Честно говоря,
эти пакеты обновляются редко, и полная пересборка занимает не так много
времени чтобы на этом экономить, даже при минимальной вероятности
наступить на граблю.
Не знаю как насчёт "внутри одного слота", но когда у пакета меняется
только номер ревизии ebuild-а я полную пересборку действительно не делаю.
Ну и кроме того, какой смысл вообще обновлять gcc если после этого не
пересобрать новым gcc систему?
> 11.
> > Даже после emerge -uDN world в системе могут оставаться устаревшие
> > пакеты с известными уязвимостями ??? в слотах!
> Это очень громкое утверждение, и не соответствует реальности.
Да? И давно? Не, серьёзно, я эту проблему лично неоднократно наблюдал...
> 12.
> Откат на предыдущие версии glibc очень сложен и средствами portage не
> возможен. Возможно только на предыдущие ревизии... Поэтому тут нужно
> быть ну очень осторожными иначе систему придётся перезагружать с
> liveCD...
Ну, здесь речь идёт об откате в стиле
1. emerge glibc
2. увидели что куча всего перестала работать
3. вернули предыдущую glibc из .tbz2
Причём пункт 3 может выполняться как через emerge -K на этой же системе
(если она ещё хоть частично работает), либо через наглую распаковку его
tar-ом после загрузки с чего-нить типа LiveCD или PXE.
Иными словами после обновления glibc больше ничего не пересобиралось.
Я не вижу, почему это не должно работать - а страховка получается полезная
и необременительная.
> > После апгрейда нужно обязательно запустить revdep-rebuild, чтобы
> > пересобрать пакеты слинкованные со старой версией glibc.
> Это совсем не верно. glibc обеспечивает обратную совместимость, так что
> в данном случае revdev-rebuild не захочет ничего обновлять.
В случае glibc - может быть, но у этого абзаца был заголовок
"Апгрейд glibc и других критических библиотек" - а для других библиотек
это вроде актуально.
> А вот то, что у вас при последним пунктом обновления системы нет
> revdep-rebuild - это баг :)
Как это нет?! Обязательно есть, и всегда там было - смотрите раздел
"После обновления".
--
WBR, Alex.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-13 13:52 ` Alex Efros
@ 2008-04-13 14:01 ` Vladimir Rusinov
2008-04-13 14:09 ` Alex Efros
2008-04-14 20:27 ` Peter Volkov
1 sibling, 1 reply; 29+ messages in thread
From: Vladimir Rusinov @ 2008-04-13 14:01 UTC (permalink / raw
To: gentoo-user-ru
2008/4/13 Alex Efros <powerman@powerman.asdfgroup.com>:
> > Прочитайте первый вопрос в:
> >
> > http://www.gentoo.org/proj/en/portage/doc/faq.xml
> >
> > Если вы сделаете, так как там написано, portage *будет* обновлять *все*
> > пакеты указанные в world файле и все их зависимости. Единственное, что
> > надо будет делать, чтобы не было необновляемых уязвимых пакетов это
> > правильно делать emerge --depclean.
>
> Честно говоря, я не совсем понял как это работает, может Вы поясните?
>
> Например, слоты. Я сделал emerge sun-jdk, при этом установилась версия 1.4.
> В world при этом слот не указан, там просто написано sun-jdk.
> Через некоторое время при обновлении world у меня в слот ставится версия 1.5.
> В world файле при этом по-прежнему только одна строка sun-jdk.
> Обновляться с world теперь будет только 1.5.
> И что, опция --with-bdeps форсирует обновление 1.4? Сомневаюсь я что-то...
Безо всяких опций обновляться будут пакаджи во всех слотах.
> > 6. Цитирую ваш текст:
> > > Я где-то вычитал, что так же в нём не должно быть пакетов, которые уже
> > > входят в system. Я с этим не согласен:
> > ???Это действительно не нужно и не нужно это никому советовать.
> > > Непонятно, как это можно проконтролировать; как по-простому узнать
> > > список пакетов входящих в system.
> > Список пакетов system можно посмотреть в профиле. В файле packages. Но
> > помните что профили стекируются и значит вам нужно пройтись по всем
> > parents и посмотреть, что где включено, что где отключено.
>
> Ага, ходил я уже ручками по всем parent-ам, имел такое удовольствие.
> Это никак нельзя назвать "по-простому узнать". Я к тому, что если
> официально не рекомендуется держать в world пакеты из system, то должен
> быть простой способ это проверять и исправлять.
Не совсем конечно корректно, но
emerge -pe system
> > > Что плохого, если я
> > > заранее обезопашу себя от этой ситуации внеся все нужные мне пакеты
> > > в /var/lib/portage/world, даже если сейчас некоторые из них входят в
> > > system?
> > Вы же сами боретесь за то, чтобы в world файле было как можно меньше не
> > нужного... Они там просто лишние.
>
> Э... с этим просто невозможно согласиться. :) Это _нужные_ мне пакеты, и
> они совсем не лишние в файле world - который является списком именно
> нужных _МНЕ_ (а не системе для поддержания работоспособности) пакетов.
Сомневаюсь что _ВЫ_ непосрественно работаете с каким-нибудь там
sys-devel/autoconf-wrapper.
> > 11.
> > > Даже после emerge -uDN world в системе могут оставаться устаревшие
> > > пакеты с известными уязвимостями ??? в слотах!
> > Это очень громкое утверждение, и не соответствует реальности.
>
> Да? И давно? Не, серьёзно, я эту проблему лично неоднократно наблюдал...
см. выше
--
Vladimir Rusinov
Voronezh, Russia
UNIX Admin @ Murano Software
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-13 14:01 ` Vladimir Rusinov
@ 2008-04-13 14:09 ` Alex Efros
0 siblings, 0 replies; 29+ messages in thread
From: Alex Efros @ 2008-04-13 14:09 UTC (permalink / raw
To: gentoo-user-ru
Hi!
On Sun, Apr 13, 2008 at 06:01:29PM +0400, Vladimir Rusinov wrote:
> > Например, слоты. Я сделал emerge sun-jdk, при этом установилась версия 1.4.
> > В world при этом слот не указан, там просто написано sun-jdk.
> > Через некоторое время при обновлении world у меня в слот ставится версия 1.5.
> > В world файле при этом по-прежнему только одна строка sun-jdk.
> > Обновляться с world теперь будет только 1.5.
> Безо всяких опций обновляться будут пакаджи во всех слотах.
Это ежели в world слоты явно прописаны. А в описанном выше примере их там,
как я понимаю, не будет.
> Не совсем конечно корректно, но
> emerge -pe system
Увы, это СОВСЕМ некорректно. :( И я уже молчу про то, что неудобно.
> Сомневаюсь что _ВЫ_ непосрественно работаете с каким-нибудь там
> sys-devel/autoconf-wrapper.
Ой, Вы даже не представляете, сколько в system понапихали полезненького! :)
Например, там wget.
--
WBR, Alex.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-13 13:52 ` Alex Efros
2008-04-13 14:01 ` Vladimir Rusinov
@ 2008-04-14 20:27 ` Peter Volkov
2008-04-14 23:48 ` Alex Efros
1 sibling, 1 reply; 29+ messages in thread
From: Peter Volkov @ 2008-04-14 20:27 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 10013 bytes --]
В Вск, 13/04/2008 в 16:52 +0300, Alex Efros пишет:
> > 5. По поводу обновления и чего не достаточно.
>
> Ну, тупого выполнения распространённой и простой комбинации
> emerge --sync
> emerge -uDNa world
> dispatch-conf
> в любом случае не достаточно - иногда обновляется toolchain, плюс есть ещё
> glsa-check, depclean и revdep-rebuild, иногда нужно выполнить
> специфический upgrade guide для какого-то пакета, настроить и читать
> ELOG_NOTICE... Поэтому мне кажется что явным образом подчеркнуть
> недостаточность этих команд необходимо.
glsa-check избыточен если вы сделали emerge -uDNa world. glsa
выпускаются только уже для стабильных пакетов, поэтому если у вас
уязвимый пакет будет установлен -uD должен его обновить...
> > http://www.gentoo.org/proj/en/portage/doc/faq.xml
> >
> Честно говоря, я не совсем понял как это работает, может Вы поясните?
>
> Например, слоты.
Нет, к слотам это не имеет никакого отношения. Там написано про то, что
по умолчанию emerge не обновляет зависимости, которые нужны *только* для
сборки. И поэтому, если вы не будете добавлять --with-bdeps=y, часть
пакетов обновляться не будут.
> Я подозреваю, что есть ещё какие-то пакеты/ситуации (не учтённые мной в
> этой документации), которые даже при описанном мной способе не будут
> обновляться - и для обновления которых нужна --with-bdeps. Я прав?
Нет, всё остальное должно обновляться и если этого не происходит это
баг. Слоты тоже должны обновляться. Так же java у меня сидит в трёх
слотах 1.4, 1.5 и 1.6 и все обновляются...
Более того. Если от пакета в слоте больше ничего не зависит --depclean
его вычистит (если у вас пакет в world файле, то не --depclean не
поможет и нужно ручками)
> > Список пакетов system можно посмотреть в профиле. В файле packages. Но
> > помните что профили стекируются и значит вам нужно пройтись по всем
> > parents и посмотреть, что где включено, что где отключено.
>
> Ага, ходил я уже ручками по всем parent-ам, имел такое удовольствие.
> Это никак нельзя назвать "по-простому узнать". Я к тому, что если
> официально не рекомендуется держать в world пакеты из system, то должен
> быть простой способ это проверять и исправлять.
Ну дело в том, что и не предполагается, что обычным пользователям
придётся это делать. Если вы этим занялись, то возможно вам проще
сделать в локальном оверлее свой профиль...
> Нужные мне пакеты из system не являются "лишними". Они избыточны, да,
> но вреда от них я никакого не вижу. А он есть? :)
Нет, вреда нет. Просто и смысла особого тоже нет.
> > 7. Любопытно, при каких обстоятельствах, portage добавляет *версии*
> > пакетов в world файл? Ни разу с этим не встречался.
>
> Затрудняюсь ответить. Но я их несколько лет назад там встречал, хотя сам
> ручками этого в world не добавлял. Сейчас вместо этого там слоты появились.
Слоты да, но вот версиям там делать нечего...
> > 9. > Если emerge -uDNpv world показывает, что будет обновляться пакет
> > > входящий в toolchain (linux-headers, glibc, binutils или gcc), то
> > > ОЧЕНЬ рекомендуется полностью перекомпилировать всю систему.
> > Ух, зачем? При обновлениях внутри одного слота это явно overkill. При
> > обновлении слотов есть gcc upgrading guide и тогда, возможно, я с вами
> > соглашусь...
>
> Вообще этот вопрос многократно и очень бурно обсуждался на форумах gentoo.
> Если систему полностью не пересобирать, то иногда у народа вылазили
> довольно специфические глюки. И это были не разовые случаи. Честно говоря,
> эти пакеты обновляются редко, и полная пересборка занимает не так много
> времени чтобы на этом экономить, даже при минимальной вероятности
> наступить на граблю.
> Не знаю как насчёт "внутри одного слота", но когда у пакета меняется
> только номер ревизии ebuild-а я полную пересборку действительно не делаю.
>
> Ну и кроме того, какой смысл вообще обновлять gcc если после этого не
> пересобрать новым gcc систему?
В этом есть доля правды. Однако совет пересобирать всё при обновлении
чего либо из linux-headers, glibc, binutils или gcc звучит слишком
круто. По частям: после обновления linux-headers имеет смысл пересобрать
только glibc и это написано в сообщениях после сборки. После пересборки
glibc ИМО не нужно ничего делать... Вы не заметите разницы.
binutils и gcc единственные кандидаты и то, про gcc, что надо делать
явно написано в gcc upgrading guide.
> > 11.
> > > Даже после emerge -uDN world в системе могут оставаться устаревшие
> > > пакеты с известными уязвимостями ??? в слотах!
> > Это очень громкое утверждение, и не соответствует реальности.
>
> Да? И давно? Не, серьёзно, я эту проблему лично неоднократно наблюдал...
Какую? emerge обновляет пакеты в слотах и удаляет, если они там больше
не нужны. Если у вас пакет в world файле... То это другая история, вы
должны сами за такими пакетами следить. Каждый слот это как отдельный
пакет и поэтому, естественно, что emerge не знает какие слоты вам нужны
и не удаляет все кроме последнего...
В общем надо заметить, что portage в последнее время стал значительно
лучше работать со слотами, поэтому поиграйте с ними и вам понравиться :)
> > 12.
> > Откат на предыдущие версии glibc очень сложен и средствами portage не
> > возможен. Возможно только на предыдущие ревизии... Поэтому тут нужно
> > быть ну очень осторожными иначе систему придётся перезагружать с
> > liveCD...
>
> Ну, здесь речь идёт об откате в стиле
> 1. emerge glibc
> 2. увидели что куча всего перестала работать
> 3. вернули предыдущую glibc из .tbz2
> Причём пункт 3 может выполняться как через emerge -K на этой же системе
> (если она ещё хоть частично работает), либо через наглую распаковку его
> tar-ом после загрузки с чего-нить типа LiveCD или PXE.
>
> Иными словами после обновления glibc больше ничего не пересобиралось.
> Я не вижу, почему это не должно работать - а страховка получается полезная
> и необременительная.
Стоит это выделить :) Иначе работать не будет и сломает систему...
--
Peter.
[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-14 20:27 ` Peter Volkov
@ 2008-04-14 23:48 ` Alex Efros
2008-04-15 1:44 ` Andrew A. Sabitov
2008-04-15 7:34 ` Peter Volkov
0 siblings, 2 replies; 29+ messages in thread
From: Alex Efros @ 2008-04-14 23:48 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 578 bytes --]
Hi!
У меня осталось два вопроса, которые хочется уточнить для полной
уверенности что я всё понял правильно. Все остальные моменты я сейчас
откорректирую.
1. Для _полного_ обновления нужно делать
emerge -uDN --with-bdeps=y world
Есть ли причины не добавлять --with-bdeps=y в каких-то случаях?
2. glsa-check избыточен если вы сделали
emerge -uDN --with-bdeps=y world
_И_
emerge --depclean
Если, к примеру, при --depclean вы не удалили все предложенные им
пакеты, то glsa-check желательно использовать, во избежание...
--
WBR, Alex.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-14 23:48 ` Alex Efros
@ 2008-04-15 1:44 ` Andrew A. Sabitov
2008-04-15 1:56 ` Alex Efros
2008-04-15 7:36 ` Peter Volkov
2008-04-15 7:34 ` Peter Volkov
1 sibling, 2 replies; 29+ messages in thread
From: Andrew A. Sabitov @ 2008-04-15 1:44 UTC (permalink / raw
To: gentoo-user-ru
Всем привет!
В этой доке еще не плохо было бы обсудить, как искать остающийся мусор
после удаления пакетов. Типичный пример:
ставятся сорцы нового ядра, они ставятся в слоты, так что предыдущие
версии отстаются. Если выполнить emerge --depclean или ручками сказать
emerge -C на ненужные версии, то после удаления пакета остаются директории
из под этих пакетов. Понятно почему: там лежат объектники после компиляции
ядра. Конкретно с сорцами ядер хотя бы все просто, весь этот мусор лежит
под одной директорией и его легко вычистить, а вот что делать с другими
пакетами???
--
<> 158 <>
Бушуют в келиях, мечетях и церквах,
Надежда в рай войти и перед адом страх.
Лишь у того в душе, кто понял тайну мира,
Сок этих сорных трав весь высох и зачах.
Омар Хайям. Рубаи.
,,,,
/'^'\
( o o )
--oOOO--(_)--OOOo------------------------------------------------
| Andrew A. Sabitov
| Email: sabitov@sabitov.pp.ru
| WWW: sabitov.pp.ru
| .oooO Еж птица гордая - пока не пнешь, не полетит!
| ( ) Oooo.
---\ (----( )-------------------------------------------------
\_) ) /
(_/
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 1:44 ` Andrew A. Sabitov
@ 2008-04-15 1:56 ` Alex Efros
2008-04-15 3:26 ` Andrew A. Sabitov
2008-04-15 7:36 ` Peter Volkov
1 sibling, 1 reply; 29+ messages in thread
From: Alex Efros @ 2008-04-15 1:56 UTC (permalink / raw
To: gentoo-user-ru
Hi!
On Tue, Apr 15, 2008 at 08:44:41AM +0700, Andrew A. Sabitov wrote:
> ставятся сорцы нового ядра, они ставятся в слоты, так что предыдущие
> версии отстаются. Если выполнить emerge --depclean или ручками сказать
> emerge -C на ненужные версии, то после удаления пакета остаются директории
> из под этих пакетов. Понятно почему: там лежат объектники после компиляции
> ядра. Конкретно с сорцами ядер хотя бы все просто, весь этот мусор лежит
> под одной директорией и его легко вычистить, а вот что делать с другими
> пакетами???
А что, с другими пакетами тоже есть эта проблема? Единственное, что
приходит на ум - конфиги удалённых пакетов в /etc. Но их автоматом лучше
не удалять, однозначно. :)
--
WBR, Alex.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 1:56 ` Alex Efros
@ 2008-04-15 3:26 ` Andrew A. Sabitov
2008-04-15 11:54 ` Alex Efros
0 siblings, 1 reply; 29+ messages in thread
From: Andrew A. Sabitov @ 2008-04-15 3:26 UTC (permalink / raw
To: gentoo-user-ru
А Вы сделайте такую вещь:
find /usr -print > existing-files.txt
sort existing-files.txt | uniq > /tmp/1; mv /tmp/1 existing-files.txt
equery l | sort > installed-pkgs.txt
while read p ; do equery f =$p | grep '/usr' >> owned-files.txt ; done < installed-pkgs.txt
sort owned-files.txt | uniq > /tmp/1; mv /tmp/1 owned-files.txt
diff existing-files.txt owned-files.txt | grep -v '/usr/portage' | grep '/usr' > MUSOR.txt
wc -l MUSOR.txt
Для меня wc выдает сейчас 24381... Проблема в том, что операции ужасно
ресурсоемкие и выполнять их на регулярной основе нереально. Кроме того, И
ЭТО САМОЕ ГЛАВНОЕ, к содержимому MUSOR.txt тоже надо относиться творчески:
все подряд убивать нельзя :( Например, у меня 5й строкой идет /usr/bin/c++
=============================================================================
yew ~ # ls -l /usr/bin/c++
-rwxr-xr-x 1 root root 9576 Фев 17 23:51 /usr/bin/c++
yew ~ # qfile /usr/bin/c++
yew ~ #
=============================================================================
Типа никому не принадлежит!
Вот и хочется найти какую-то более адекватную процедуру...
On Tue, 15 Apr 2008, Alex Efros wrote:
> Hi!
>
> On Tue, Apr 15, 2008 at 08:44:41AM +0700, Andrew A. Sabitov wrote:
> > ставятся сорцы нового ядра, они ставятся в слоты, так что предыдущие
> > версии отстаются. Если выполнить emerge --depclean или ручками сказать
> > emerge -C на ненужные версии, то после удаления пакета остаются директории
> > из под этих пакетов. Понятно почему: там лежат объектники после компиляции
> > ядра. Конкретно с сорцами ядер хотя бы все просто, весь этот мусор лежит
> > под одной директорией и его легко вычистить, а вот что делать с другими
> > пакетами???
>
> А что, с другими пакетами тоже есть эта проблема? Единственное, что
> приходит на ум - конфиги удалённых пакетов в /etc. Но их автоматом лучше
> не удалять, однозначно. :)
>
>
--
<> 152 <>
Шабан сменяется сегодня Рамазаном, -
Расстаться надобно с приятелем-стаканом.
Я пред разлукой так в последний раз напьюсь,
Что буду месяц весь до разговенья пьяным.
Омар Хайям. Рубаи.
,,,,
/'^'\
( o o )
--oOOO--(_)--OOOo------------------------------------------------
| Andrew A. Sabitov
| Email: sabitov@sabitov.pp.ru
| WWW: sabitov.pp.ru
| .oooO Еж птица гордая - пока не пнешь, не полетит!
| ( ) Oooo.
---\ (----( )-------------------------------------------------
\_) ) /
(_/
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-14 23:48 ` Alex Efros
2008-04-15 1:44 ` Andrew A. Sabitov
@ 2008-04-15 7:34 ` Peter Volkov
2008-04-15 11:27 ` Alex Efros
1 sibling, 1 reply; 29+ messages in thread
From: Peter Volkov @ 2008-04-15 7:34 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 792 bytes --]
В Втр, 15/04/2008 в 02:48 +0300, Alex Efros пишет:
> 1. Для _полного_ обновления нужно делать
> emerge -uDN --with-bdeps=y world
> Есть ли причины не добавлять --with-bdeps=y в каких-то случаях?
Вот этого не знаю. У меня на всех машинах оно включено.
> 2. glsa-check избыточен если вы сделали
> emerge -uDN --with-bdeps=y world
> _И_
> emerge --depclean
> Если, к примеру, при --depclean вы не удалили все предложенные им
> пакеты, то glsa-check желательно использовать, во избежание..
Ok, согласен.
--
Peter.
[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 1:44 ` Andrew A. Sabitov
2008-04-15 1:56 ` Alex Efros
@ 2008-04-15 7:36 ` Peter Volkov
2008-04-15 7:43 ` Andrew A. Sabitov
2008-04-15 11:07 ` Alex Efros
1 sibling, 2 replies; 29+ messages in thread
From: Peter Volkov @ 2008-04-15 7:36 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 572 bytes --]
В Втр, 15/04/2008 в 08:44 +0700, Andrew A. Sabitov пишет:
> В этой доке еще не плохо было бы обсудить, как искать остающийся мусор
> после удаления пакетов.
Иногда я использую findcruft:
http://en.gentoo-wiki.com/TIP_Clean_Up_Cruft
К сожалению, чтобы его использовать, нужно довольно долго "затачивать".
Но может быть это как раз то, что вы ищите...
--
Peter.
[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 7:36 ` Peter Volkov
@ 2008-04-15 7:43 ` Andrew A. Sabitov
2008-04-15 11:07 ` Alex Efros
1 sibling, 0 replies; 29+ messages in thread
From: Andrew A. Sabitov @ 2008-04-15 7:43 UTC (permalink / raw
To: gentoo-user-ru
Спасибо! Буду посмотреть.
Peter Volkov wrote:
> В Втр, 15/04/2008 в 08:44 +0700, Andrew A. Sabitov пишет:
>
>> В этой доке еще не плохо было бы обсудить, как искать остающийся мусор
>> после удаления пакетов.
>>
>
> Иногда я использую findcruft:
>
> http://en.gentoo-wiki.com/TIP_Clean_Up_Cruft
>
> К сожалению, чтобы его использовать, нужно довольно долго "затачивать".
> Но может быть это как раз то, что вы ищите...
>
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 7:36 ` Peter Volkov
2008-04-15 7:43 ` Andrew A. Sabitov
@ 2008-04-15 11:07 ` Alex Efros
2008-04-16 10:05 ` Peter Volkov
1 sibling, 1 reply; 29+ messages in thread
From: Alex Efros @ 2008-04-15 11:07 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 933 bytes --]
Hi!
On Tue, Apr 15, 2008 at 11:36:15AM +0400, Peter Volkov wrote:
> Иногда я использую findcruft:
А всё-таки, как в принципе могла сложиться такая ситуация?
home ~ # emerge -pv gcc
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-devel/gcc-3.4.6-r2 USE="gtk hardened nls (-altivec) -bootstrap -boundschecking -build -d -doc -fortran -gcj -ip28 -ip32r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -nossp -objc -test -vanilla" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
# file /usr/bin/c++
/usr/bin/c++: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped
# qfile /usr/bin/c++
#
Включением/отключением поддержки c++ в gcc я никогда не игрался, даже не
задумывался есть ли такая возможность через USE-флаги.
--
WBR, Alex.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 7:34 ` Peter Volkov
@ 2008-04-15 11:27 ` Alex Efros
2008-04-15 13:27 ` Vlad "SATtva" Miller
0 siblings, 1 reply; 29+ messages in thread
From: Alex Efros @ 2008-04-15 11:27 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 674 bytes --]
Hi!
On Tue, Apr 15, 2008 at 11:34:14AM +0400, Peter Volkov wrote:
> > 1. Для _полного_ обновления нужно делать
> > emerge -uDN --with-bdeps=y world
> > Есть ли причины не добавлять --with-bdeps=y в каких-то случаях?
>
> Вот этого не знаю. У меня на всех машинах оно включено.
Кстати, любопытно, а при полной пересборке в стиле
emerge -e world
тоже нужно указывать --with-bdeps=y чтобы ничего не пропустить?
P.S. А можно ли в /etc/make.conf добавить
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
чтобы не забывать эту мерзкую опцию, которая должна была быть включена по
умолчанию (или иметь односимвольный вариант для удобства)?
--
WBR, Alex.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 3:26 ` Andrew A. Sabitov
@ 2008-04-15 11:54 ` Alex Efros
0 siblings, 0 replies; 29+ messages in thread
From: Alex Efros @ 2008-04-15 11:54 UTC (permalink / raw
To: gentoo-user-ru
Hi!
On Tue, Apr 15, 2008 at 10:26:40AM +0700, Andrew A. Sabitov wrote:
> find /usr -print > existing-files.txt
> sort existing-files.txt | uniq > /tmp/1; mv /tmp/1 existing-files.txt
> equery l | sort > installed-pkgs.txt
> while read p ; do equery f =$p | grep '/usr' >> owned-files.txt ; done < installed-pkgs.txt
> sort owned-files.txt | uniq > /tmp/1; mv /tmp/1 owned-files.txt
> diff existing-files.txt owned-files.txt | grep -v '/usr/portage' | grep '/usr' > MUSOR.txt
> wc -l MUSOR.txt
>
> Для меня wc выдает сейчас 24381... Проблема в том, что операции ужасно
> ресурсоемкие и выполнять их на регулярной основе нереально. Кроме того, И
А вы вместо тормознутого equery используйте qlist из portage-utils -
она более чем на порядок быстрее:
# time equery f fluxbox >/dev/null
real 0m0.457s
user 0m0.436s
sys 0m0.021s
# time qlist fluxbox >/dev/null
real 0m0.012s
user 0m0.011s
sys 0m0.002s
Получить список всех установленных файлов можно примерно за одну команду:
# time qlist -a | wc
113203 113268 5605552
real 0m0.151s
user 0m0.148s
sys 0m0.037s
find тоже можно ускорить избавив его от необходимости обходить ненужные
каталоги (и заодно избавив себя от необходимости потом их отфильтровывать):
# find /usr/ ! -type d ! -path '/usr/portage*' ! -path '/usr/local*' ! -path '/usr/src*' | sort > /tmp/existing-files.txt
(отработала примерно за 3 минуты)
А вот и наши "герои":
# comm -1 -3 /tmp/installed-pkgs.txt /tmp/existing-files.txt | wc
12891 12891 656621
Если добавить плюс к /usr другие каталоги и по умному прописать
каталоги-исключения, то скрипт отработает минуты за 4 максимум, я думаю.
Другое дело, как вы собираетесь потом вручную чистить эти десятки тысяч
"как бы лишних" файлов...
--
WBR, Alex.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 11:27 ` Alex Efros
@ 2008-04-15 13:27 ` Vlad "SATtva" Miller
0 siblings, 0 replies; 29+ messages in thread
From: Vlad "SATtva" Miller @ 2008-04-15 13:27 UTC (permalink / raw
To: gentoo-user-ru
Alex Efros (15.04.2008 18:27):
> Hi!
>
> On Tue, Apr 15, 2008 at 11:34:14AM +0400, Peter Volkov wrote:
>>> 1. Для _полного_ обновления нужно делать
>>> emerge -uDN --with-bdeps=y world
>>> Есть ли причины не добавлять --with-bdeps=y в каких-то случаях?
>> Вот этого не знаю. У меня на всех машинах оно включено.
>
> Кстати, любопытно, а при полной пересборке в стиле
> emerge -e world
> тоже нужно указывать --with-bdeps=y чтобы ничего не пропустить?
С --with-bdeps в обоих значениях мой список emerge -e world включает 611
пакетов. Насколько я понимаю смысл --emptytree, он так или иначе
пересобирает *все* пакеты с зависимостями, так что --with-bdeps роли не
играет.
> P.S. А можно ли в /etc/make.conf добавить
> EMERGE_DEFAULT_OPTS="--with-bdeps=y"
> чтобы не забывать эту мерзкую опцию, которая должна была быть включена по
> умолчанию (или иметь односимвольный вариант для удобства)?
У меня включено. Там же есть и --ask, и --verbose.
--
SATtva | security & privacy consulting
www.vladmiller.info | www.pgpru.com
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [gentoo-user-ru] Re: Описание portage
2008-04-15 11:07 ` Alex Efros
@ 2008-04-16 10:05 ` Peter Volkov
0 siblings, 0 replies; 29+ messages in thread
From: Peter Volkov @ 2008-04-16 10:05 UTC (permalink / raw
To: gentoo-user-ru
[-- Attachment #1: Type: text/plain, Size: 451 bytes --]
В Втр, 15/04/2008 в 14:07 +0300, Alex Efros пишет:
> А всё-таки, как в принципе могла сложиться такая ситуация?
> # qfile /usr/bin/c++
> #
Этот файл устанавливает gcc-config, а не portage. Поэтому не
удивительно, что qfile про него ничего не знает, ведь его нет
в /var/db/pkg/*/*/CONTENTS.
--
Peter.
[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2008-04-16 10:07 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-04 15:07 [gentoo-user-ru] Описание portage Alex Efros
2005-05-05 4:59 ` Alexander Tratsevsky
2005-05-05 10:05 ` [gentoo-user-ru] Re: [OBORONA-SPAM] " Alex Efros
2005-05-05 10:24 ` [gentoo-user-ru] Re: [OBORONA-SPAM] Re: [gent oo-user-ru] " Vladimir Jakubovskij
2005-05-05 10:45 ` [gentoo-user-ru] Re: [gentoo-user-ru] " Марсель Рысаев
2005-05-11 10:51 ` [gentoo-user-ru] Установка KDE 3.4 Alexander Tratsevsky
2005-05-11 11:33 ` Dmitry Rys
2005-05-11 12:28 ` Gleb Litvjak
2005-05-11 12:36 ` Alexander Tratsevsky
2005-05-11 12:52 ` Ivan "Sandello"
2005-05-12 3:58 ` Makurin Roman
2008-04-13 5:16 ` [gentoo-user-ru] Re: Описание portage Alex Efros
2008-04-13 11:27 ` Peter Volkov
2008-04-13 13:52 ` Alex Efros
2008-04-13 14:01 ` Vladimir Rusinov
2008-04-13 14:09 ` Alex Efros
2008-04-14 20:27 ` Peter Volkov
2008-04-14 23:48 ` Alex Efros
2008-04-15 1:44 ` Andrew A. Sabitov
2008-04-15 1:56 ` Alex Efros
2008-04-15 3:26 ` Andrew A. Sabitov
2008-04-15 11:54 ` Alex Efros
2008-04-15 7:36 ` Peter Volkov
2008-04-15 7:43 ` Andrew A. Sabitov
2008-04-15 11:07 ` Alex Efros
2008-04-16 10:05 ` Peter Volkov
2008-04-15 7:34 ` Peter Volkov
2008-04-15 11:27 ` Alex Efros
2008-04-15 13:27 ` Vlad "SATtva" Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox