2012-04-06 53 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'依賴可能不會比以往。

相關問題