LINUX.ORG.RU

поставить gcc-5.4.0 на gentoo

 , , ,


0

1

здравствуйте, хочу установить gcc-5.4.0 на gentoo... emerge =sys-devel/gcc-5.4.0* вылетает такое:

(dev-libs/libical-2.0.0-r1:0/2::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (app-office/orage-4.12.1:0/0::gentoo, ebuild scheduled for merge)
  (net-firewall/iptables-1.6.0:0/11::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (sys-apps/iproute2-4.7.0:0/0::gentoo, ebuild scheduled for merge)

пытаюсь это решить emerge --rebuild-if-new-ver net-firewall/iptables-1.6.0

emerge --rebuild-exclude net-firewall/iptables-1.6.0

в общем все не то... подскажите как решать такие проблемы? man emerge ну не помогает, рылся-рылся, нашел вот только про --rebuild-...

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

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz
(chroot) localhost / # emerge =sys-devel/gcc-5.4.0*

 * IMPORTANT: 14 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 7 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.
Calculating dependencies... done!
[ebuild     U  ] net-firewall/iptables-1.6.0 [1.4.21-r1] USE="-nftables% -pcap%" 
[ebuild     U  ] sys-libs/ncurses-6.0-r1 [5.9-r5] USE="gpm* {-test%} -threads%" 
[ebuild  r  U  ] sys-process/procps-3.3.12 [3.3.11-r3]
[ebuild  NS    ] sys-devel/gcc-5.4.0 [4.9.3] USE="cxx fortran (multilib) nls nptl openmp sanitize vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go -graphite (-hardened) (-jit) (-libssp) -mpx -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" 
[ebuild  NS    ] sys-libs/db-6.0.35 [4.8.30-r2] USE="cxx -doc -examples -java -tcl {-test}" ABI_X86="(64) -32 (-x32)" 
[ebuild  r  U  ] sys-apps/iproute2-4.7.0 [4.4.0]
[ebuild     U  ] dev-libs/libical-2.0.0-r1 [1.0.1]
[ebuild  rR    ] app-office/orage-4.12.1 

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

sys-libs/ncurses:0

  (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (sys-libs/ncurses-5.9-r5:0/5::gentoo, installed) pulled in by
    >=sys-libs/ncurses-5.2-r5:0/5= required by (sys-boot/grub-2.02_beta2-r9:2/2.02_beta2-r9::gentoo, installed)
                             ^^^^^                                                                                                                 
    (and 15 more with the same problem)

dev-libs/libical:0

  (dev-libs/libical-2.0.0-r1:0/2::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (dev-libs/libical-1.0.1:0/1::gentoo, installed) pulled in by
    dev-libs/libical:0/1= required by (net-wireless/bluez-5.39:0/3::gentoo, installed)
                    ^^^^^                                                                                                 

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.


The following packages are causing rebuilds:

  (net-firewall/iptables-1.6.0:0/11::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (sys-apps/iproute2-4.7.0:0/0::gentoo, ebuild scheduled for merge)
  (dev-libs/libical-2.0.0-r1:0/2::gentoo, ebuild scheduled for merge) causes rebuilds for:
    (app-office/orage-4.12.1:0/0::gentoo, ebuild scheduled for merge)


хм, 
xperious ★★
() автор топика

1. Это не ошибки, а просто информация какие пакеты будут перекомпилированы, и кто (какие пакеты) этого требует.

2. Рекомендую запускать emerge с ключами -av - детальный вывод и подтверждение на выполнение. Если emerge спросил хочешь ли ты установить, то это явный признак того , что он, emerge, никаких препятствия кроме твоего подтверждения не видит.

3. gcc как и glibc, python, perl - особые пакеты, и их нужно по-особому обновлять, иначе проблем не оберешься. Все есть в google/wiki. По gcc почитай вот это: https://wiki.gentoo.org/wiki/Upgrading_GCC

4. Старайся не пользоваться явным указанием версии (=sys-devel/gcc-5.4.0). В крайнем случае указывай ветку: gcc:5 . Если тебе не даёт установить, значит на то есть причины; как правило это одно из двух:
- кейворды - /etc/portage/pacakge.accept_keywords, говорит о том, что пакет не достаточно хорошо протестирован и ставь его на свой страх и риск;
- маскировки - если их делал не ты, то десять раз подумай перед тем как их снимать: мейнтейнеры просто так ничего не маскируют.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

ну я ставил в /etc/portage/make.conf это ACCEPT_KEYWORDS=«~amd64»

по рукокниге обновление гсс дает чушь какую-то:

(chroot) localhost / # emerge -u sys-devel/gcc

 * IMPORTANT: 14 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 7 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.
Calculating dependencies... done!
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

xperious ★★
() автор топика
Ответ на: комментарий от xperious

Обновляй мир. Целиком. И не следует игнорировать это

 * IMPORTANT: 14 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


 * IMPORTANT: 7 config files in '/etc/portage' need updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

daemonpnz ★★★★★
()
Ответ на: комментарий от xperious

Заблокируй установку 6 ветки ncurses, т.е. sys-libs/ncurses-6.0-r1 и выше, т.к. grub2 хочет именно 5 ветку.

RDEPEND="
	app-arch/xz-utils
	>=sys-libs/ncurses-5.2-r5:0=

https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-boot/grub/grub-2.02_beta3...

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от xperious

так как в итоге поставить gcc то новый? из за него только gentoo и ставил

~$ gcc -v | grep version
...
gcc version 6.1.1 20160805 (Ubuntu 6.1.1-11ubuntu12) 
anonymous
()
Ответ на: комментарий от kostik87

Заблокируй установку 6 ветки ncurses, т.е. sys-libs/ncurses-6.0-r1 и выше, т.к. grub2 хочет именно 5 ветку.

а что написать в /etc/portage/package.use ?

xperious ★★
() автор топика
Ответ на: комментарий от kostik87

я правильно понял: создать папку sys-libs внутри /etc/portage/package.mask и там засобачить ncurses-6.0-r1:0? то же самое и с libical-2.0.0-r1:0

xperious ★★
() автор топика
Ответ на: комментарий от kostik87

sys-libs/ncurses Установленные версии: 6.0-r1

sys-boot/grub Установленные версии: 2.02_beta3-r1

всё нормально канпеляеца :)

anonymous
()
Ответ на: комментарий от xperious

так как в итоге поставить gcc то новый? из за него только gentoo и ставил

весь мир gcc:5.4.0 не сможешь пересобрать ... так что возвращайся на убунту/минт

anonymous
()
Ответ на: комментарий от xperious

по рукокниге обновление гсс дает чушь какую-то:

Ты спал достаточно сегодня?
"...По gcc почитай вот это: https://wiki.gentoo.org/wiki/Upgrading_GCC ...

Еще:

* IMPORTANT: 14 news items need reading for repository 'gentoo'.
* IMPORTANT: 7 config files in '/etc/portage' need updating

Тебе слово IMPORTANT ничего не говорит?

С таким подходом на Генте тебе придется сложно.

так как в итоге поставить gcc то новый? из за него только gentoo и ставил

См. что я писал выше. Там всё есть.

P. S. У меня с gcc:5 не собрался ati-drivers. Правда у меня ~x86. Так что готовь плацдарм для отката.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Ты спал достаточно сегодня?

да я вообще не спал)

P. S. У меня с gcc:5 не собрался ati-drivers. Правда у меня ~x86. Так что готовь плацдарм для отката.

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

xperious ★★
() автор топика
Ответ на: комментарий от xperious

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

Думаю, не генте, а отдельным пакетам. И я связываю это с поддержкой 32-битной архитектуры. Может на 64бит всё ок.
Попробуй, да скомпиль. Там с ncruses, говорят, проблемы, и у меня с ati-drivers. С ncurses у меня вообще всё гладко прошло.
Только wiki что я дал почитай. Там недостаточно просто установить новый gcc. И высыпайся :)

Kroz ★★★★★
()
Ответ на: комментарий от anonymous

Если не используешь пару пакетов, которые не собираются, то вполне можно весь мир пересобрать. А для тех пакетов, которые не собираются, можно оставить старый gcc.

Chaser_Andrey ★★★★★
()
~ gcc --version
gcc (GCC) 6.1.1 20160802
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
anonymous
()
Ответ на: комментарий от Chaser_Andrey

Если не используешь пару пакетов, которые не собираются, то вполне можно весь мир пересобрать. А для тех пакетов, которые не собираются, можно оставить старый gcc.

а можно поподробнее?

xperious ★★
() автор топика
Ответ на: комментарий от Chaser_Andrey

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

xperious ★★
() автор топика
Ответ на: комментарий от xperious

Алгоритм примерно следующий:

  1. Ставим gcc-5.4.0
  2. Активируем gcc-5.4.0 через gcc-config
  3. Пересобираем мир
  4. После каждого фэйла делаем emerge -pvr
  5. Убеждаемся, что первым пакетом в списке идет тот, сборка которого зафейлилась, если это не так, то продолжаем сборку мира с помощью emerge -avr, после фэйла возвращаемся на шаг 4.
  6. Если первый пакет в выводе тот, который зафейлился, то отдельно себе записываем его название, например, в файл /root/to_rebuild_old_gcc, и продолжаем сборку мира командой emerge -avr --skipfirst
  7. Продолжаем до полной пересборки мира. Наш созданный файл пополнится новыми названиями.
  8. Мир пересобран новым компилятором, насколько это возможно. Переключаемся на старый gcc с помощью gcc-config.
  9. emerge -av1 `cat /root/to_rebuild_old_gcc` - пересобрать/обновить пакеты старым gcc.
  10. Переключиться обратно на новый gcc с помощью gcc-config

Также тебе может помочь https://bugs.gentoo.org/show_bug.cgi?id=536984

Chaser_Andrey ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.