配布されたプリントやLISのgithubのREADMEに書いてあることをそのままやってもいいんですが、罠があるので一応僕がやったことをメモっておきます。bashで作業してますが多分ほかのシェルでも大体同じです。
npmはnode.jsのためのパッケージマネージャです。
apt install nodejs npm
でもいいんですが、これからnode.jsで遊びたい人にはこれじゃ不便なので、nvmを使ってインストールします。apt使って入れる人は入れてから2.に移ってください。
nvmはnode.js自体のバージョンマネージャです。まずはnvmを入れましょう。nvmのGitHubにインストール方法が書いてあります。
.bashrc
に少し追記されるので. ~/.bashrc
するかbashを立ち上げ直す必要があることに注意です。
nvmが入ったら自動的に適当なバージョンのnode.jsとそれに付随するnpmが入っています。
ただし、type npm
とかすると分かりますが、このnodeやnpmは~/.nvm/
以下のフォルダに入っているもので、先ほど.bashrc
に追記されたinitスクリプトが読み込まれないと認識されないことに注意が必要です。
さて、nvmでインストールしたnode.jsとnpmは、そのままだとaptに認識されません。なので、放っておくとaptが勝手にnodejsパッケージやnpmパッケージをインストールしようとして困るので、dummy-packageを作りましょう。dummy-packageとは、手作業でインストールしたソフトウェアが登録されている他のパッケージと互換することをパッケージマネージャに教えてあげるために作るパッケージです。これを作るにはequivs
を使うので、apt install equivs
しておいてください。
さて、まずはパッケージファイルを作りましょう。npmについてやってみます。
cd /tmp
equivs-control npm-dummy
これで/tmp
下に設定ファイルが作られます。これの中身をいじります。具体的には
Package: npm-dummy
Version: npmのバージョンを入れる
Maintainer: 自分の名前とか
Provides: npm
Architecture: all
Description: dummy-package of npm
あたりを変えれば良いです。大事なのはProvides
のところです。さて、こうして作ったファイルをビルドしてインストールしましょう。
equivs-build npm-dummy
sudo dpkg -i npm-dummy_*_*.deb # 生成された.debファイルを指定
これでaptにdummy-packageが認識されます。同様にnodejsについても設定しておきましょう。こちらはコマンド名がnode
であるのに対しパッケージ名はnodejs
であることに注意してください。
ここかここを見てJava 7を入れます。
Ubuntuは公式にはJava 7のサポートを終えているので、ppaを追加してからapt update && apt install
する必要があります。
この際、Java 8 や 9 が既にインストールされているとjava
コマンドがどれになるかで困ることがあるかもしれません。
困った人はupdate-alternatives
などで解決できます。
Unity公式サイトを見る限りAndroidかTizen向けにビルドするとき以外は必要ないっぽいんですが、まあ一応です。
プリントにはシェルスクリプトからインストールするように書いてありますがこれは罠で、Unityをシェルスクリプトからインストールする場合は前準備として必要なパッケージがあらかじめインストールされた上で実行されていることを前提としています。これはUnityの公式サイトに書いてあります。
ここの一番上に書いてあるポストを見て必要なソフトウェアをapt install
します。とはいえnpm以外は元から入っていることが多いでしょうし、npmは手順1でインストール済みです。
続いてunity-editorをインストールします。.sh
を使う方法と.deb
を使う方法がありますが、.sh
を使う方は実行するだけなのでここでは.deb
を使う方法を説明します。まず、先ほどと同じここのページの 下の方 にある投稿から、最新版かバージョン5.3.4f1のunity-editorの.deb
ファイルを入手します(LISのプロジェクトが5.3.4f1で作られているのでバージョンが違うとUnityで開くとき注意されますがそんなに問題なさそうでした)。そして sudo dpkg -i unity-editor_*-*.deb
コマンド (ファイルは自分の入手した名前にしてください) を使ってunity-editorをインストールします。このときunity-editorが依存するパッケージがまだインストールされていない場合は警告を出してくるので、それに従ってなるべくインストールしてください (apt install
と違ってdpkg -i
は依存性を解決しません)。この過程でjava7-jdkとnpmが必要になるはずです。
さて、無事インストールができた場合、apt list --installed | grep unity-editor
かdpkg -l | grep unity-editor
すればそこに1行あるはずです。また、Ubuntuのアプリケーションランチャーの中に「Unity」が追加されていることでしょう。
aptでnpmをインストールした方は、次の手順に進んでください。nvm経由の方はもうひと手間必要です。
nvm経由でnpmをインストールした場合は、このUnityを起動しても "recent" というタイトルのウィンドウが黒だか灰色だか一色の画面を表示してそこで止まります。これはnvmのinitスクリプトが走っていないが故にUnityがnpmを見つけられていないからです。Unityは初回起動時 ~/.local/share/unity3d/Packages/
以下で必要なパッケージの準備をするのですが、このときnpmが必要なのです。実際にどういうエラーが出ているのかは ~/.config/unity3d/Editor.log
に書いてあるので見てください。実際、npmが見つからない他に、Nvidiaのグラフィックボードとの相性が悪くて黒画面が出ることもあるようです。
一応の打開策として/usr/local/bin/
下にnodeやnpmのシンボリックリンクを作るという方法があるのですが、これをすると折角nvmでバージョン管理しているのに/usr/local/bin/
から見るとバージョンが固定されてしまうという残念なことになります。そこで他の方法も考えてみました。
まず、unity-editorの本体は/opt/Unity/Editor/Unity
なので、bashからこれを直接起動するというのがあります。すると環境変数が引き継がれるので上手く動きます。エイリアスに設定しておくと便利です。また、Ubuntuのアプリケーションランチャーから起動しても大丈夫にしたい場合、.desktopファイルを直接書き換えるという方法もあります。Unityの.desktopファイルは/usr/share/applications/unity-editor.desktop
にあるので、"Desktop Entry Specification"を参考にして書き換えると動きます。(メモ:書き換えてて気づいたんですが、この.desktopファイル、2つExec keyがあるので仕様違反してませんか)
unity-editorの起動に成功すると、ログインしろと言われます。アカウントを持ってない人は "create one" のリンクから作ります。
何やらいろいろ聞かれますが、特に詰まるところは無さそうです。
成功したらとりあえずUnityは閉じておきます。続いてLIS側の準備をします。
Python3使おうよ、と思いますが、LISが必要としているのでしょうがなくインストールします。既に入っている人は次の手順へ。
python3
がインストールされている人は、python
コマンドがconflictしないように気をつけてください。
Pythonを上手くバージョン管理しながらインストールする方法はいくつか存在します。pyenvを使ったり、anacondaのenvironmentを使う方法もあります。一応aptでも入れられます。正直ここにそれらの方法を書いてると長くなるので「ubuntu python install」とかでググってください。
ようやくLISのセットアップです。まずはLISのリポジトリをgit clone
します。
そうしたら後はREADME.md
に従うだけです。ここまでの手順が終わっていれば
pip install -r python-agent/requirements.txt
だけのはず。anaconda使ってる人はpipする時点でpython2.7になってないといけないはずなので注意。
README.mdのQuick Startの節です。python
はPython2.7のことなので、python --version
してそうじゃなければpython2.7
など他のコマンドで考えてください。
./fetch.sh
cd python-agent
python server.py
unity-editorを起動して、「開く」からlis/unity-sample-environment
のフォルダを「開く」と良い感じに表示されます。下のフォルダっぽいやつから「Scenes」→「Sample」をダブルクリックし、ロードが終わってから画面上側にあるスタートボタンを押して少し待つとデモが開始されます。
あとはREADME.mdを参考にしてコンフィグしたり遊んだりできます。