8

すべてのOpenJDKパッケージをダウンロードせずに、Debリポジトリを介してTypesafeStackをUbuntuサーバーにインストールしたいと思います。Oracle JDK 6をインストールし、update-alternativesを介してPATHにインストールし、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コンポーネントは、以前のインストーラーで正常にインストールおよび実行されていたため、現在のセットアップで機能することを知っています。

4

2 に答える 2

0

現在、Typesafe リポジトリではなく、Ubuntu 独自の「universe」リポジトリで「scala」および「scala-library」パッケージを見ています。これらのパッケージは「java6-runtime」に依存しています (Ubuntu 12.10、「Quantal」を実行しています)。これは Typesafe リポジトリで見つかったパッケージには当てはまらないかもしれませんが、原則は同じです。

equivsパッケージを使用Package: local-java-runtimeて、望ましくない JRE (例: ) を提供すると誤って主張する偽のパッケージ スタブ (例: ) を作成できますProvides: java6-runtime

このようにして、Scala をサポートする任意の JRE を手動でインストールしてから、作成したスタブ パッケージをインストールすると、エラーが発生しapt-get install scalaなくなります (スタブ パッケージは、APT が JRE をプルすることなく依存関係を満たします)。

equivsについて読み、それがどのように行われるかを確認するには、こちらをご覧ください。

ところで、少なくとも私が実行している Linux ディストリビューションでは、'openjdk-7-jre' が既に 'java6-runtime' を提供していることがわかります。

于 2013-04-16T18:37:27.653 に答える
0

古い質問は、私のOPの下のコメントで長い間回答されており、今では公式になっています。Debian ベースのシステムでは、 Debian Alternativesを使用するだけです。上記の私のコメントにあるセットアップ スクリプトを参照してください。それは素晴らしく、うまく機能し、次の利点を提供します。

  1. Debian/Ubuntu/etc リポジトリにあるものではなく、必要な Java/Scala/Haskell/etc の正確なバージョンを使用してください。リポジトリのバージョンが現在のバージョンよりも遅れている場合、またはアプリがリポジトリとは異なるプラットフォームの特定のバージョンを必要とする場合に役立ちます。
  2. Haskell プラットフォーム。/opt/haskell/ghc/[version] と /opt/haskell/platform/[version] のように、GHC と Haskell Platform の複数のバージョンを並べてインストールし、update-alternatives --config. Java、Scala、またはその他の SDK/プラットフォームと同じです。
  3. 以前のものを上書きしたり削除したりせずに、GHC と Haskell Platform (または Java、Scala など) の新しいバージョンにアップグレードします。これによりアプリでリグレッションが発生した場合は、単純なupdate-alternatives --config.
  4. GHC と Haskell Platform のすべてのファイルを、/usr/bin や /usr/lib に分散させるのではなく、/opt/haskell/ghc/[バージョン] や /opt/haskell/platform/[バージョン] のような単一の場所にまとめて保管します。 、および /usr/share apt-get または dpkg -i インストールと同様に。ファイルは /opt/haskell/ に保持され、update-alternatives ソフト リンクによってシステム ディレクトリにリンクされます。
  5. update-alternatives --remove-all(スクリプトが含まれています)、およびで簡単にアンインストールできrm -rf /opt/haskellます。
  6. ユーザー PATH の代わりにシステム PATH 経由で haskell を実行します (たとえば、.profile の PATH に /opt/haskell/ghc/bin を追加する必要はありません)。
  7. update-alternatives の使用に慣れてください。これは、手動でインストールされた複数バージョンのソフトウェアを簡単に管理できる優れたツールです。Java、Scala、およびその他のバイナリまたはコンパイル済みプラットフォームはすべて、それと同様にうまく機能します。
于 2014-03-04T02:38:17.017 に答える