カテゴリー
Apple

Mac の Visual Studio Code を SDKMAN での Java と連携して動作確認する設定メモ

VS Code で sdkman の Java を使えるようにする設定方法

やりたいこと

カテゴリー
Apple

【Mac】Android Studio と JDK 7 をアンインストールし、SDKMAN! をインストールした記録

Android Studio をアンインストール

$ rm -Rf /Applications/Android\ Studio.app
$ rm -Rf ~/Library/Preferences/AndroidStudio*
$ rm ~/Library/Preferences/com.google.android.studio.plist
rm: /Users/oki2a24/Library/Preferences/com.google.android.studio.plist: No such file or directory
$ rm -Rf ~/Library/Application\ Support/AndroidStudio*
$ rm -Rf ~/Library/Logs/AndroidStudio*
$ rm -Rf ~/Library/Caches/AndroidStudio*
$ rm -Rf ~/.gradle
$ rm -Rf ~/.android
$ rm -Rf ~/Library/Android*

JDK 7 をアンインストール

カテゴリー
Linux

【Ansible】SDKMAN! で Oracle Java インストール時のキーボード入力待ち状態に expect モジュールで対処する

まとめ

  • Ansible の expect モジュールを使用する。
    • pip – Manages Python library dependencies. — Ansible Documentation
    • virtualenv、pip に依存するとあるが、pip のみのインストールで問題なかった。
    • pip は epel リポジトリの python-pip でインストールした。
    • pip がインストールされれば、ansilbe の pip モジュールが使用できるようになり、楽に pexpect をインストールできるようになった。
  • OpenJDK のときは対話処理するための質問文が表示されない。このときは expect は無視されるので Ansible の実行に影響なし。
  • expect モジュールの timeout デフォルト値は 30 秒のため、Java のインストールに間に合わずエラーとなった。したがって、1200 (60 秒 × 20 分) を設定した。
    • timeout 値を超える前にインストールが完了すれば次の処理へ進んだ。したがって、timeout には大きな値を入れておけば良い。
カテゴリー
Linux

【CentOS7】SDKMAN! をシステムワイド (全ユーザが使えるよう) にインストールする方法

root ユーザで SDKMAN! を使ってインストールした Java や Grails を、他のユーザ使用できるのならシステムワイドにインストールする必要はない。

そのように考え試してみましたところ、ダメ!

具体的には root ユーザで Java をインストールして、別ユーザで java コマンド確認したら無いって言われてしまいました。

  • 全ユーザが sdk コマンドで SDK をインストール等できる。
  • 全ユーザが sdk コマンドで使用可能にした Java 等を利用できる。

という環境を作成してみました。

まずは従来の普通の方法を見た後、システムワイドに SDKMAN! をインストールする方法書いていきます。

カテゴリー
Linux

【Ansible】変数の値を command モジュールで実行できなかった><

はじめに

にて、Ansible の変数を command モジュールで実行しようとしたところ、1 行が 1 つの引数と判断されてしまうために、エラーとなってしまいました。

そこで、次の方法が思い当たりました。

(今回はダメだったけれども) Ansible タスクで変数の値をそのまま command モジュールで実行する方法

カテゴリー
Linux

【Ansible】SDKMAN! を curl を使わないでインストールするタスク

SDKMAN! のインストールは簡単!

公式ページ Installation – SDKMAN! にあるようにワンライナーで完了です。

$ curl -s "https://get.sdkman.io" | bash

これを単純に Ansible タスクで書くと次のようになります。

- name: Install SDKMAN!
  shell: curl -s "https://get.sdkman.io" | bash

ところが実行してみますと、次のような警告が出ました。

TASK [sdkman : Install SDKMAN!] ************************************************
changed: [default]
 [WARNING]: Consider using get_url or uri module rather than running curl

この警告を出ないようにしてみましたのでノートします。