[SOLVED] Возмущения новичка.. (emerge, portage)

Доброго времени суток.

Сразу хочу предупредить что я не новичок в мире Linux/UNIX, в течении 9-ти лет использую различные UNIX системы на работе и дома, но именно с Gentoo и portage я столкнулся впервые. Большую часть опыта я приобрел на дистрибутивах Debian Linux.

После установки базовой системы генту 2007,0 мне потребовалось установить lvm2. промаявшись весь вечер, я ничего не добился. Все попытки удалить конфликтующие пакеты, или обновить их успехом не увенчались. В итоге я написал на этот форум и в bugs.gentoo.org. С bugs.gentoo.org пришло решение проблемы - emerge lvm2 udev с пояснением что надо было обновить udev. Просмотрев перед установкой сообщения emerge о зависимостях я не увидел ни одного сообщения, которое натолкнуло бы на мысль поставить lvm2 именно таким образом (emerge lvm2 udev).

На данный момент опять возникла проблема с зависимостями. после emerge --sync вылезло сообщение о том что доступна новая версия portage и настоятельная рекомендация к обновлению (emerge portage), но при попытке это выполнить я получил очередной облом в виде Blocked Packages:

# emerge portage --pretend

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild U ] sys-apps/sandbox-1.2.18.1-r2 [1.2.17]
[ebuild U ] dev-python/pycrypto-2.0.1-r6 [2.0.1-r5]
[ebuild U ] sys-apps/portage-2.1.4.4 [2.1.2.2]
*** Portage will stop merging at this point and reload itself,
then resume the merge.
[ebuild U ] app-shells/bash-3.2_p33 [3.1_p17] USE="-plugins%"
[blocks B ] sys-apps/portage-2.1.4_rc1 (is blocking app-shells/bash-3.2_p33)

Руководствуясь опытом с lvm2 я попытался обновить portage следующим образом: emerge portage bash. на что получил то же что и в первый раз:

# emerge portage bash --pretend

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild U ] sys-apps/sandbox-1.2.18.1-r2 [1.2.17]
[ebuild U ] dev-python/pycrypto-2.0.1-r6 [2.0.1-r5]
[ebuild U ] sys-apps/portage-2.1.4.4 [2.1.2.2]
*** Portage will stop merging at this point and reload itself,
then resume the merge.
[ebuild U ] app-shells/bash-3.2_p33 [3.1_p17] USE="-plugins%"
[blocks B ] sys-apps/portage-2.1.4_rc1 (is blocking app-shells/bash-3.2_p33)

Я так же пытался сначала установить bash потом portage, удалить portage, удалить bash. Ничего не выходит, да если бы и вышло, помоему слишком не логично сносить bash для того чтоб установить новый или установить portage. попытка emerge --update --ask world так же не увечалась успехом из за Blocked Packages.

Изучение handbook так же ничего не дало ни в случае с lvm2 ни в данном случае. Там не плохо расписаны установка и обновление пакетов и системы, и этого было бы достаточно, если бы все описанное безукоризненно работало.

Ну и наконец вопросы и возмущения:
1) Собственно что делать в данном случае с Blocked Packages. опять писать на bugs.gentoo.org? Ведь в случае lvm2 корректного решения на этом форуме не поступило. Даже была идея удалить udev, оставив систему в полурабочем состоянии. На мой взляд подобные подходы категорически не приемлимы на серверах. Да и на рабочих станциях такие факты совсем не радуют. Никому не хочется тратить свое личное время на такие тривиальные задачи как установка ПО. я могу оправдать затрату времени на изучение и конфигурацию сервисов с которыми пользователь ранее не сталкивался, но когда возникает проблема с их установкой. это слишком.

2) Я обеими руками за такой подход к установке ПО, но на мой взгляд сама реализация оставляет желать лучшего. Я работал с FreeBSD 4.х и их системой портов и никогда не сталкивался с проблемой установки ПО. Не могу сказать что я ее досконально изучил и признаю ее лучшей или худшей чем portage, но с точки зрения человеческого фактора с системой портов таких проблем не возникало.

3) Являются ли подобные проблемы багами? Ведь случай с lvm2 не был документирован и гугление результатов не дало, я получил ответ от разработчиков.

