Полное обновление...

Подскажите пожалуйсто.

Решил обновить сервер - увидел что обновились пакеты из тулчейна

вспомнил, что видел статью http://ru.gentoo-wiki.com/HOWTO_Полное_обновление_системы - перечитал

там есть метод, как обновисть систему без лишних пересборок тулчейна и системы - через бинарники

Пришла в голову мысль, как обновить по другому
1. сначала пересобираем тулчейн с ключами -O -1
2. далее получаем список пакетов из систем, убираем из него пакеты тулчейна, делаем emerge -1 -O >этот список<
3. далее делаем emerge world -1.

Это нормально отработает или нет? ))

вопрос - в первом пункте пересобирать весь тулчейн или только те пакеты которые обновились?

и еще вопрос - в руководстве написано, что тулчейн нужно пересобирать дважды. Слышал же, ebuild написан таким образом, что он и так 2 раза пересобирается?

тока написал,

тока написал, понял, что чушь написал ))
есть же еще куча пакетов подтянутых по зависивостям... и по этим зависимостям могут быть подтянуты разными пакетами и соответственно пересобраться несколько раз

Так что походу либо пересобирать много чего по нескльку раз, либо делать через бинарники

Но остальные вопросы все равно актуальны )

Чтото я не

Чтото я не понял в чем проблема.

Сначала emerge -1 пакетам тулчейна

потом

emerge --update --deep --newuse world

когда закончит делаем revdep-rebuild
..................................................................
Unix - дружественная система, но своих друзей она хорошо выбирает.

проблема в том

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

Ты забыл к тому же про system. Во время пересборки его пересоберется так же тулчейн...
потом world. Во время пересборки его пересобирется тулчейн и system...

пересборка одного gcc занимает несколько часов, а приходится его 2 лишних раза пересобирать - куда это годиться?

.

Да не надо столько раз пересобирать. на forums.gentoo.org где-то было разъяснение.

Ну если тупо

Ну если тупо сделать # emerge -av gcc && emerge system && emerge world (условно говоря), то gcc пересоберётся три раза


Пожалуйста, не описывайте своё железо в подписи

emerge -pvuND system emerge

emerge -pvuND system
emerge -pvuND world

И больше ничего не надо при обновлении. если приспичило зачемто пересобраь все то
emerge -e world (в будущей версии portage world уже не будет включать system)

!

TheMixa написал(а):
emerge -e world (в будущей версии portage world уже не будет включать system)

О таких ахтунгах надо предупредать заранее!
--
Live free or die

да, но для

да, но для начала нужно получить обновленный, дважды пересобраный тулчейн...

пав

TheMixa написал(а):
emerge -pvuND system
emerge -pvuND world
И больше ничего не надо при обновлении. если приспичило зачемто пересобраь все то
emerge -e world (в будущей версии portage world уже не будет включать system)

И чего, половину пакетов старым gcc собирать? Да даже и так все пакеты из system будут дважды собраны


Пожалуйста, не описывайте своё железо в подписи

а ты как нить

а ты как нить решаешь этот вопрос?

Ну дома gcc

Ну дома gcc последний раз обновлялся очень уж давно, я и не помню уж, что да как было.
А вот на одном из рабочих компов недавно пересобирал всю систему, так там на этапе сборки gcc и libtool просто ^C и emerge --resume --skipfirst (-:E


Пожалуйста, не описывайте своё железо в подписи

ну это следить

ну это следить надо, чтоб в нужный момент (

Еще один путь

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

на виках

на виках говорится, что систем всеже нужно собирать перед миром

Цитата:
Цель перекомпиляции system/world - чтобы весь софт получил потенциальное преимущество от установки нового toolchain. system перекомпилируется перед world из тех-же соображений, т.к. при компиляции программ из world используются утилиты из system.

Я предложил, как вариант.

При перекомпиляции world перекомпилится весь system. Не ручаюсь, что порядок останется тот же, но если неохота дважды компилить - есть смысл попробовать.
_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.

еще раз при

еще раз

при компиляции программ из world используются утилиты из system

Еще раз.

Компиль дважды :)
_________________________________________________________
Прежде чем задать вопрос, подумай, сможешь ли ты понять ответ.

ну а зачам Вам

ну а зачам Вам вообще было что то писать?

Я и так сижу и компилю дважды (
Для того и создал эту тему, хотел узнать, кто как решает сей вопрос
А некоторые вообще не замарачиваются и даже не читают о чем другие пишут. И всеже умудряются давать какие то советы

дык... ключи b и k

дык... ключи b и k на что нам даны?
первый создает бинарный пакет который смело можно использовать в системе, а второй ставит такие пакеты при их наличии

вот меня и

вот меня и смущает юзабельность бинарных пакетов, будут ли они такими же как обычные и собраными с теми же оптимизациями?

интересно, а

интересно, а как может быть что пакет собран с флагом ipv6 например а бинарник, архив которого делается из скомпилированного пакета(вот только что скомпилированного, еще горячего!) без этого флага?
с какими юзами собирал с такими и будет бинарник

блин, не

блин, не догоняю, что такое бинарник (
это просто все файлы программы упакованые в один файл?

Это файлы

Это файлы программы скомпилированные в двоичный (binary - (англ.) двоичный) исполняемый машинный код...

В то время как исходники - это текст программы на языке высокого уровня...

это

это понятно...
Но ведь после компиляции мы и получаем бинарники, в чем тогда смысл ключика -b?

Так ведь черным по белому...

...написано

man emerge написал(а):
--buildpkg (-b)
Tells emerge to build binary packages for all ebuilds processed in addition to actually merging the packages. Useful for maintainers or if you administrate multiple Gentoo Linux systems (build once, emerge tbz2s everywhere) as well as disaster recovery. The package will be created in the ${PKGDIR}/All directory. An alternative for already-merged packages is to use quickpkg(1) which creates a tbz2 from the live filesystem.

Понятие

Понятие "бинарник", в данном случае тобой, употребляется относительно пакета,
а это есть - дерево предъопределённых файлов (исполняемые уже скомпилированны),
упаковынных в архив MyPkg.tbz2.

Относительно же того, где это может пригодиться?

1) К примеру, твой сосед по лестничной клетке обладает компом, как у тебя,
ну или почти как у тебя (в смысле процы от одной фирмы, и битность одинакова).
У него нет интернета, и возможности своевременно обновлять свою Gentoo,
но у него есть Ты, и у тебя регулярно обновлённая система Gentoo.
И вот он приходит к тебе, убеждается в том, что твои ЮСЫ-флаги, не противоречат
его предъпочтениям, достаёт сиську пива, и просит помощи в обновлении своей системы.
Ты в свою очередь, пропагандируя здоровый образ жизни, выбрасываешь нах*й в окно его
бутылку, со словами "успокой свою печень, друг мой !". Открываешь свой любимый
текстовый редактор, и набираешь в нём что-то на подобие:

#!/bin/bash

for Category in $(ls /var/db/pkg)
do

for Pkg in $(ls /var/db/pkg/${Category})
do

emerge -b =${Category}/${Pkg}

done

done

Сохраняешь файл, ставишь на нём бит выполнения, запускаешь.
После того как скрипт отработает, запишешь папку /usr/portage/packages
на DVD-болванк{у/и}, и вручишь их своему соседу, не забыв ему напомнить,
чтоб он возместил тебе потраченные на него диски.

2) Включи воображение ...

Относительно того, где это может пригодиться...

...написано ВЫШЕ...

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

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