sbtとScalaのインストール

昨日は JDK のインストールをしたので、今日は Scala をインストールする。

といっても、通常は Scala を直接インストールするのではなく、sbt というツールを使うのが普通のようだ。そこで、まずは sbt をインストールする。

 cf. sbt – Download

上のダウンロードページから、最新版(1.2.8)の msi インストーラをダウンロード。ダブルクリックするとインストールが始まる。基本的に [Next] ボタンをクリックしていけば完了する。

sbt のインストールが完了したら、適当なフォルダを掘ってコマンドラインで sbt console コマンドを起動してみよう。こんなメッセージが出て入力待ちの状態になる。

^o^ > sbt console
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Updated file C:\Users\takatoh\Documents\sandbox\scala\project\build.properties: set sbt.version to 1.2.8
[info] Loading project definition from C:\Users\takatoh\Documents\sandbox\scala\project
[info] Updating ProjectRef(uri("file:/C:/Users/takatoh/Documents/sandbox/scala/project/"), "scala-build")…
[info] Done updating.
[info] Set current project to scala (in build file:/C:/Users/takatoh/Documents/sandbox/scala/)
[info] Updating …
[info] Done updating.
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.7. Compiling…
[info] Compilation completed in 6.282s.
[info] Starting scala interpreter…
Welcome to Scala 2.12.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_201).
Type in expressions for evaluation. Or try :help.
scala>

これは Scala の REPL で、対話的に実行できる環境。Ruby の irb みたいなものだ。「Welcome to Scala 2.12.7」と出ているので、Scala 2.12.7 がインストールされたことがわかる。

REPL を終了するには次のようにする。

scala> :quit

次回からはこの REPL を使って、Scala を触ってみることにする。

JDKをWindowsにインストール

Scala は JavaVM 上で動作する言語なので、まずは JDK(Java Development Kit)をインストールする。

今、Oracle のサイトを見たら最新版が JDK12 になってるけど、Scalaの公式サイトのこのページによると、JDK12 は出たばかりで十分にテストされていないようなので、以前にダウンロードした JDK8 を使うことにする。

インストーラは Windows の実行形式(exe)になっているので、ダブルクリックして実行すれば、あとはほぼ自動で完了する。ただし環境変数を設定してくれないので、これは自分で設定する必要がある。

必要な環境変数は2つ、PATH と JAVA_HOME だ。PATH は実行ファイルの検索パスで、Java の実行ファイルがあるフォルダを指定(というか追加)する。一方、JAVA_HOME には Java をインストールしたフォルダを設定する。

それぞれ次のようにした。

  • PATH には C:\Program Files\Java\jdk1.8.0_201\bin を追加
  • JAVA_HOME には C:\Program Files\Java\jdk1.8.0_201 を指定

これでOKのはず。コマンドプロンプトで確認してみる。

^o^ > java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

大丈夫のようだ。

明日は Scala をインストールする(予定)。

Windows10+Tomcat上でGitBucketを動かす

GitBucket という GitHub のクローンを見つけた。GitHub クローンといえば GitLab が有名だけど、web の情報を見ていると構築するのが結構面倒そうで、試したことがなかった。その点、GiuBucket は war ファイルを Java で実行するだけ、という簡単さ。早速試してみよう。

前提条件

  • windows10
  • Java はインストール済み

まずは簡単に

GitBucket は たけぞうさんという方が Scala で書いた GitHub クローンだ。war ファイルで配布されているので、ダウンロードしたらすぐに実行できる。

 cf. GitBucket 4.31.0、4.31.1をリリースしました – たけぞう瀕死ブログ

4.31.1 が最新バージョンのようなので、上のページからリンク先にとんで、gitbucket.war ファイルをダウンロードする。あとは実行するだけだ。

^o^ > java -jar gitbucket.war

これだけで OK。http://localhost:8080/ にブラウザでアクセスするとアプリが動作している。

使い方も簡単

デフォルトで root ユーザーが用意されている。まずはこの root でサインイン(パスワードも root)して、右上のプルダウンメニューから System Administration を選び、ユーザーを追加する。今回は takatoh を追加した。ユーザー名とパスワード、フルネーム、メールアドレスが必須みたいだ。

