てくてくテック☆

千里の道も一歩から。テック(Tech)の道をてくてく歩く。

SDKMAN とかいう三代目 J Soul Brothers 感たっぷりのパッケージマネージャーを使ってみた

SDKMAN って聞いて、ただよう三代目感を感じとったのは私だけじゃないはず。。

それはさておき、SDKMAN というパッケージ管理ツールを使って、Java や Gradle をインストールしてみたので、ブログに残しておきます。
 
SDKMAN はもともと gvm という Groovy 関連のあれこれを管理するためのものだったようです。SDKMAN になってからは Groovy 周りに限らず、Oracle Java や Spring Boot など Java 関連のあれこれもまとめて管理できるようになりました。

何がインストールできるのかは、こちらの Qiita 記事の一覧が見やすかったのでリンクを貼っておきます。

qiita.com  
 

そして、肝心の SDKMAN の本家サイトはこちら

 
うーん、やっぱり三代目臭がプンプンする。。
 
 

SDKMAN をインストールする

インストール方法はとっても簡単。

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version

sdkman 5.0.0+51

これだけ。
 

SDKMAN で Java をインストールする

SDKMAN での Java のインストールもとっても簡単。

$ sdk install java

これだけ。
 
上記だと最新のものがインストールされますが、sdk install java (バージョン番号) とすれば、好きなバージョンが入れられます。
 

SDKMAN で Gradle をインストールする

SDKMAN での Gradle のインストールもやっぱりとっても簡単。

$ sdk install gradle

これだけ。
 
ちなみに sdk list gradle とかやると、インストールできる gradle のバージョンが見れます。(前述の Java も同じ)
 

SDKMAN で Java や Gradle をインストールしたときの注意点

インストール先がいつもの場所じゃなくなり、/User/hoge/.sdkman/candidates/ 配下になります。
なので、IDE などでデフォルトのパスを指定していた場合、認識されなくなるのでご注意ください。(実際に IntelliJ で Gradle のプロジェクトのインポートで苦戦しました。。)

ちなみに Java の場合、SDKMAN でのインストール時に JAVA_HOME の設定はしてくれるみたいです。
 
 
 
久しぶりすぎると、環境構築すら愛おしく感じる今日この頃。。

nodebrew を使って Node.js をインストールする

ローカルで Google Action Script を開発するための環境を整えるのに Node.js が必要だったので、そのときの作業メモです。
 
最初にデフォルトでインストールされている Node.js(+ npm)をアンインストールし、nodebrew(+ homebrew)をインストールした後、Node.js(+ npm)を再インストールし直しています。

作業はすべて Mac のターミナル上で行いました。
 

デフォルトでインストールされている Node.js(+ npm)をアンインストールする

後述の nodebrew を使って Node.js のバージョンなどを管理したいので、デフォルトでインストールされている Node.js(+ npm)を削除しておきます。
 

Node.js のアンインストール

Node.js のバージョンを確認する(Node.js の存在有無を確認する)
$ node -v
v0.12.7

※ 上記のようなバージョン情報が表示されれば、Node.js がインストールされています
 

Node.js をアンインストールする
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
  sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
     /usr/local/lib/node_modules \
     /var/db/receipts/org.nodejs.*

※ 参考) 上記コマンドの元は Stack Overflow の以下のページです
How do I uninstall nodejs installed from pkg (Mac OS X)?
http://stackoverflow.com/questions/9044788/how-do-i-uninstall-nodejs-installed-from-pkg-mac-os-x
 

Node.js のバージョンを確認する(Node.js の存在有無を確認する)
$ node -v
-bash: /usr/local/bin/node: No such file or directory

※ バージョンの代わりに、上記のようなメッセージが表示されればアンインストール成功!
 

npm のアンインストール

npm のバージョンを確認する(npm の存在有無を確認する)
$ npm -v
2.11.3

※ 上記のようなバージョン情報が表示されれば、npm がインストールされています
 

