繁体   English   中英

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

[英]How to use Typesafe Stack deb repo with Oracle Java 6 instead of OpenJDK?

我想通过他们的 Deb 存储库将 Typesafe Stack 安装到 Ubuntu 服务器,但不下载所有 OpenJDK 包。 我已经安装了 Oracle JDK 6,并且在我的 PATH 中通过update-alternatives和安装 OpenJDK 破坏了一些东西。

最好的方法是什么? 看来我不能为此使用 apt-get --no-install-recommends 标志:

$> 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 组件适用于我当前的设置,因为我已经安装了它并且在他们之前的安装程序中运行良好。

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

equivs package 可用于创建伪造的 package 存根(例如Package: local-java-runtime ),它谎称提供不需要的 JRE(例如: Provides: java6-runtime )。

通过这种方式,您可以手动安装所需的任何支持 Scala 的 JRE,然后安装您创建的存根 package,并且apt-get install scala将不再抱怨(存根 package 将满足依赖关系,无需 APT 引入 JRE)。

看看 这里阅读 equivs 并了解它是如何完成的。

顺便说一句,至少对于我正在运行的 Linux 发行版,我看到“openjdk-7-jre”已经提供了“java6-runtime”,因此与过去相比,“java6-runtime”依赖项可能会带来不便。

老问题,在我的 OP 下的评论中已经回答了很长时间,现在才正式发布。 在基于 Debian 的系统上,只需使用Debian Alternatives ,请参阅我上面评论中的设置脚本。 它很棒,可以正常工作,并提供以下好处:

  1. 使用您想要的 Java/Scala/Haskell/etc 的确切版本,而不是 Debian/Ubuntu/etc 存储库中的版本。 当回购版本滞后于当前版本,或者您的应用程序需要不同于回购的特定平台版本时很有用。
  2. Haskell平台。 并排安装多个 GHC 和 Haskell 平台版本,例如 /opt/haskell/ghc/[version] 和 /opt/haskell/platform/[version],并使用update-alternatives --config在它们之间轻松切换。 与 Java、Scala 或任何其他 sdk/平台相同。
  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. 通过系统 PATH 而不是用户 PATH 运行 haskell(例如,无需将 /opt/haskell/ghc/bin 添加到您的 PATH in.profile 中)
  7. 习惯使用 update-alternatives,这是一个很棒的工具,可以轻松管理手动安装的多版本软件。 Java、Scala 和任何其他二进制或编译平台都同样适用于它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM