2012-04-06 56 views
8

我想通过他们的Deb回购安装Typesafe Stack到Ubuntu服务器,但不需要下载所有的OpenJDK包。我安装了Oracle JDK 6,并在我的PATH中通过更新替代品并安装OpenJDK打破了一些东西。如何用Oracle Java 6而不是OpenJDK使用Typesafe Stack deb repo?

这样做的最好方法是什么?它不会出现,我可以使用apt-get --no安装,建议对这一标志:

$> 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 - 我所知道的类型安全堆栈组件与我目前的设置工作,因为我有它安装他们之前的安装程序运行良好。

+1

我正试图摆脱Ubuntu 11.10中的OpenJDK 6,因为我从不需要Java 6(我需要的所有东西都能很好地与Java 7一起工作),并且更喜欢Oracle JDK over OpenJDK,但是所有依赖于Java的包都在回购拖动OpenJDK 6.这很烦人,但我放弃了。 – Ivan 2012-04-30 12:52:09

+0

我最终放弃了deb回购,并使用他们的[通用安装程序在他们的下载页面底部](http://typesafe.com/stack/download)。将tarball提取到/ opt/typesafe,将/ opt/typesafe/bin添加到〜/ .profile PATH,与Oracle JDK 6和gtg相同。 – Kurtosis 2012-05-03 02:32:05

+1

对于后代,我现在对所有东西都使用'update-alternatives',这里是我的[Java]脚本(https://github.com/byrongibson/scripts/tree/master/install/java),[Scala](https: //github.com/byrongibson/scripts/tree/master/install/scala)和[Haskell](https://github.com/byrongibson/scripts/tree/master/install/haskell)。有关详细信息,请参阅Haskell自述文件。 – Kurtosis 2012-06-11 03:42:49

回答

0

老问题,现在在我的OP的评论中已经回答了很长时间,现在就让它正式发布。在基于Debian的系统上,只需使用Debian Alternatives,请参阅上述注释中的设置脚本。这是辉煌的,只是工作,并提供以下好处:

  1. 使用的确切版本的Java /斯卡拉/哈斯克尔/等你想要的,没有什么是可以在Debian/Ubuntu的/等回购。当回购版本滞后于当前版本时有用,或者您的应用需要特定版本的平台与回购不同。
  2. Haskell平台。在/ opt/haskell/ghc/[version]和/ opt/haskell/platform/[version]中并排安装多个GHC和Haskell平台版本,并用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. 运行哈斯克尔(例如,没有必要将/ opt /哈斯克尔/ GHC/bin添加到.profile文件的PATH)
  7. 习惯使用更新的替代品,这是一个伟大的工具,无需管理手动安装的多版本软件。 Java,Scala和其他任何二进制或编译平台都可以很好地工作。
0

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

所做的工作就是包可以用来创建一个假包存根(例如Package: local-java-runtime)虚假地声称提供不期望的JRE(例如:Provides: java6-runtime)。

这种方式,您可以手动安装哪个斯卡拉支撑JRE你的愿望,然后再安装你所创建的存根包,apt-get install scala将不再抱怨(存根包将满足没有APT具有在JRE拉动的依赖)。

看看here来阅读equivs,看看它是如何完成的。

顺便说一句,至少在我运行的Linux发行版中,我看到'openjdk-7-jre'已经提供了'java6-runtime',所以'java6-runtime'依赖可能不会比以往。

相关问题