Неосвещенные в документации тонкости portage

Несколько вопросов, ответ на которые, имхо, не очевиден из man portage и gentoo-handbook:

1. Может ли portage пересобрать пакет (или всю систему) без обновления? Например, просто с другими USE? Т.е. не указывая явно =package-version (пусть сам смотрит, какая версия у меня стоит). Если нет, то зачем вообще нужен --update, если и так всегда подразумевается обновление?

1. Имеет ли смысл --update без --deep?

2. Зачем все-таки нужен --emptytree?

3. Имеет ли смысл --update с указанием конкретного пакета (не world)?

4. Имеет ли смысл использование world без --update?

Спасибо :)

1) может с -e

1) может с -e <прог.> , только она пересоберет со всеми зависемастями наченая с первой,неволнуйся не весь world,а только необходимые но тоже список будет преличный
2)можно emerge -u world (татальное обновление)
emerge -e world (татальная пересборка без обновления )
посмотри на gentoo.org>doc>rus там не плохо написоно

Ты наверное, не

Ты наверное, не читал ещё man emerge. Мне кажется там найдёшь ответы.

1.1. С другим USE: emerge -N package-name
1.2. Зачем нужен --update: При "emerge -u package-name" пакет пересоберётся только если существует более новая версия. При "emerge package-name" пакет пересоберётся по-любому.
1.3. Имеет ли смысл --update без --deep: Мне трудно придумать пример. Наверное имеет. Без --deep проверяются только прямые зависимости, т.е. те которые прописаны в ebuild. С --deep проверяются также зависимости зависимостей и т.д.

2. Чтобы пересобрать всё полностью, а не только то что имеет новые версии/новые USE флаги. Например, это надо при смене версии компилятора или при смене процессора.

3. См. п.1.2. Конечно имеет - для скриптов! Например, у тебя есть длинный список пакетов, которые ты хочешь поставить, но некоторые из них, возможно, у тебя уже есть в системе. Ты пишешь скрипт, который поочерёдно для каждого пакета делает emerge -u.

4. Это абсолютно монопенисуально! emerge -u world == emerge world. Точно также emerge -u system == emerge system. Хотя принято писать с -u

Читал, и не раз

Читал, и не раз :) В том-то и дело, что ответ _неочевиден_. Все равно спасибо! А невозможность съemergить именно ту версию, которая уже стоит (кроме как явным образом: emerge =package-version) мне подтвердили в

.

Возможно, если

Возможно, если только это самая последняя версия пакета.

Полное обновление системы

Создал тему Полное обновление системы на ru.gentoo-wiki.com
Наверное стоит перенести заметки отсюда:
http://gentoo.ru/node/193

Сам не очень во всём этом разобрался и так не пробовал сам обновлять.. Перенесите плз, кто хорошо разбирается.

И небольшой вопрос, правильно ли следующее:
emerge -e world - пересоберёт ВСЕ пакеты входящие в World
emerge -uD --newuse world - пересоберёт все пакеты сновыми версиями/USE флагами

А если это правильно, то в http://gentoo.ru/node/193 ошибка.

Правильно. А где ошибка?

Да правильно.

Где ошибка? Ткни, пожалуйста, носом. Лень читать весь этот опус. Если ты про "emerge -uD --newuse world # полный апгрейд системы", то ошибки не вижу: в большинстве случаев "полный апгрейд"="пересборка изменившихся пакетов". А частные случаи, типа обновления gcc - на то они и частные случаи, чтобы рассматриваться отдельно

Если:

Цитата:
"полный апгрейд"="пересборка изменившихся пакетов"

тогда все в порядке.

Re: Полное обновление системы

AlexBestFraG написал(а):
Создал тему Полное обновление системы

Где? Пишет "Вы перешли по ссылке на статью, которая пока не существует..."

Полное обновление системы

Так и должно быть, я ссылку на статью создал.. :)
Вот здесь ссылка.
Ну раз никто не горит желанием, перенесу сам.

Re: Полное обновление системы

AlexBestFraG написал(а):
Создал тему Полное обновление системы на ru.gentoo-wiki.com

По поводу этой заметки возникли вопросы

Цитата:
скрипт dep -p -w поможет найти избыточные записи в world(которые всё-равно нужны другим записям в world или входят в system).

LX ~ # dep
-bash: dep: command not found

Где этот dep брать? Аналогично:

Цитата:
Но все эти сообщения можно получить из log-файлов после окончания установки emerge world. Для этого нужно использовать либо enotice, либо portlog-info.

В портежах я ни того, ни другого не нашел

Re: Неосвещенные в документации тон

AsphyX написал(а):
Например, просто с другими USE?

emerge --newuse world?

А фиганьки! :)

А фиганьки! :) Если в дереве есть более свежий ебилд, он поставит его без разговоров!

"А фиганьки! :)

"А фиганьки! :) Если в дереве есть более свежий ебилд, он поставит его без разговоров!"
А ты ставь через "=", то есть напрямую указываешь название ебилда с которого ставить... К примеру
emerge ... =wine-0.9.2 ...
И старенький хорошо можно поставить.

Портаж очень

