Всем привет! В последнее время у меня накопилось пару вопросов по 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 нравится всем, но слишком много ошибок при сборке.
В будущем вопросы будут появляться, поэтому прошу тему не закрывать.
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%-ной уверенностью, что стабильнее. Большинство возникающих у меня проблем так или иначе связаны с тестовой веткой и оверлеями.
Не до конца понял вопрос, будут подробности, может, отвечу.
вырезка из 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 не требует этого, но все же не собирается.
еще такой вопрос. В gentoo ведь можно устанавливать различные версии одного пакета, можно ли это провернуть для chromium. К примеру если одна версия не соберется, можно было запустить старую ?
или вручную — новую версию замаскировать, старую — пересобрать.
text
revdep-rebuild
да, это бы сработало, но старой версии в портеже уже нет. Как я понимаю, я должен скачать ебилд старой версии, создать локальный оверлей, и только тогда получится пересобрать старую.
Кстати еще вопрос, где я могу найти слепок дерева портежей, к примеру 2-х дневной давности ?
да, это бы сработало, но старой версии в портеже уже нет. Как я понимаю, я должен скачать ебилд старой версии, создать локальный оверлей, и только тогда получится пересобрать старую.
"Lupo Alberto" написал:
Создать локальный оверлей, туда поместить старый ebuild, который можно найти в данном случае здесь.
Создал локальный оверлей, все сделал как надо (ебилд выкачал с 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! ? ее нет в ебилде.
Вы должны повторить в локальном оверлее всю структуру, необходимую ebuild'у, в данном случае создать каталог files и поместить в него необходимые патчи.
Старая версия собралась, хоть и не с первой попытки, но это моя вина. Теперь интересует другое: беру я лог сборки хрома (который не собрался) на анализ, там тьма текста (лог весит 37 метров) и заканчивается фразой
Насколько я помню, это должно быть предусмотрено в ebuild'е пакета.
если быть точным пакеты должны быть в разных слотах. ну и не иметь конфликтов по файлом (само собой разумеется)
riso написал:
Старая версия собралась, хоть и не с первой попытки, но это моя вина. Теперь интересует другое: беру я лог сборки хрома (который не собрался) на анализ, там тьма текста (лог весит 37 метров) и заканчивается фразой
это просто констатация ошибки, сама ошибка немного выше, в высере make'а. искать по ключевому слову "error" или "ошибка"(не помню, подцепляется ли внутри portage локаль). tail -1000 /path/to/logfile.log | wgetpaste