4) Если все выше описанное - мои заблуждения, огромная просьба к гуру генту накидать ссылок на документацию. Хочется решать проблему с portage самостоятельно в 99,9% случаев (0,1% я готов списать на баги в системе portage и собственную невнимательность), т.к. дергать разработчиков за каждым вторым пакетом по меньшей мере не разумно.

ЗЫ. Заранее благодарен.

сам

сам сталкивался с такой проблемой, плюс еще один знакомый
я поступил просто - замаскировал bash-3.2_p33 и обновил до p39
такая проблема наблюдалась только с p33
на остальных проблем не видел

Двойной блок

Такое впечатление, что обновлял с 2007 release to current

при обновлении со stage3 2008 до куррент - блокируется два пакета

mktemp и какой-то-там (кажется curl)

mktemp сносится и не ставится больше, curl (или какой-то там) - обновляется

При обновлении с 2007 до текущего взаимно блокируется два системных пакета, удаление одного (любого) из которых приводит к неработоспособности системы.

Возможно этот же случай и у тебя - баш не снети, портэйдж тоже.

Выход из ситуации - посмотреть по датам в /usr/portage/пакет1 и /usr/portage/пакет2 когда были обновления версий
и скачать portage датой между ними.

Обидно качать 30 метров зазря

Я вышел по другому

Сохранил копии
/bin
/sbin
/usr/bin
/usr/sbin
/lib

Снес жизненно важный пакет и на всю ругань - "не найден модуль" - восстанавливал из копии

Муторно - но дешево

В твоем случае можно еще порекомендавать переключиться в другой шелл и снести bash

Для меня это было не приемлимо поскольку bash от tcsh я хрен отличу

PS/2 К слову я в системе что-то не нашел другого шелла кроме баша.

думается что

думается что тебя несколько подвёл опыт общения с дебьяном, тут изначально нужна другая логика. как только ты установил систему, особоенно со старого стейджа её нужно обновить а не ставить и настраивать разные сервисы. если у тебя неполучается с блокировками - нужно немного подумать, и удалять такие пакеты как bash, portage, udev - чистой воды самоубийство.
при блокировках нужно смотреть зависимости, а в если вот так просят обновить портаж - сделай emerge -1 portage чтобы он обновил один пакет, без зависимостей.

а вообще можно было и с бета-стейджей поставится.

думается что

>>думается что тебя несколько подвёл опыт общения с дебьяном,

Всё горазо проще - Gentoo мой первый блин ;)

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

тут нужно думалку иметь как минимум
для того чтоб разобраться как разбираться с блокировками я пол инета облазил и столько матов произнес в адрес всех и вся ;)
когда знаешь что такое маскировка и с чем её едят - все конечно намного проще и изящней

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

>>и удалять такие пакеты как bash, portage, udev - чистой воды самоубийство.

... и опыт - сын ошибок трудный

>> а вообще можно было и с бета-стейджей поставится.

самое разумное, конечно.

тем кто с винды

тем кто с винды - читать документацию перед тем как что-то делать. и никто небудеот писать хауту на каждый чих, нужно прочитать тотже хэндбук доконца а не только в части установки для начала. все мы ошибаемся, я тоже дров наломал в своё время...

уверен - тем кто

уверен - тем кто с винды одна исталляция покажется сущим кошмаром, не говоря уже о траблах с блокировками.

Я из тех

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

Кстати чуть позже девушке своей подсунул срез дерева и распечатку хендбука+ссылку на генту.орг. Без опыта линукса, за 3 недели собрала. со 2ой попытки. Довольна-счастлива.

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

Поменьше такой

