Не могу обновить scala на Gentoo

Так как я хотел протестировать Scala 2.9.2 на моей системе gentoo, я попытался обновить пакет, но в итоге получил эту ошибку. Я не могу понять, где проблема может быть:

Calculating dependencies  ...... done!
>>> Verifying ebuild manifests
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 0.23, 0.16, 0.20
>>> Emerging (1 of 1) dev-lang/scala-2.9.2
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 0.23, 0.16, 0.20
>>> Failed to emerge dev-lang/scala-2.9.2, Log file:
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 0.23, 0.16, 0.20
>>>  '/var/tmp/portage/dev-lang/scala-2.9.2/temp/build.log'
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 0.23, 0.16, 0.20
>>> Jobs: 0 of 1 complete, 1 running, 1 failed      Load avg: 0.23, 0.16, 0.20
>>> Jobs: 0 of 1 complete, 1 failed                 Load avg: 0.23, 0.16, 0.20

 * Package:    dev-lang/scala-2.9.2
 * Repository: gentoo
 * Maintainer: [email protected]
 * USE:        amd64 elibc_glibc kernel_linux multilib userland_GNU
 * FEATURES:   sandbox
[01m[31;06m!!! ERROR: Couldn't find suitable VM. Possible invalid dependency string.
           Due to jdk-with-com-sun requiring a target of 1.7 but the virtual machines constrained by virtual/jdk-1.6  and/or
           this package requiring virtual(s) jdk-with-com-sun[0m
 * Unable to determine VM for building from dependencies:
NV_DEPEND: virtual/jdk:1.6
    java-virtuals/jdk-with-com-sun
    !binary? (
        dev-java/ant-contrib:0
    )
    app-arch/xz-utils >=dev-java/java-config-2.1.9-r1  source? ( app-arch/zip )  >=dev-java/ant-core-1.7.0
       dev-java/ant-nodeps

       >=dev-java/javatoolkit-0.3.0-r2
       >=dev-lang/python-2.4
 * ERROR: dev-lang/scala-2.9.2 failed (setup phase):
 *   Failed to determine VM for building.
 * 
 * Call stack:
 *             ebuild.sh, line   93:  Called pkg_setup
 *    scala-2.9.2.ebuild, line   43:  Called java-pkg-2_pkg_setup
 *     java-pkg-2.eclass, line   53:  Called java-pkg_init
 *   java-utils-2.eclass, line 2187:  Called java-pkg_switch-vm
 *   java-utils-2.eclass, line 2674:  Called die
 * The specific snippet of code:
 *                      die "Failed to determine VM for building."
 * 
 * If you need support, post the output of `emerge --info '=dev-lang/scala-2.9.2'`,
 * the complete build log and the output of `emerge -pqv '=dev-lang/scala-2.9.2'`.
!!! When you file a bug report, please include the following information:
GENTOO_VM=  CLASSPATH="" JAVA_HOME=""
JAVACFLAGS="" COMPILER=""
and of course, the output of emerge --info
 * The complete build log is located at '/var/tmp/portage/dev-lang/scala-2.9.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-lang/scala-2.9.2/temp/die.env'.
 * Working directory: '/var/tmp/portage/dev-lang/scala-2.9.2'
 * S: '/var/tmp/portage/dev-lang/scala-2.9.2/work/scala-2.9.2-sources'
 * Messages for package dev-lang/scala-2.9.2:
 * Unable to determine VM for building from dependencies:
 * ERROR: dev-lang/scala-2.9.2 failed (setup phase):
 *   Failed to determine VM for building.
 * 
 * Call stack:
 *             ebuild.sh, line   93:  Called pkg_setup
 *    scala-2.9.2.ebuild, line   43:  Called java-pkg-2_pkg_setup
 *     java-pkg-2.eclass, line   53:  Called java-pkg_init
 *   java-utils-2.eclass, line 2187:  Called java-pkg_switch-vm
 *   java-utils-2.eclass, line 2674:  Called die
 * The specific snippet of code:
 *                      die "Failed to determine VM for building."
 * 
 * If you need support, post the output of `emerge --info '=dev-lang/scala-2.9.2'`,
 * the complete build log and the output of `emerge -pqv '=dev-lang/scala-2.9.2'`.
 * The complete build log is located at '/var/tmp/portage/dev-lang/scala-2.9.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-lang/scala-2.9.2/temp/die.env'.
 * Working directory: '/var/tmp/portage/dev-lang/scala-2.9.2'
 * S: '/var/tmp/portage/dev-lang/scala-2.9.2/work/scala-2.9.2-sources'

Следующий вывод eix может помочь:

% eix java-virtuals/jdk-with-com-sun
[I] java-virtuals/jdk-with-com-sun
     Available versions:  20111111 {{ELIBC="FreeBSD"}}
     Installed versions:  20111111(16:08:51 18/04/12)(ELIBC="-FreeBSD")
     Homepage:            http://www.gentoo.org
     Description:         Virtual ebuilds that require internal com.sun classes from a JDK

Оба виртуальных jdks 1.6 и 1.7 установлены:

% eix virtual/jdk
[I] virtual/jdk
     Available versions:  
        (1.4)   ~1.4.2-r1[1]
        (1.5)   1.5.0 ~1.5.0-r3[1]
        (1.6)   1.6.0 1.6.0-r1
        (1.7)   (~)1.7.0
     Installed versions:  1.6.0-r1(1.6)(23:22:48 10/11/12) 1.7.0(1.7)(23:21:09 10/11/12)
     Description:         Virtual for JDK

[1] "java-overlay" /var/lib/layman/java-overlay

2 ответа

Решение

Попробуй это:

emerge -1 java-config java-config-wrapper

Он перестраивает инструмент настройки среды Java и оболочку java-config.

Недавно я столкнулся с этой же проблемой, и исправление Дастергона было необходимой ЧАСТЬ исправления. Если после проверки того, что обе части java-config установлены, вы по-прежнему видите ошибку, есть большая вероятность, что у вас не установлена ​​JDK версии 6 или только sun-jdk, который больше не удовлетворяет виртуальным /jdk:1.6

Исправление для этого заключается в установке легального JDK 6 (например, icedtea-bin или icedtea) или создании локальной версии виртуального ebuild /jdk-1.6.0 (-r2 в настоящее время), который включает в себя sun-jdk-1.6.0.45 (или любую другую более новую версию, если у вас есть подписка на поддержку.) Я сделал последнее, так как мне нужно, чтобы Sun поддерживал какой-то старый код, связанный с работой. В противном случае мороженое является лучшим выбором.

Обратите внимание, что 1.6.0_45 в наши дни считается небезопасным, поэтому используйте его только для создания или выбранных приложений, где вы на 100% уверены, что это необходимо; НЕ устанавливайте его в качестве системного или пользовательского JDK и, более того, не позволяйте ему устанавливать nsplugin.

Другие вопросы по тегам