LinuxForum.Fans
Тема

Общие вопросы

Автор: riso 40 сообщений 11579 просмотров
#253643

Всем привет! В последнее время у меня накопилось пару вопросов по gentoo, а создавать под каждый тред, не культурно.

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

Вчера столкнулся с неприятной ситуацией: обновлял chromium до 19 версии, он не собрался, заменил либы в /usr/lib/ на 19 версии. После неудачной установки, предыдущая версия (18) перестала запускаться. В этой ситуации помог бы revdep-rebuild, вот только 18 версии chromium в портеже уже не было.

2) Допустим у меня остался ebuild в /var/, как мне его установить, если emerge /path/to/ebuild опция не работает?

3) Вопрос немного персональный к Lupo Alberto: Может ли сейчас funtoo дать большую стабильность при сборке пакетов, чем gentoo. За последние два дня у меня собралось две важных для меня программы. Собственно gentoo нравится всем, но слишком много ошибок при сборке.

В будущем вопросы будут появляться, поэтому прошу тему не закрывать.

#253649
"riso" написал:
1) Как откатить пакет к его предыдущей версии, если в портеже эта версия уже не доступна, т.е. не замаскирована, а ее там вообще нет.

Создать локальный оверлей, туда поместить старый ebuild, который можно найти в данном случае здесь.

"riso" написал:
2) Допустим у меня остался ebuild в /var/, как мне его установить, если emerge /path/to/ebuild опция не работает?

Не до конца понял вопрос, будут подробности, может, отвечу.
emerge — это надстройка над командой ebuild, различные аргументы которой позволяют провести установку по шагам. Подробности man ebuild

"riso" написал:
3) Вопрос немного персональный к Lupo Alberto: Может ли сейчас funtoo дать большую стабильность при сборке пакетов, чем gentoo. За последние два дня у меня собралось две важных для меня программы. Собственно gentoo нравится всем, но слишком много ошибок при сборке.

В /etc/make.conf небось ACCEPT_KEYWORDS="~amd64"? ;)
Сложно мне сказать со 100%-ной уверенностью, что стабильнее. Большинство возникающих у меня проблем так или иначе связаны с тестовой веткой и оверлеями.

#253651

Не до конца понял вопрос, будут подробности, может, отвечу.

вырезка из man emerge

text
WARNING::
The implementation of emerge //path//to//ebuild is broken and so
this syntax shouldn't be used.

как я понимаю, пакеты, которые были ранее собраны, остаются в кэше. Но я понял, нужен локальный оверлей.

В /etc/make.conf небось ACCEPT_KEYWORDS="~amd64"?

не так глобально, но в /etc/portage/package.keyword; дело в том, что 50% программ, emerge сама просит размаскировать ~amd64, может я как-то не так собираю. Но кстати chromium не требует этого, но все же не собирается.

#253653
"riso" написал:
как я понимаю, пакеты, которые были ранее собраны, остаются в кэше.

Нет. Разве что, если вы их сами не собрали в бинарный пакет, либо изначально не установили в /etc/make.conf

text
FEATURES = "buildpkg"
#253658

еще такой вопрос. В gentoo ведь можно устанавливать различные версии одного пакета, можно ли это провернуть для chromium. К примеру если одна версия не соберется, можно было запустить старую ?

#253661
"riso" написал:
В gentoo ведь можно устанавливать различные версии одного пакета, можно ли это провернуть для chromium.

Насколько я помню, это должно быть предусмотрено в ebuild'е пакета.

"riso" написал:
К примеру если одна версия не соберется, можно было запустить старую ?

Если новая не соберётся, старая никуда не исчезнет. Разве что вы сами её не удалите.

#253663

Если новая не соберётся, старая никуда не исчезнет

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

#253664
"riso" написал:
в этом то все и дело, что старая осталась, а вот библиотеки уже собрались для новой версии и старая, при запуске, пишет ошибки

?

text

revdep-rebuild
#253667

или вручную — новую версию замаскировать, старую — пересобрать.
text
revdep-rebuild

да, это бы сработало, но старой версии в портеже уже нет. Как я понимаю, я должен скачать ебилд старой версии, создать локальный оверлей, и только тогда получится пересобрать старую.
Кстати еще вопрос, где я могу найти слепок дерева портежей, к примеру 2-х дневной давности ?

здесь ничего нет по вашей проблеме?

