如何使用Typesafe Stack deb repo与Oracle Java 6而不是OpenJDK?

时间:2012-04-06 04:23:43

标签: java scala ubuntu typesafe-stack

我想通过他们的Deb repo将Typesafe Stack安装到Ubuntu Server,但不需要下载所有的OpenJDK软件包。我安装了Oracle JDK 6并通过 update-alternatives 在我的PATH中安装OpenJDK打破了一些东西。

最好的方法是什么?似乎我不能使用apt-get --no-install-recommended标志:

$> sudo apt-get install --no-install-recommends typesafe-stack sbt
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  ca-certificates-java default-jre default-jre-headless g8 java-common libaccess-bridge-java libaccess-bridge-java-jni openjdk-6-jre
  openjdk-6-jre-headless openjdk-6-jre-lib
Suggested packages:
  equivs icedtea-plugin sun-java6-fonts ttf-sazanami-gothic ttf-kochi-gothic ttf-sazanami-mincho ttf-kochi-mincho ttf-telugu-fonts ttf-oriya-fonts
  ttf-kannada-fonts ttf-bengali-fonts
Recommended packages:
  icedtea-netx icedtea-6-jre-cacao icedtea-6-jre-jamvm
The following NEW packages will be installed:
  ca-certificates-java default-jre default-jre-headless g8 java-common libaccess-bridge-java libaccess-bridge-java-jni openjdk-6-jre
  openjdk-6-jre-headless openjdk-6-jre-lib sbt typesafe-stack
0 upgraded, 12 newly installed, 0 to remove and 7 not upgraded.
Need to get 33.0 MB of archives.
After this operation, 86.9 MB of additional disk space will be used.
Do you want to continue [Y/n]? n
Abort.

PS - 我知道Typesafe Stack组件可以与我当前的设置一起使用,因为我安装了它并且使用他们之前的安装程序运行良好。

2 个答案:

答案 0 :(得分:0)

我目前正在Ubuntu自己的'universe'存储库中查看'scala'和'scala-library'软件包,而不是Typesafe存储库。这些包依赖于'java6-runtime'(我运行Ubuntu 12.10,'Quantal')。对于在Typesafe存储库中找到的包可能不是这种情况,但原则应该是相同的。

equivs 包可用于创建虚假包裹存根(例如Package: local-java-runtime),虚假地声称提供了不受欢迎的JRE(例如:Provides: java6-runtime)。

这样你可以手动安装你想要的任何支持Scala的JRE,然后安装你创建的存根包,apt-get install scala将不再抱怨(存根包将满足依赖性,而APT不必拉入JRE)。

看看here,阅读有关等值的内容,看看它是如何完成的。

BTW,至少对于我正在运行的Linux发行版,我看到'openjdk-7-jre'已经提供了'java6-runtime',所以也许'java6-runtime'的依赖性不会比过去。

答案 1 :(得分:0)

老问题,现在已经在我的OP下的评论中得到了很长一段时间的回答,现在就把它正式化了。在基于Debian的系统上,只需使用Debian Alternatives,请参阅上面评论中的设置脚本。它很棒,只是有效,并提供以下好处:

  1. 使用您想要的确切版本的Java / Scala / Haskell / etc,而不是Debian / Ubuntu / etc repos中的内容。当repo版本滞后于当前版本时,或者您的应用程序需要与repo不同的特定平台版本时有用。
  2. Haskell平台。并排安装多个GHC和Haskell平台版本,例如/ opt / haskell / ghc / [version]和/ opt / haskell / platform / [version],并使用update-alternatives --config在它们之间轻松切换。与Java,Scala或任何其他sdk / platform相同。
  3. 升级到GHC和Haskell平台(或Java,Scala等)的新版本,而不覆盖或删除之前的版本。如果这会导致您的应用出现回归,请使用简单的update-alternatives --config轻松回滚到之前的工作版本。
  4. 将GHC和Haskell平台的所有文件放在一个位置,例如/ opt / haskell / ghc / [version]和/ opt / haskell / platform / [version],而不是分散在/ usr / bin上,/ usr / lib和/ usr / share与apt-get或dpkg -i安装一样。这些文件保存在/ opt / haskell /中,并且update-alternatives软件将它们链接到它们的系统目录。
  5. 使用update-alternatives --remove-all(包含脚本)和rm -rf /opt/haskell
  6. 轻松卸载
  7. 通过系统PATH而不是用户PATH运行haskell(例如,无需在.profile中将/ opt / haskell / ghc / bin添加到您的PATH中)
  8. 习惯使用更新备选方案,它是一个很棒的工具,可以轻松管理手动安装的多版本软件。 Java,Scala和任何其他二进制或编译平台都可以很好地协同工作。