Портаж очень старая система со своими тараканами и традициями. Никто уж поди и не помнит зачем и в какой последовательности добавлялись новые ключики к команде емерге. А их смысл и сочетание является по ходу тайной и для девелоперов.

Насчет твоих юсов --newuse, введен относительно недавно.
--emptytree тоже молодой флаг, ввели потому как мир с ним от чего то становится больше, и как показала практика даже он не пересобирает всего. Ждем появление следующего флага , который отработает слоты :)

Назначение флагов --update и --deep выше моего понимания. Первый вообще непонятен в такой системе как гентоо, второй не так уж и глубок, --emptytree куда глубже.

Из вышеперечисленных с миром я пользую --newuse или -e (в зависимости от поставленной задачи). Апдейт и диип не в моем обиходе.
Отдельные пакеты ставлю вообще без флагов.

Ничего себе

Ничего себе "старая"! :) Мне казалось, ему от роду-то года 4.

довольно

довольно разговоров - попробуй сам все свои комбинацыи
толькр еще добавь --pretend (-p или -pv )
и все поймёшь ...

4 года это много...

для линукс это целая жизнь...
что было 4 года назад...
ядро 2.0 то было? не припомню...
каменный век...

2.4.20 юзал,

2.4.20 юзал, насколько я помню... 2.2 уже не поддерживало мое железо...

а я вот лично

а я вот лично сам стараюсь всегда обновляться, не "emerge -uD world", а "emerge -uDN world", потомучто нередко вводятся новые USE-флаги или "переколбасятся" старые
_________________
^_^

emerge --update blabla,

emerge --update blabla, насколько я понял, обновляет ещё и зависимости blabla.
если просто emerge blabla, то обновится тока blabla, и если зависимости blabla остаются удовлетворёнными, то они (зависимости) не трогаются.

emerge -u world

emerge -u world обновит пакеты записанные в world (равнозначен emerge world)

emerge -uD world обновит пакеты записанные в world и их зависимости

emerge -e world переустановит все пакеты записанные в world и их зависимости

пакеты не записанные в world и не требуемые как зависимость (список с emerge -p --depclean), ни в одном из этих случаев не будут обновлены/переустановлены.

тонкости portage

За последний год я заметил только одно portage требуеться капитальная чистка, начиная с emerge заканчивая работой со слотами. И все чаще использую -e gcc/system/world по два три раза в сочитании с revdep
иначе глючит :-(

вопрос по статье "HOWTO Полное обновление системы"

Автор советует использовать emerge с ключиками -bk, дабы не пересобирать заново собранное из toolchain, а потом и system.
Вот только я не понял смысл ключа -b в последней команде: emerge -bke world
Зачем нам бинарные пакеты всего world?

X

Задавшись тем же вопросом, я вообще решил
бинарники не делать. А в свете "почтитотальной"
динамичности линковки я вообще не уверен, что нужно
так много делать с "-e"
Сам я уже давно не делаю ничего кроме "emerge -pvDNu world"
и всё жду, когда же будет глючить (ибо toolchain и т.п.)
но пока не глючит. И я сильно сомневаюсь, что начнёт.
(Но когда наступит полный gcc-4.3.0, вот тогда ... )

Quote: Вот только

Цитата:
Вот только я не понял смысл ключа -b в последней команде: emerge -bke world
Зачем нам бинарные пакеты всего world?

как зачем? идет сборка world и вдруг вылетает ошибка и процесс естественно останавливается.
дальше разбираемся с ошибкой и чтобы все заново не компилять пакеты уже будут браться из бинарников (естественно которые успели собраться до ошибки).

ЗЫ: хотя в стабильной ветке наверное ошибок при сборке world не бывает ? ;)

Let the sources will be with you

Quote: хотя в

Цитата:
хотя в стабильной ветке наверное ошибок при сборке world не бывает ? ;)

Необходимость вызова revdep-rebuild за ошибку считается?

Live free or die

для того чтобы

для того чтобы продолжить emerge после ошибки есть ключ --resume

+

Цитата:
для того чтобы продолжить emerge после ошибки есть ключ --resume

помучился со старым буком ;) оказалось ключ -b всё таки нужен, т.к. иногда приходилось, после некоторой ошибки, делать emerge что-то и в итоге --resume уже не поможет.

ЗЫ: поднимал версию с 2006 до текущей, в иных ситуациях наверное можно обойтись и --resume
________________________
"We Will Win"

Бывает, что и

Бывает, что и стабильное не собирается, потому что стабильное из века каменного.

а может кто

а может кто знает чем отличаются пакеты выделенные жирным шрифтом от пакетов написанных обычным когда делаешь emerge -uDvp world?

.

Вроде бы... 1) Те, что в world и 2) Те, что по зависимостям.

да не, вроде и

да не, вроде и для тех и для тех стоит U, а не N (или NS, кстати что это?)

NS означает, что

NS означает, что будет установлена другая версия пакета (в новый слот). Старая не будет затронута.

.

а сделай emerge -pve world и увидишь, что светлозелёные - из world, а тёмнозелёные - остальное.
Хотя напротив любого - [ebuild R]

ништяг, давно

ништяг, давно хотел почитать )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".