古いバージョンのアプリケーションを Scoop で管理したい

前回の続き。

Scoop on Windows - kntmr-blog

Scoop に存在しないアプリケーションをインストールする場合は自分で Manifest を書いてインストールする。

普通にインストーラーを使ってインストールしてもいいけど、Scoop でインストールすると、管理が一元化できるし、バージョン切り替えが簡単にできるようになる。

例えば、プライベートでは最新の JDK を使っているけど、業務では 無念にも 古いバージョンの JDK を使っているとか。ということで、以降は jdk-7u45-windows-x64.exe でインストールした Java を Scoop に移行する手順。なぜこのバージョンを使っているのかはお察しいただきたい。

手順

Git リポジトリ作成する。このリポジトリbucket になる。

> mkdir sample-bucket
> cd sample-bucket
> git init

Manifest を作成する。Manifest のファイル名が scoop の中で使われるアプリケーションの名前になる。今回は legacy-jdk.json という名前で作成する。

{
  "version": "1.7.0_45",
  "architecture": {
    "64bit": {
      "url": "http://{web-server}/path/to/jdk1.7.0_45.zip", // zip ファイル
      "hash": "5c4c76711d19be11089a342181fb457f8799a19a7918745c53de87401a521748" // SHA256
    }
  },
  "env_add_path": "bin", // bin をユーザー環境変数に設定する
  "env_set": {
    "JAVA_HOME": "$dir" // JAVA_HOME をユーザー環境変数に設定する
  }
}

環境変数はデフォルトでユーザー環境変数に設定される。システム環境変数に設定する場合は --global を付ける。(未検証)

ちなみに、今回は C:\Program Files\Java\jdk1.7.0_45 下のファイル群 (展開したときにファイルが配置されるように) を zip 圧縮して Scoop でダウンロードできるところに配置しているが、もっといい方法はないだろうか...。

> git add .
> git commit -m "add legacy-jdk"

Scoop で bucket を追加してインストールする。無念にもプロキシ環境の場合は事前に設定すること。

> scoop bucket add sample-bucket .
Checking repo... ok
The sample-bucket bucket was added successfully.

> scoop update
Updating Scoop...
Updating 'main' bucket...
Updating 'sample-bucket' bucket...
 * 73e7c0e add legacy-jdk                                                4 minutes ago
Scoop was updated successfully!

> scoop install legacy-jdk
Installing 'legacy-jdk' (1.7.0_45) [64bit]
jdk1.7.0_45.zip (131.7 MB) [======================================================================================] 100%
Checking hash of jdk1.7.0_45.zip ... ok.
Extracting jdk1.7.0_45.zip ... done.
Linking ~\scoop\apps\legacy-jdk\current => ~\scoop\apps\legacy-jdk\1.7.0_45
'legacy-jdk' (1.7.0_45) was installed successfully!

参考