npm をアンインストールする
$ rm -rf ~/.npm

 

npm のバージョンを確認する(npm の存在有無を確認する)
$ npm -v
-bash: /usr/local/bin/npm: No such file or directory

※ バージョンの代わりに、上記のようなメッセージが表示されればアンインストール成功!
 

nodebrew(+ homebrew)をインストールする

nodebrew は Node.js のインストールやバージョン切り替えなど、Node.js の管理が容易になるツールです。
nodebrew のインストールに必要な homebrew も nodebrew とあわせてインストールします。
 

homebrew のインストール

homebrew のバージョンを確認する(homebrew の存在有無を確認する)
$ brew -v
-bash: /usr/local/bin/brew: No such file or directory

※ 上記のようなメッセージが表示されていると homebrew がインストールされてません
 

homebrew をインストールする
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

※ 途中で「Press RETURN to continue or any other key to abort」と聞かれるので、Enter キーを押下してください
 

homebrew のバージョンを確認する(homebrew の存在有無を確認する)

$ brew -v
Homebrew >1.1.0 (no git repository)
Homebrew/homebrew-core (git revision bfd2; last commit 2016-12-17)

※ 上記のようにバージョン情報が表示されれば homebrew のインストール成功!
 

nodebrew のインストール

nodebrew のバージョンを確認する(nodebrew の存在有無を確認する)
$ nodebrew -v
-bash: /usr/local/bin/nodebrew: No such file or directory

※ 上記のようなメッセージが表示されていると nodebrew がインストールされてません
 

homebrew から nodebrew をインストールする
$ brew install nodebrew

 

nodebrew のバージョンを確認する(nodebrew の存在有無を確認する)
$ nodebrew -v
nodebrew 0.9.6

※ 上記のようにバージョン情報が表示されれば nodebrew のインストール成功!
 

nodebrew を使って Node.js(+ npm)をインストールする

nodebrew から再度 Node.js(+ npm)をインストールします。
 

Node.js のインストール

インストールできる Node.js のバージョンを確認する(Node.js の存在有無を確認する)
$ nodebrew ls-remote
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6
...
(中略)
...
io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1

 

Node.js をインストールする
$ nodebrew install-binary latest

バイナリが用意されている場合、install-binary を指定すると、バイナリインストールができます(コンパイルが省略される分、インストール時間を短縮!)
※ 最新版をインストールしたい場合、latest を指定すれば OK(latest の代わりに、バージョン(v0.9.6 など)を指定すれば、特定の Node.js のインストールも可能です)
 

エラーメッセージが表示された場合

$ nodebrew install-binary latest
Fetching: https://nodejs.org/dist/v7.2.1/node-v7.2.1-darwin-x64.tar.gz
Warning: Failed to create the file
Warning: /Users/ユーザ名/.nodebrew/src/v7.2.1/node-v7.2.1-darwin-x64.tar.gz: No
Warning: such file or directory

curl: (23) Failed writing body (0 != 941)
download failed: https://nodejs.org/dist/v7.2.1/node-v7.2.1-darwin-x64.tar.gz

 

以下のように nodebrew 用のディレクトリを作ってから、再度コマンドを実行するとうまくいきます

$ mkdir ~/.nodebrew
$ mkdir ~/.nodebrew/src
$ nodebrew install-binary latest
Fetching: https://nodejs.org/dist/v7.2.1/node-v7.2.1-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully

 

インストールされた Node.js のバージョンを確認する(Node.js の存在有無、及び、バージョンの指定有無を確認する)
$ nodebrew list
v7.2.1

current: none

※ 上記のようにバージョン情報が表示されれば nodebrew のインストール成功!
※ current: none は使用する Node.js のバージョンが指定されていないことを表しています
 

使用する Node.js のバージョンを指定する
$ nodebrew use v7.2.1
use v7.2.1

 

使用する Node.js のバージョンを確認する(バージョンの指定有無を確認する)
$ nodebrew list
v7.2.1