あとは、作ったユーザーでサインインしなおせば、自由にリポジトリを作ったりできる。GitHub を使い慣れていれば迷うこともなさそうだ。

Tomcatをインストール

さて、うまく動いたわけだけど、いちいちコマンドラインから実行するのでは面倒で仕方がない。というわけで、Apache Tomcat の出番だ。

Tomcat は↓ここから最新版(9.0.17)をダウンロードした。

 cf. Tomcat 9 Software Downloads – Apache Tomcat

32-bit/64-bit Windows Service Installer ってやつね。ファイル名は apache-tomcat-9.0.17.exe だった。このファイルを実行すればインストールされる。

インストール自体は、途中の Tomcat Administrator Login のユーザー名とパスワードを入力した以外はすべてデフォルトにした。ただし、最後の Run Apache Tomcat のチェック外してすぐに実行しないようにする。

GitBucketをインストール

インストールといっても、Tomcat のインストールフォルダにある webapps フォルダに gitbucket.war ファイルをコピーするだけだ。

次に、環境変数 GITBUCKET_HOME を設定する。これは データベースや各リポジトリを格納するフォルダを指定する。これを指定しておかないと、データがどこにあるのかわからない。今回は C:\GitBucket に設定した。

Tomcatを起動

スタートメニューから、Apache Tomcat 9.0 Tomcat9 → Configure Tomcat を選択。開いたウィンドウで、Startup type を Automatic にして Start ボタンをクリック。これで Tomcat が起動する。Startup type を Automatic にしたのは、Windows 起動時に自動で Tomcat も起動させるため。

GitBucketにアクセス

Tomcat はポート8080で待ち受けているので、http://localhost:8080/githubucket/ にアクセスする。コマンドラインから立ち上げたときとパスが違うので注意。だけど、これで無事アクセスできた。

さいごに

プライベートでは GitHub なり BitBucket なりに自由にアクセスできるので、わざわざ構築する必要もないのだけど、会社の PC からはアクセスできない(制限されている)ので、そういう環境では役に立つだろう。週が明けたらやってみよう。

Windows10その後

というか iTunes のその後、というか。

結局、Windows を再インストールして、アプリを一つずつインストールしながら iTunes がちゃんと動くかどうかを確認していった。ついでに、先週のエントリを書いた時点では気づかなかったけど、Dropbox の同期もできていなかったので、これも確認しながら。

で、どうやら RLogin という SSH 接続に使っているターミナルクライアントが怪しいということになって、これを除いた構成で様子を見ることにした。ところが、再インストール直後は大丈夫だった iTunes と Dropbox がしばらく経つといつの間にかやっぱり繋がらなくなっている。どうも、少なくとも RLogin 単独のせいではないようで、なぜつながらないのかさっぱりわからない。

そういうわけなので、montana で iTunes と Dropbox を動かすのは諦めて、ノートPCの sofa で動かすことにした。sofa のストレージは SSD で容量が少ないので、samba サーバ(wplj)に共有フォルダを新しく作って、それを sofa の M:ドライブに割り当てて音楽保管用のフォルダを作った(なにせアルバム1000枚、60GBもあるので)。この構成だと、家の WiFi の外では使えないけど、それは諦めることにした。

というわけで、montana は WEB ブラウジングとゲーム用のマシンになった。ゲームのセーブデータは全部消えたけどな(←こないだも言った)!

iTunes Storeにつながらない

Windows10 のセットアップが終わって、一息ついたと思ったら、iTunes Store につながらない。「ネットワークの接続を確認して、やり直してください。」と言われる。CD からインポートした曲は聴けるんだけど(当然)、Store から購入した曲が聴けない。これじゃ、何のために Windows の再インストールをしたんだかわからないじゃないか。

たしか昨日、Windows のインストールが終わったあと、最初にインストールしたのが iTunes だ。その時はちゃんとつながったはずだ。ということは、そのあとにインストールしたアプリが悪さをしてるか、何か設定が変わってしまったか。

はぁ、一つずつ消して確かめてみるか……

[追記]

iTunes 以外のアプリを一つずつ消しながら確かめてみた。結果、iTunes 以外の、あとからインストールしたアプリを全部消しても、さらには iTunes 自体を再インストールしてもつながらなかった。たぶん、アプリのインストールをしてるどこかで何かの設定が変わっちゃったんだ。

