2018/05/27

Oracle Java SE 8 JDK を CLI で Install する

さて、Java を CLI でインストールしたい時があります。
例えば Docker の Image を作る時などですね。 Dockerfile に書きたい。
OpenJDK ならば yum や apt-get で Install できるのですが、Oracle の JDK だとそうはいかない。
なので、作業ログを残しておこうかと思います。


環境

  • macOS Sierra: 10.12.6
  • Docker for mac: version 18.03.0-ce, build 0520e24
  • Base Image: ubuntu:16.04
  • Oracle JDK: 1.8(build 1.8.0_161-b12)


ppa:webupd8team repository

Oracle JDK を公式のサイトから落っことしてきても良いのですが、zip と rpm しか無い。
Ubuntu の dpkg で install したいので deb ファイルが欲しい。
どうも調べてみると、 apt の追加 repository にあるらしい

ので追加して Install してみる。
  • apt-get install -y software-properties-common # install apt-add-repository command 
  • apt-add-repository -y ppa:webupd8team/java
  • apt-get update
  • apt-get install -y oracle-java8-installer
License に同意するか聞かれるので yes 。そうしたら Install される。


License Agreement with debconf

License に同意する部分には stdin に yes と入れたら済むだろう、ということでやってみる。
  • yes yes | apt-get install -y oracle-java8-installer
ところが上手くいかない。
apt-get が license を表示するやつ(自前かlessか?)に stdin を渡していないっぽい。

ということで調べてみたらやっぱり解決策がある
debconf で License を読んだことと、同意したことを事前に登録すればOKとのこと。
  • echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
  • echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections
  • apt-get install -y oracle-java8-installer
これで yes を入力しなくても Java が Install できる。良し良し。


参考

2018/05/20

Homebrew の auto-update を止める

いつからか、Homebrew が upgrade や install の際に auto update をするようになりました。
しかし毎回 update が走るのは煩わしい。
特に連続で何かを install する時などは「さっきも update したじゃん」となります。
なので auto-update を止めました。


環境

  • macOS Sierra: 10.12.6
  • Homebrew 1.6.1-7-g6233b9d
  • Homebrew/homebrew-core (git revision 9623af; last commit 2018-04-16)
  • zsh: 5.5 (x86_64-apple-darwin16.7.0)


HOMEBREW_NO_AUTO_UPDATE を set

とはいえやることは環境変数を追加するだけです。
  • export HOMEBREW_NO_AUTO_UPDATE=1
あたりを .zshrc に追記
これで煩わしい auto-update を無効にできます。
あと、 man brew を読むといろいろと環境変数に指定できることが分かります。が、今はこれだけで良いかな。


参考

2018/05/13

Ubuntu 16.04 に CUDA を install する

過去に CentOS7 に CUDA 環境を構築したことがある のですが、Ubuntu 16.04 上にも構築してみたのでそのログ。


環境

  • Ubuntu: 16.04
  • CUDA: 9.1

Install

手順は公式のドキュメントが懇切丁寧に解説しています。
指示された通りに
  • # apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
  • # wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
  • # dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
  • # apt update
  • # apt-get install -y cuda cuda-drivers
したらおしまい。
ダウンロードは 1.3GB とかかな。使う disk は 4GB くらい。
特に問題も無く構築できたので良きかな良きかな。


参考

2018/05/06

ssh した先で GUI Application を起動する

前回の記事では IP Reachable であれば DISPLAY を設定することで GUI Application も動く、と書きました。
ssh に関して言えば、もっとスマートな解決方法があったようです。


ssh と -X -Y option

man ssh を見ると、 X11 に関するオプションがいくつかありますね。
特に X11Fowarding が yes で -X か -Y を付けると
  • The DISPLAY value set by ssh will point to the server machine.
とのこと。勝手に DISPLAY を設定してくれるっぽい。便利。

X11Fowarding option は sshd_config の方(サーバ側)の option で見たことがあります。
なるほど、ここで使うのか(というか ssh した状態で GUI 使うって発想がそもそも無かった……)。


-X option with ssh proxy

-X や -Y の方が優れている点として、ssh proxy を通していても GUI が使える点があります。
具体的には -W option を使って、
  • global IP を持っているマシンに ssh
  • そこから local IP を持っているマシンに ssh
をしている状態でも動きます。

ちなみにその時の DISPLAY の値は
  • $ ssh -Y 10.20.30.40
  • $ echo $DISPLAY
    • localhost:10.0
とか。localhost の host はどこなの状態。IP reachable とかそんなレベルじゃない。

いやまー、 22 番にアクセスしてきた socket を使ってデータを送受信している、みたいなオチだとは思う。
が、「通信が相互に疎通可能である状態ならGUIでもOK」と書いた身としては、すみません嘘つきました、という気持ち。


参考