こんにちは、Nanayakuです。
今回は、botを作る練習として、ubuntuを使ってTetrisをやるまでに実行したことや失敗を紹介します。
「Webプログラミングが面白いほどわかる本」を参考にしました。
[itemlink post_id="1046"]
目次
出来なかったこと
docker
最初に、dockerのubuntuイメージでtetrisをやろうとしました。
以下のコマンドをそれぞれ試しました。
$ docker run -it ubuntu
$ docker run -it ubuntu:18.04
$ docker run -it ubuntu /bin/bash
コンテナを起動し、以下のコマンドは実行できました。
1つ目はインストールに必要な情報のアップデートで、2つ目はゲーム群をインストールしています。
$ apt-get update
$ apt-get install bsdgames
しかし、テトリスを起動しようとすると下記のエラーが出ました。
root@dd4a58b21e8b:/# tetris-bsd
bash: tetris-bsd: command not found
そこで、下記のDockerfileからコンテナを作成しました。
Dockerfile
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8
しかし、同じエラーが出たため、本と同じようにvagrantで作成することにしました。
vagrant
私の場合は、VirtualBox・Vagrantはインストールしていたので、後はLinuxをインストールするだけでした。
本にそって、ディレクトリを作成し、Linuxをインストールして起動しました。
$ mkdir -p ~/vagrant/ubuntu64_16
$ cd ~/vagrant/ubuntu64_16/
$ vagrant box add ubuntu/xenial64 https://vagrantcloud.com/ubuntu/boxes/xenial64/versions/20170929.0.0/providers/virtualbox.box
$ vagrant init ubuntu/xenial64
$ vagrant up
すると、下記のエラー文が表示されました。
The box 'ubuntu/venial64' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:
The box 'ubuntu/venial64' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:
URL: ["https://vagrantcloud.com/ubuntu/venial64"]
Error: The requested URL returned error: 404 Not Found
これをGoogleで翻訳すると、vagrantcloudに「ubuntu/venial64」のカタログが無いと判明しました。
そこで、vagrantcloudの「ubuntu / trusty64」のVagrantfileに書き換えました。
下記のコマンドでファイルを開き、「config.vm.box = "ubuntu/trusty64"」の部分を書き換え、起動しました。
$ open Vagrantfile
$ vagrant up
その後、「vagrant ssh」を実行したら以下の文が出てきたため、アップデートしました。
Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.13.0-170-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information disabled due to load higher than 1.0
0 updates can be installed immediately.
0 of these updates are security updates.
New release '16.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
do-release-upgrade
$ do-release-upgrade
その後も何度かアップグレードして、再起動すればいい所まで1時間半程かかりました。
再起動が完了し、「vagrant up」で起動しようとしましたが、sshのタイムアウトで結局できませんでした。
成功例
ここからは、実行できたやり方を紹介します。
前提条件として、VirtualBoxをvagrant をインストールしている必要があります。
まず、VirtualBoxを開きます。
ここで新規を選択し、ディレイ名・保存場所・タイプ・バージョンを設定します。
後は、ターミナルで先ほど保存した場所に移動し、以下のコマンドを実行すればTetrisが起動します。
$ vagrant up
$ vagrant ssh
$ apt-get update
$ apt-ge install bsdgames
$ tetris-bsd
まとめ
VirtualBoxを開き、新しく仮想マシンを設定・作成すれば、簡単にできました。
dockerは、まだ研究が必要でした。
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。