вроде нет :(

#253672
"riso" написал:
Кстати еще вопрос, где я могу найти слепок дерева портежей, к примеру 2-х дневной давности ?

У меня готового решения нет, разве что советы. ;)

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/ — сделано на cvs, значит, можно выбрать предыдущие версии.

Обычно на зеркалах хранятся и предыдущие версии portage, например — [url]ftp://gentoo.arcticnetwork.ca/pub/gentoo/snapshots/[/url]

#253674
"riso" написал:
да, это бы сработало, но старой версии в портеже уже нет. Как я понимаю, я должен скачать ебилд старой версии, создать локальный оверлей, и только тогда получится пересобрать старую.
"Lupo Alberto" написал:
Создать локальный оверлей, туда поместить старый ebuild, который можно найти в данном случае здесь.
#253675

Я понял, спасибо вам большое!

#253687

Создал локальный оверлей, все сделал как надо (ебилд выкачал с source.gentoo.org), но при сборке выдает ошибку:

Показать
text

>>> Emerging (1 of 1) www-client/chromium-18.0.1025.151 from x-portage
 * chromium-18.0.1025.151.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                       [ ok ]
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Found kernel object directory:
 *     /lib/modules/3.2.12-gentoo/build
 * Found sources for kernel version:
 *     3.2.12-gentoo
 * Checking for suitable kernel configuration options...                                                                                                                                                                                [ ok ]
 * bindist disabled: Resulting binaries may not be legal to re-distribute.
>>> Unpacking source...
>>> Unpacking chromium-18.0.1025.151.tar.bz2 to /var/tmp/portage/www-client/chromium-18.0.1025.151/work
>>> Source unpacked in /var/tmp/portage/www-client/chromium-18.0.1025.151/work
>>> Preparing source in /var/tmp/portage/www-client/chromium-18.0.1025.151/work/chromium-18.0.1025.151 ...

* Cannot find $EPATCH_SOURCE! Value for $EPATCH_SOURCE is: * * /usr/local/portage/www-client/chromium/files/chromium-revert-jpeg-swizzle-r2.patch * ( chromium-revert-jpeg-swizzle-r2.patch )

* ERROR: www-client/chromium-18.0.1025.151 failed (prepare phase): * Cannot find $EPATCH_SOURCE! * * Call stack: * ebuild.sh, line 85: Called src_prepare * environment, line 6273: Called epatch '/usr/local/portage/www-client/chromium/files/chromium-revert-jpeg-swizzle-r2.patch' * environment, line 2007: Called die * The specific snippet of code: * die "Cannot find \$EPATCH_SOURCE!"; *

как я понял, он не может найти патч. Интересно почему он не может его выкачать. И что за переменная $EPATCH_SOURCE! ? ее нет в ебилде.

#253689

Вы должны повторить в локальном оверлее всю структуру, необходимую ebuild'у, в данном случае создать каталог files и поместить в него необходимые патчи.

#253691

ага, спасибо. Раньше почему-то думал, что вся инфа о патчах и где их качать есть в ебилде

#253721

Старая версия собралась, хоть и не с первой попытки, но это моя вина. Теперь интересует другое: беру я лог сборки хрома (который не собрался) на анализ, там тьма текста (лог весит 37 метров) и заканчивается фразой

text

ERROR: www-client/chromium-19.0.1084.46-r2 failed (compile phase): * emake failed

то как быть ? как можно найти ошибку ?

#253724
"Lupo Alberto" написал:
Насколько я помню, это должно быть предусмотрено в ebuild'е пакета.

если быть точным пакеты должны быть в разных слотах. ну и не иметь конфликтов по файлом (само собой разумеется)

riso написал:
Старая версия собралась, хоть и не с первой попытки, но это моя вина. Теперь интересует другое: беру я лог сборки хрома (который не собрался) на анализ, там тьма текста (лог весит 37 метров) и заканчивается фразой
text

ERROR: www-client/chromium-19.0.1084.46-r2 failed (compile phase): * emake failed

то как быть ? как можно найти ошибку ?

это просто констатация ошибки, сама ошибка немного выше, в высере make'а. искать по ключевому слову "error" или "ошибка"(не помню, подцепляется ли внутри portage локаль).
tail -1000 /path/to/logfile.log | wgetpaste

Войдите или зарегистрируйтесь, чтобы ответить.