Поменьше такой уверенности, я тоже сразу на Генту уходил с винды (-;Е
Умение читать и думать помогает, к тому же есть готовность к чему-то совсем новому, а дурацких стереотипов многих бинарщиков типа "я должен иметь готовую систему через 40 минут после начал установки" нету


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

не сказал бы

не сказал бы что генту проще. в дебиане нет никаких проблем с зависимотями, apt отлично их отслеживает, и подобные проблемы могут возникнуть разве что из за бага в apt или из за ошибки в метаданных пакета. Что касается linux систем в общем, то особой разницы я не заметил. разве что управление инит скриптами, на счет конфигов.. разве что в генту они лежат в другом месте.

в дебьяне много

в дебьяне много чего небудет впринципе - те места где в gentoo блокировки перенесут в следующий релиз. и вообще там народ патчит старое а не обновляет пакеты восновном.

в общем систему

в общем систему уронил, удалив mktemp, ставиться обратно он не захотел опять же из за блокировки. Попытался обновить coreutils, был весьма удивлен что не возникло блокировки, но собраться он отказался, сказал что не найдет некий epatch. Переустанавливаю, на данный помент собирается ядро. portage уже попытался обновить и возникла та же блокировка. после сборки попробую emerge -1.

нада всё телать

нада всё телать по порядку а не в панике. после сноса mktemp нужно сразу сделать emerge -1 coreutils

Не -1, а emerge --nodeps

Не -1, а emerge --nodeps portage и emerge --nodeps bash

Цивилизованный способ

Цивилизованный способ поднятия системы, сборка системы со stage1,2, ни каких проблем.

вообще-то уже

вообще-то уже не поддерживаемый и не рекомендуемый
но работает, черт побери! и быстро работает!

а вообще ничто не мешает запустить любой лайв-сиди, chroot сделать и устранять траблы, у меня так система компилилась, а я курсовики ваял
итог - везде "отл"

он

он неподдерживается для простых смертных, потому что было много нубов только слышавших о gentoo и собиравших из первого "потому что круто". а девелоперы всегда собирают stage1 2 3

ну если хочется

ну если хочется выжать максимум из железа, то да
на своей шкуре проверил различие в работе Sabayon и Gentoo stage1 - земля и небо просто=)

В принципе

В принципе разници между системы собранной с stage1 и несколько раз пересобранного в определенном порядке stage3 нет.
Но ставить в таком случае со стейж1 проще =)
Стейж3 просто позволяет отложить процесс пеерсборки на некоторое время =)
___________________________________________
Gentoo GNU/Linux 2.6.25 GCC 4.2.3 && GCC 4.3.0
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Нет =) именно

Нет =) именно

emerge -v1 coreutils

Иначе ничегшо не будет работать
Далее если вы переставляет пакет из множества систем или это пакет зависимость то лучше его переставлять с --oneshot(-1)
что бы не засорять world файл.
___________________________________________
Gentoo GNU/Linux 2.6.25 GCC 4.2.3 && GCC 4.3.0
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

coreutils & mktemp

Читаю про ужастики и не могу понять.....

я сделал так
emerge --sync
emerge --unmerge mktemp
emerge coreutils
emerge system
и всё встало с полтычка

mktemp не ставил ибо после coreutils он ругнулся вроде на зависимости ну я и не стал насиловать систему

к тому же в "чердаке" отметка - "с новыми coreutils mktemp ставить не надо"

Три недели - полет нормальный.

Ждать засады? Когда?

когда вышли

когда вышли новые coreutils это повлекло за собой большие апдейты зависимых пакетов - многие натолкнулись на грабли, а так как джента позволяет делать все что хочешь по известному приниципу (юникс не спроектирован для защиты Вас от глупых действий с ним, так как это затруднит делать умные вещи), то можно запросто сломать систему. Прежде чем трогать пакеты system нужно основательно подготовится...

при возникших блокировках "ядерных утилит" я воспользовался рекомендациями отсюда:
http://gentoo-wiki.com/FAQ_Blocked_Package

в результате пришлось выполнить следующие действия (примерно так, детали не помню)
emerge --buildpkgonly --nodeps -va coreutils && emerge -C -va mktemp && emerge --usepkgonly -va coreutils
все прошло нормально, но предварительно надо установить еще пакеты утилит сжатия lzma что-то там... Без них новый пакет может просто не распаковаться и сделать копию mktemp для самоуспокоения

когда обновляешь систему незабывай высталять флаги emerge -avDu system

еще ссылки заслуживающие внимания:
http://gentoo-wiki.com/Category:Package_management
http://www.gentoo.org/doc/en/index.xml?catid=gentoo

юникс юниксу

юникс юниксу рознь. дитрибы дебиан так же не накладывают ограничения на действия, но обновления системы происходят куда более безболезненно, деструктивные действия должны быть оочень глупыими. Конечно политика состава дистрибутивов у них другая, и по сути обновление пакетов сводится к фиксам ошибок и дыр, версия ПО при обновлении не меняется, зато это позволяет безболезненно поддерживать систему в защищенном состоянии ("в актуальном состоянии" больше подходит для генту).