current: v7.2.1

※ 上記のように current: <バージョン情報> と表示されれば Node.js のバージョン指定成功!
 

Node.js のパス設定

Node.js のバージョンを確認する(パスの疎通を確認する)

以下のコマンドを実行する

$ node -v
-bash: node: command not found

※ 上記のようなメッセージが表示されていると、Node.js へのパスが通っていません
 

.bash_profile を修正する
$ vi ~/.bash_profile

※ .bash_profile を修正後、ターミナルを再起動する
 

.bash_profile に追記する内容

export PATH=$HOME/.nodebrew/current/bin:$PATH

 

node から Node.js のバージョンを確認する(パスの疎通を確認する)
$ node -v
v7.2.1

※ 上記のように、バージョン情報が表示されれば Node.js にパスが通っています
 

npm のバージョン確認

npm のバージョンを確認する(npm の存在有無を確認する)
$ npm -v
3.10.10

※ 上記のように、バージョン情報が表示されれば npm にパスが通っています(nodebrew で Node.js をインストールすると npm もインストールされます)
 

最後に

以上、nodebrew を使った Node.js のインストール方法でした。
 

コミュニティと出会いのチカラを実感した日

最後の投稿が 2015 年 3 月で 1 年半以上前。。思わず、日付を二度見しちゃいました。。

なんとなく、ブログのデザインも変えてみたり。

しばらく更新しなかった?(できなかった?)理由

かなり久しぶりになってしまった理由ですが、それは私が事実上 「エンジニア」じゃなくなってしまった から、です。

機会がなかったのも含め、これまで「エンジニア」として知り合った方にも、そのあたり、未だにちゃんと説明できてなかったりもするんですが、実はもうだいぶ長い間、「開発」らしい「開発」をやってません。
最初の頃はまだ、PMO 的な感じで「システム開発」には関わっていたけど、今はそれすらゼロだったりします。

じゃあ、今は何やってるの?

その代わり?として今やっているのが、主に社内のシステム管理です。
アカウント発行したり、とか依頼ベースであれこれやってます。

もちろん、同じ社内のシステム管理でも、積極的にスクリプトを書いたりとかして、エンジニアリングしてる方もいるとは思うんですが、私の場合、そういうことも一切なく。。
(やろうと思えば、自分をそういう方向に持っていくこともできたはずなんですが、完全に「気持ち」が追いついてない感じ)

なので、「エンジニア」とは言えないなぁ、と自分では思ってます。

ちなみに、身の回りでいろいろあったのと自分的に思うところがあって、現在に至っているので、無理やりそうなった、とかではないです。(念のため)

ただ、現在進行形でモヤモヤはまだ続いていて、うまく表現できないけど、なんとなく周りに「後ろめたさ」のようなものを感じて、足が遠のいてしまっていました。。

また更新しようと思ったキッカケ

このまま、フェードアウトしていくのかなぁ、と思っていたんですが、意外なところにキッカケは転がっていたようで、私の場合は、1 ヶ月ほど前に参加した、とあるコミュニティのイベントでした。

最初はそれも業務命令というか、半強制的な感じでの参加だったので、正直、あまり深くは考えておらず。。

でも、終わってみれば、純粋にすごく楽しくて。
参加して良かった、って思えました。

なにより、素敵な出会いがあったのがすごく大きかった!

仕事としてやるかどうかとかは置いておいて、またちょっと「エンジニア」な世界に足を突っ込んでみたくなったんです。

これから

1 年後、またバリバリ「開発」してるかもしれないし、全然そうじゃない方向にいってるかもしれない。
先のことなんてわからないけど、なんか面白そうって感じたことがあったら、ここに残していけたらいいな、と思ってます。

変に気負わずに、ゆる〜くやる感じで。

何かのイベントとか勉強会とか、どこかで見かけることがあったら、そのときはよろしくお願いしますm( )m

Spring Boot + Thymeleaf を触ってみた!

前回の「Spring Boot を触ってみた!」の続きです。