結局、Windows の再インストールしかないか。

Windows10を再インストールした

昨日のことだけど、時間が取れなかったので今日書く。

先日こわれて(こわして)しまった montana の Windows10、アマゾンで頼んだインストールメディア(DVD)が届いた。届いた Windows には LAN アダプタがついていた、というか LAN アダプタに Windows10 がついていたというのか。そういえば注文した時にバンドル版だと書いてあったような気がする。それにしてもこの LAN アダプタ、10/100Mbps なんだけど今時こんなのあるんだね。誰が使うんだろう?

それはともかく、Windows10 の再インストールだ。インストール自体はインストーラに従っていけばすんなり終わるので、詳細は割愛する。ただ、デフォルトでは「ドキュメント」ほかいくつかのフォルダが OneDrive 上に保存されるようになっている。この点だけ、ローカルドライブに保存するように変更した。

まず、画面右下の OneDrive のアイコン(雲のアイコン)を右クリックして「設定」を選ぶ。「自動保存」タブの「フォルダの更新」ボタンをクリックして出てくるウィンドウに「デスクトップ」と「写真」、「ドキュメント」があるので、それぞれ「保護の停止」をクリックする。これで OneDrive じゃなくてローカルドライブに保存するようになる。

あとはアプリのインストールだけど、使ってるのはほとんどフリーソフト(例外は iTunes と MS Office、B’s Recorder くらい)なので、Chocolatey を使ってインストールした。コマンド一発でダウンロードからインストールまでしてくれるので楽でいい。

ただ、Ruby だけは別にインストールした。というのは Chocolatey でインストールすると Devkit が含まれていないものがインストールされるからだ。これだとネイティブなライブラリ(RDiscount とか)がインストールできない。なので、RubyInstaller のダウンロードページから Devkit を含んだインストーラをダウンロードしてインストールした。

さて、これで一通りのセットアップは終了。アイコンがごちゃごちゃしていたデスクトップもさっぱりしたので、そこはよかったかも。

ゲームのセーブデータは全部消えたけどな!

Windows10がこわれた

というかこわしちゃった、というか。新年早々、なんて運が悪いんだ。

こわれたのは Windows10 マシンの montana なんだけど、経緯はこうだ。しばらく前からちょっと調子が悪かった。DropBox が同期できないし、iTunes のアップデートにも失敗する。どうもネットにうまくつながらなくて失敗してるらしいんだけど、一方でブラウザ等ではなんの問題もなく使えてた。とはいえ、不便もあったし、連休中でちょうどいいので、以前作ってあった回復ドライブ(USBメモリ)をつかって、インストールし直そうとしたわけだ。

で、いったん電源を落として、回復ドライブの USBメモリをさしてスイッチオン。F12キーを押してブートメニュー画面に入ってから、「USB Storage Drive」を選択。これで回復ドライブから起動する。あとはメニューに従っていくと、「このPCを回復しています」というメッセージと一緒に進捗を示すパーセンテージが表示される。

あとは待つだけかとおもったら、5%くらいの進捗のところで、「PCを初期状態に戻すときに問題が発生しました。変更は行われませんでした。」というメッセージが!

この時点で選択肢は「キャンセル」しか無い。仕方なくキャンセルすると、起動したあとの最初の方の画面に戻ってやり直し。ところが結局は同じ結果になる。何度繰り返しても同じ。

試しに USBドライブを抜いて起動してみたけど、ファイルが削除されてしまったらしくハードディスクからは起動できず。ここで手詰まり。

というわけで、Windows10 がこわれてしまった。何が回復ドライブだ。ふざけんな!

新しいノートPCにCentOS7をインストールした

新しいといっても中古だけど。
インターネットに公開してるサーバのバックアップにしようと思って、HP のノートPCを中古で買ったんだ。4年落ちくらいの Windows7 Pro がインストールされてるやつ。で、サーバにするので、Windows はサクッと消して CentOS をインストールしようというわけ。

修復ディスクの作成