с coreutils были проблемы, решил --nodeps, перед етим посмотрел что еще тянет coreutils и установил. все прошло гладко

разница между

разница между gentoo и дебьяном тут огромная - ты можеш перескочить простым обновлением на новый дебьяновский релиз? они просто патчат дырки и всё. а тут выходят новые пакеты несовсместимые со старыми. тотже mktemp влился в состав coreutils и стал ненужен с определённой версии.
так что gentoo ты именно обновляеш, а в дебьяне лиш до некоторой спени, лучше сказать просто закрываеш дыры а не обновляеш - пакеты по факту старые.

ВСЕМ СПАСИБО!

Товарищи, subj. Помог ключ --nodeps для emerge, полностью обновил систему (emerge --update --deep world, emerge --update --ask world, emerge --update --deep system). Помимо наконец вкурил как обращаться с зависимостями.

Не забудь после

Не забудь после обновления с ключом --nodeps установить эти пакеты заново, но без этого ключа, просто emerge portage bash. Это действие доустанавит зависимые от этих пакетов программы.

Nu_NRG

Nu_NRG написал(а):
Доброго времени суток.

# emerge portage --pretend

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild U ] sys-apps/sandbox-1.2.18.1-r2 [1.2.17]
[ebuild U ] dev-python/pycrypto-2.0.1-r6 [2.0.1-r5]
[ebuild U ] sys-apps/portage-2.1.4.4 [2.1.2.2]
*** Portage will stop merging at this point and reload itself,
then resume the merge.
[ebuild U ] app-shells/bash-3.2_p33 [3.1_p17] USE="-plugins%"
[blocks B ] sys-apps/portage-2.1.4_rc1 (is blocking app-shells/bash-3.2_p33)

Ммм... А так и должно быть, что устанавливается portage-2.1.4.4
вместо portage-2.1.2.2, а блокирует portage-2.1.4_rc1 ?

У меня portage-2.1.4_rc1.ebuild вообще нет.

Я не знаю как

Я не знаю как должно быть :), но сделал так:

emerge --nodeps bash
emerge portage

после обновления баш, portage встал без ругани, если portage все же ругается то emerge --nodeps portage

да, так работает. Но странно,

да, так работает. Но странно, что нету ebuild`a с таким именем.

Кусочек из

Кусочек из http://ru.wikipedia.org/wiki/Gentoo/Linux

"При желании использовать пакет, они бы просто говорили: „Явись!“ (emerge), — а все связанные с ним пакеты настраивались бы автоматически."

И сравнивая с тем, что есть на приктике, она кажется просто глумлением.

Над этим обзацем просто ржал:

"Философия Gentoo в одном абзаце такова. Каждому пользователю приходится выполнять определённую работу. Цель Gentoo — разработка инструментов и систем, позволяющих пользователю заниматься своим делом как можно эффективнее и в своё удовольствие, так, как он сочтет нужным. Наши инструменты должны приносить радость и помогать пользователю оценить по достоинству все богатство Linux и сообщества свободного программного обеспечения, а также гибкость свободных программ. Такое возможно только тогда, когда инструменты создаются, чтобы отражать и проводить волю пользователя, оставляя для него открытыми все возможности с самого начала (с исходного кода). Когда инструмент заставляет пользователя действовать определённым образом, инструмент работает против него, а не на него. Все мы сталкивались с ситуациями, когда инструменты стремились навязать нам свою собственную волю. Такой подход — полная противоположность, несовместимая с философией Gentoo."

Боянисты

Боянисты

Вы сейчас с кем

Вы сейчас с кем разговаривали?
Чтобы прочитать Философию Gentoo, далеко лазить не надо. Хинт - первая ссылка в меню.

Не грусти, товарищ! Всё хорошо, beautiful good!

Можно было эту философию

Можно было эту философию здесь и не вставлять. Ведь первая ссылка меню. Вот это и боянизм.
"Когда инструмент заставляет пользователя действовать определённым образом, инструмент работает против него, а не на него. Все мы сталкивались с ситуациями, когда инструменты стремились навязать нам свою собственную волю." Linux - это Дед Мороз что ли, который исполняет желания?

.

Если что-то не получается, философия не виновата.
А вставлять её надо повсюду. Чем больше её вставлять,
тем больше людей будут видеть Инструмент там, где раньше видели Деда Мороза.

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

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