「イマサラ」だからこそ始めるTwitter Bot作成 ~ 開発環境を作ろう(前編) ~
【Intro】
前回はアカウントを作成しました。この連載は「Botを作る」というテーマなので、当然開発が伴うわけです。ということは、当然ながら開発環境が必要となるわけですが……みなさま開発環境はお持ちですか? お持ちではないですよね? ないに違いありません。そうです、そうに決まってます。
というわけで、肝心の開発に入る前に開発環境の構築を行いましょう。
【注意】
これから開発環境の構築についてご説明するわけですが、数点ご注意いただきたいことがあります。下記に列挙いたしますので、ご一読ください。
- これからご紹介する内容は、Twitter Botを開発するために最低限必要な環境です。セキュリティ面など、意図的に簡略化あるいは省略している部分があります。
- 連載で紹介した方法で構築したサーバは、あなたがやろうとしていることができない場合もあります。例えば、画像処理やデータベースなどを使うことは前提としていません。
- 連載で構築したサーバは、安全なネットワーク内であなただけが使用することを前提にしています。この構成でインターネット上に公開しないでください。
- あなたの環境によっては、連載で紹介した方法がうまくいかなかったり、何らかの不具合を生じさせる恐れがあります。あなたのほかにネットワーク管理者やサーバ管理者などがいる場合、事前に相談されることを強くおすすめいたします。
- 連載中でご紹介した内容をあなたが実践したことにより、なんらかの不利益を被ったとしても、誰も責任をとれません。連載内容の実践は、自己責任で行ってください。
【用意するものあれこれ】
言い訳が終わったところで、環境構築に必要なものをご紹介しましょう。
- 適当なコンピュータ(あるいはVMwareなどの仮想化ソフトウェア)
- CentOSのインストールディスク
- やる気
わたしの場合、このためだけに物理サーバを用意できなかったのと、普段使っているマシンが12Gほどメモリを積んでいて余裕があるということもあり、VMware Serverを使用しました。CentOSは5.4の64bit版(DVD)を使用しました。
わざわざいうまでもないかもしれませんが、CDドライブ(DVDやBlu-rayドライブでもいいんですが)からブートできるようにブート順を設定しておいてくださいね。
【インストールを始めよう!】
もろもろの用意ができたら、インストールディスクをセットしてマシンを起動しましょう。うまいこと起動できれば、下記の画面が表示されると思います。エンターキーをタイプしましょう。

メディアのチェックを行うかどうか聞かれるので、「Skip」を選択します。画面上に英語で書いてありますが、キーボードのTabキーで移動してスペースキーで選択できます。

しばらく待つとグラフィカルな画面になります(マシンのメモリが少ないなど、構築しようとしている環境によってはテキストベースな画面になります)。「Next」ボタンをクリックしてください。

インストール中に使用する言語の設定画面が表示されるので、リストの中からお好きな言語を選択し「Next」をクリックします。わたしは「Japanese(日本語)」を選択しました。

続いてキーボードの設定画面になります。インストールしようとしているコンピュータのキーボードに応じて指定します。通常は日本語キーボードをつないでいるかと思いますので、リストの中から「日本語」を選択し、「次(N)」ボタンをクリックします。

インストール対象のマシンに接続されたハードディスクが未フォーマットなど、パーティションテーブルがない場合は、下記のようなメッセージが表示されます。全部消え去っても問題がない場合は、「はい(Y)」をクリックします。

続いて、パーティションの設定画面になります。開発環境ということもありますので、今回はインストーラにお任せします。何も変更せず、「次(N)」ボタンをクリックします。

続いて、ネットワークの設定に移ります。本来ならば、固定プライベートアドレスをあてたいところです。しかし、LAN内にサーバを設置しているなどでなければ、アドレス帯を確保しているケースは少ないでしょう。そこで、今回はイレギュラーではありますが、DHCP(=動的プライベートアドレス)のままでいきたいと思います。そのまま「次(N)」ボタンをクリックします。
余談ですが、固定でIPアドレスをアサインできる環境の方は、この画面で設定します。……が、そんな環境をお持ちの方はいちいち説明しなくても設定できるか、他に詳しい方がいる場合がほとんどでしょう。ここでの説明は割愛させていただきます(いや……まぁ……それをいったら、この記事を読んでる方にとってOSインストールの説明自体、釈迦に説法な気もするのですが……)。

続いてタイムゾーンの設定になります。デフォルトで「アジア/東京」が設定されているかと思いますので、そのまま「次(N)」ボタンをクリックします。もし異なる場合は、リストから「アジア/東京」を選択してからクリックしてください。