万が一、CentOS がインストールできなくても Windows PC として使えるように、修復ディスクを作っておく。USB メモリを買っておいたんだけど、Windows 7 では DVD にしか作れないようだ。無駄になった。
それはさておき、コントロールパネル → システムとセキュリティ → バックアップと復元 とたどって開いたウィンドウの左側にある、「システム修復ディスクの作成」を選んで修復ディスクを作成した。

CentOS 7のインストール

9月に、nightschool にインストールしたのと同じ CentOS 7.5 1804 のディスクを使う。
ノートPC の電源を入れ、起動の途中で ESC キーを押してセットアップメニューに入る。F9 のブートオプションから USB CD/DVD ブートを選んで起動する。ソフトウェアの選択では「サーバ(GUI使用)」を選んだ。ユーザー takatoh を管理者として作成。ホスト名は bigswifty。
後はインストールが済むのを待つ。
終わると再起動して、ライセンスに同意。これでインストール終了。

日本語入力

左上のメニューから、アプリケーション → システムツール → 設定 → 地域と言語 とたどって、入力ソースのところで + ボタンを押し、「日本語(かな漢字)」を追加する。これで、Windowsキー + スペースキーで日本語入力に切り替えられるようになった。

パッケージのアップデート

[takatoh@bigswifty ~]$ sudo yum update

361個のパッケージがアップデートされた。

さて、ひとまずここまで。

Dropboxに接続できなくなった

メインの Windows 10 マシン(montana)で、Dropbox に接続できなくなった。
いつからかはわからないけどファイルの同期ができなくなっていて、それで仕方がなく再インストールするも、インストール自体はできるけど、その後の設定の場面で「ご使用のコンピュータは現在オフラインです。ネットワーク設定をご確認ください。」のメッセージが出て接続できない。

ブラウザでは問題なく Dropbox のサイトに接続できているし、ほかの Windows 10 マシン(sofa と flambay)でも Dropbox に接続(っていうか同期)できている。なぜか montana だけができない状態。

目下のところ打つ手なし。お手上げ状態。どうすりゃいいんだ。

Windows PowerShellの実行ポリシーとプロンプトのカスタマイズ

PowerShell のデフォルトのプロンプトは、「PS カレントディレクトリのパス >」となっていて、ディレクトリが深くなるとすごく長くなる。これをもっとシンプルにしようと思った。具体的には、Ubuntu と同様に「ユーザー名@ホスト名 >」くらいでいい。
ググってみると、プロンプトは prompt 関数の返り値が使われるので、%USERPROFILE%\Documents\WindowsPowerShell\profile.ps1 ファイルに prompt 関数を書いておけばいいようだ。.ps1 てのは PowerShell のスクリプトの拡張子ね。
で、prompt 関数は次のようにした。

さて、これで新しいシェルを立ち上げれば、profile.ps1 が読み込まれてプロンプトの変更が反映されるはず。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\takatoh\Documents\WindowsPowerShell\profile
.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=1
35170) を参照してください。
発生場所 行:1 文字:3
+ . 'C:\Users\takatoh\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

おっと、エラーになった。何やらスクリプトの実行が無効になっているらしい。ググってみると、PowerShell には実行ポリシーというのがあって、これの設定でスクリプトの実行を制御しているらしい。詳しくは上のメッセージにも書かれている、↓のページに説明がある。

 cf. about_Execution_Policies

このページに Windows10 については書かれていないけど、次のようにすると実行ポリシーが Restricted であることがわかる。

PS C:\Users\takatoh> Get-ExecutionPolicy
Restricted

Restricted というポリシーは、コマンドは実行できるがスクリプトは実行できない、というものらしい。なので、これを変更してやればいい。具体的には次のようにした。

PS C:\Users\takatoh> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -scope CurrentUser

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

Y を入力してこれで実行ポリシーの変更はできたはず。RemoteSigned という実行ポリシーは、スクリプトの実行はできるがインターネットからダウンロードされたスクリプトは信頼された発行元によってデジタル署名されている必要がある、というもの。ローカルのスクリプトの実行には支障がないのでこれにした。

さて、改めて PowerShell を立ち上げてみよう。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

takatoh@FLAMBAY > Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined


takatoh@FLAMBAY > Get-ExecutionPolicy
RemoteSigned

期待通り、プロンプトが変更されていて、カレントユーザーの実行ポリシーも RemoteSigned になっているのがわかる。
これでOK。