今回はこちらのページを参考に、
テンプレートエンジンの Thymeleaf を使ってみました。
 

使用後の感想としては、

「なんだ、JSP と一緒じゃん」

でした。
 

正直に言うと、使ってみる前は
テンプレートエンジンってものがよく分かっておらず、
Tiles みたいなものかと思ってたので、
(自分の中では)かなり衝撃的でした。

その後、Google 先生に聞いてみて、
テンプレートエンジンってくくりで考えると、
Thymeleaf も JSP も同じ仲間なことが分かったので、
感想としては間違ってはないみたいなんですが。。
 

そうなると、JSP 経験者な自分としては、
Thymeleaf の文法(タグの記述の仕方)を
新たに覚えなきゃいけない分、
JSP の方に軍配が上がりそうなもんなんですが、
Spring Boot のドキュメントのこことかここを見ると、
どうやら

JSP はあまりオススメされてない

ようです。。
 

JSPs should be avoided if possible, there are several known limitations when using them with embedded servlet containers.

組み込みのサーブレットコンテナと一緒に使うなら、
いくつか既知の制限があるから、
できるだけ JSP は避けたほうがいいよ、って書いてありますね。
(英語勉強中なので間違ってたらご指摘くださいm( )m

 

試してないですが、
war 起動はできても(tomcat の場合)、
jar 起動できないようなので、
Spring Boot の魅力を半減させてまで、
JSP 使うのかどうか、ってところでしょうか。

まだ、サンプル試しただけで、
たいした機能を使えてない状態なので、
今後、Thymeleaf の新たな一面が発見できたら、
また報告したいと思います。
 

2015/03/08 追記

前述のような感想を綴った私に
我が心の師匠(勝手に)、@jflute さんから
Thymeleaf に関する
ありがたいツイートをいただきました!
 


 
いつもありがとうございます!
 
 
Thymeleaf さん、
暴言吐いて、すいませんでした。。m( )m  
 

Spring Boot を触ってみた!

今さらかもですが、こちらのページを参考に
Spring Boot を触ってみました。
 

使用感としては、

「ヤバイ、めっちゃ楽しい!」

です。
(ありきたりですが。。)
 

噂どおり?、
Spring MVC を使ってたときに書いてたような、
わずらわしい設定ファイルを一切作らずに
起動できちゃうし、
そこまでいくのにも本当にスピーディー!  

Web アプリに関して、開発スピードを追求するとなると、
Java は重厚感ありすぎで、もっとライトな
別の何かが必要なのかなぁ、とか考えるほどに
ちょうど、モヤモヤしてたところだったので、
今回のお遊びはかなりタイムリーでした。

「早いとか聞くけど、ホントにー?」、と疑心暗鬼の中、
結果、予想以上でテンションだだ上がりなので、
これならもう少し踏みとどまれそうです。
(むしろ、いろんな夢が広がる。。)

 

上記のページでは Maven 入ってる前提になってるので、
インストールがまだの方はこちらを参照ください。

説明がすごい分かりやすいので、
上記だけでも十分すぎるくらいなんですが、
mvn コマンド初心者な私は 1 点だけつまづいたので、
以下、補足です。。
 

補足: jar で起動する前に必要なこと

Spring Boot では、以下のコマンドをたたいただけで、
すぐに Web アプリケーションとして実行することができます。
(前述のページのとおりにすれば、
http://localhost:8080」にアクセスすれば「Hello, world!」できます)
 

# mvn spring-boot:run

 

で、以下のようにすると、
Java の jar コマンドでの実行ができます。
 

# java -jar target/spring_boot_sample-1.0-SNAPSHOT.jar

 

。。が、その前にやるべきことが 1 つ!
 

jar コマンドをたたく前には、
以下のコマンドで jar を作成しておきましょう。
 

# mvn package

 

何にもしないと jar 作られるはずなんてないのに、
しばらく気づけなくて、
画面の前で固まっちゃってました。