続いてRootパスワードの設定画面になります。適当なものを設定し、「次(N)」ボタンをクリックします。

続いて、インストールするパッケージの選択画面になります。デフォルトでは「Desktop - Gnome」にチェックが入っているかと思います。が、不要なのでチェックを外します。開発ツールをインストールしたいので、「今すぐカスタマイズする(C)」を選択し、「次(N)」ボタンをクリックします。

詳細なパッケージ選択の画面となるので、左側のエリアで「開発」を選択します。その後、右側のエリアより「開発ツール」と「開発ライブラリ」にチェックをつけ、「次(N)」ボタンをクリックします。

インストール前の設定がすべて終わったので、「次(N)」ボタンをクリックします。

インストールが終わるまでしばし待ちます。

インストールが無事終わるとこのような画面になるので、「再起動(T)」ボタンをクリックします。

再起動が終わるまで、ディスプレイをぼーっと眺めて待ちます。

再起動が終わるとセットアップツールが起動します。矢印キーで「Firewall configuration」を選択し、Tabキーで「Run Tool」に移動、スペースキーを押下してツールを起動します。

ツールが起動したら、「Security Level」を「Disabled」に、「SELinux」を「Disabled」に設定して、「OK」をポチッとします。

元の画面に戻るので、「Exit」をポチッとしてツールを終了します。

ログイン画面になるので、rootでログインします。……いうまでもないかもしれませんが、「localhost login」のところが「root」、「Password」のところはインストーラで指定したパスワードを入力します。

無事ログインできたら、不要なデーモンをやめましょう。とりあえず、「chkconfig --list|grep "3:on"」とタイプして、現在のランレベルで起動するデーモンの一覧を表示してみます。

ずらっと出てきました。……読みきれないので、「chkconfig --list|grep "3:on"|less」とでもタイプしてゆっくり見ましょう。いらないデーモンを片っ端から「chkconfig {サービス名} off」とタイプし、止めていきます。

ちなみにわたしは、こんな感じでやりました。
- chkconfig acpid off
- chkconfig anacron off
- chkconfig atd off
- chkconfig auditd off
- chkconfig autofs off
- chkconfig avahi-daemon off
- chkconfig bluetooth off
- chkconfig cpuspeed off
- chkconfig cups off
- chkconfig firstboot off
- chkconfig gpm off
- chkconfig haldaemon off
- chkconfig hidd off
- chkconfig ip6tables off
- chkconfig iptables off
- chkconfig irqbalance off
- chkconfig isdn off
- chkconfig kudzu off
- chkconfig lvm2-monitor off
- chkconfig mcstrans off
- chkconfig mdmonitor off
- chkconfig messagebus off
- chkconfig microcode_ctl off
- chkconfig netfs off
- chkconfig nfslock off
- chkconfig pcscd off
- chkconfig portmap off
- chkconfig rawdevices off
- chkconfig readahead_early off
- chkconfig restorecond off
- chkconfig rpcgssd off
- chkconfig rpcidmapd off
- chkconfig sendmail off
- chkconfig smartd off
- chkconfig xfs off
- chkconfig yum-updatesd off
最後にもう一度「chkconfig --list|grep "3:on"|less」とタイプすると、必要最小限のデーモンだけが起動する設定になっていることが分かりますね。

さて、この設定を反映させるために再起動しましょう。「shutdown -r now」とタイプします。

再起動が終わったら、再度rootでログインします。ログインしたら、普段使うユーザーを作っておきましょう。「adduser {ユーザー名}」でユーザーを作成したあと、「passwd {ユーザー}」でパスワードを設定します。
作成したユーザーでログインできるか確認するために、一度rootのセッションを終了します。

今作成したユーザーで無事ログインできることを確認しましょう。

さて、ここまでできりのいいところまで終わりましたので、作業を終了しましょう。「su -」でrootユーザーになった後、「shutdown -h now」で終了します。お疲れ様でした!

【Outro】
次回は今回インストールしたCentOSに、ApacheやPHPをインストールしていきましょう。yumコマンドでさくさくインストールしていくのも面白くないので、ソースからインストールしてみようと思います。
当コラム「若人視点」へのご意見・ご感想・ご批判など、歓迎いたします。コメント欄に記入いただくか、el@hyec.orgあてにメールしてください。「@hyec」というアカウントでTwitterもやっていますので、もしよろしければフォローしてください。
いただいたメッセージはすべて拝見させていただきますが、個別にお返事させていただくことが難しいかもしれません。
なお、特に当コラムに対するご質問や誤字・脱字、認識の誤りについてのご指摘をいただいた場合は、個人を特定できないようにしたうえで、当コラム中で使用させていただくことがございます。