Неосвещенные в документации тонкости portage
Гость 29 ноября, 2005 - 14:40
Несколько вопросов, ответ на которые, имхо, не очевиден из 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: Полное обновление системы
Где? Пишет "Вы перешли по ссылке на статью, которая пока не существует..."
Полное обновление системы
Так и должно быть, я ссылку на статью создал.. :)
Вот здесь ссылка.
Ну раз никто не горит желанием, перенесу сам.
Re: Полное обновление системы
По поводу этой заметки возникли вопросы
LX ~ # dep
-bash: dep: command not found
Где этот dep брать? Аналогично:
В портежах я ни того, ни другого не нашел
Re: Неосвещенные в документации тон
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: Вот только
как зачем? идет сборка world и вдруг вылетает ошибка и процесс естественно останавливается.
дальше разбираемся с ошибкой и чтобы все заново не компилять пакеты уже будут браться из бинарников (естественно которые успели собраться до ошибки).
ЗЫ: хотя в стабильной ветке наверное ошибок при сборке world не бывает ? ;)
Let the sources will be with you
Quote: хотя в
Необходимость вызова
revdep-rebuild
за ошибку считается?Live free or die
для того чтобы
для того чтобы продолжить 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]
вот это поможет прояснить некоторые вопросы
http://gentoo-wiki.com/HOWTO_Use_Portage_Correctly#Color_Output
http://gentoo-wiki.com/TIP_package.keywords
ништяг, давно
ништяг, давно хотел почитать )