Skip to content

Instantly share code, notes, and snippets.

@nekketsuuu
Last active April 28, 2017 04:50
Show Gist options
  • Save nekketsuuu/b74955aa2d6db78b8ba8684f0f9d468b to your computer and use it in GitHub Desktop.
Save nekketsuuu/b74955aa2d6db78b8ba8684f0f9d468b to your computer and use it in GitHub Desktop.
LIS を Ubuntu 16.10 上で遊ぶための方法

配布されたプリントやLISのgithubのREADMEに書いてあることをそのままやってもいいんですが、罠があるので一応僕がやったことをメモっておきます。bashで作業してますが多分ほかのシェルでも大体同じです。

1. npmをインストールする

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であることに注意してください。

2. java7-jdk (またはjava7-sdk) をインストールする

ここここを見てJava 7を入れます。 Ubuntuは公式にはJava 7のサポートを終えているので、ppaを追加してからapt update && apt installする必要があります。 この際、Java 8 や 9 が既にインストールされているとjavaコマンドがどれになるかで困ることがあるかもしれません。 困った人はupdate-alternativesなどで解決できます。

Unity公式サイトを見る限りAndroidかTizen向けにビルドするとき以外は必要ないっぽいんですが、まあ一応です。

3. unity-editorをインストールする

プリントにはシェルスクリプトからインストールするように書いてありますがこれは罠で、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-editordpkg -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があるので仕様違反してませんか)

4. Unityのアカウント設定をし、使えるようにする

unity-editorの起動に成功すると、ログインしろと言われます。アカウントを持ってない人は "create one" のリンクから作ります。

何やらいろいろ聞かれますが、特に詰まるところは無さそうです。

成功したらとりあえずUnityは閉じておきます。続いてLIS側の準備をします。

5. Python 2.7 と pip をインストールする

Python3使おうよ、と思いますが、LISが必要としているのでしょうがなくインストールします。既に入っている人は次の手順へ。

python3がインストールされている人は、pythonコマンドがconflictしないように気をつけてください。

Pythonを上手くバージョン管理しながらインストールする方法はいくつか存在します。pyenvを使ったり、anacondaのenvironmentを使う方法もあります。一応aptでも入れられます。正直ここにそれらの方法を書いてると長くなるので「ubuntu python install」とかでググってください。

6. LISのインストール

ようやくLISのセットアップです。まずはLISのリポジトリgit cloneします。

そうしたら後はREADME.mdに従うだけです。ここまでの手順が終わっていれば

pip install -r python-agent/requirements.txt

だけのはず。anaconda使ってる人はpipする時点でpython2.7になってないといけないはずなので注意。

7. LISを走らせる

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を参考にしてコンフィグしたり遊んだりできます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment