Route 36

ギジュツ的な事を書くブログ

Windows 10で最低限の開発環境整えるメモ(主に部活用)

はじめに

Windows 10で最低限の開発環境を整えるメモ。主に、苫小牧高専 情報科学・工学系の学生、またはソフトウェアテクノロジー部の部員向け。

わからない事があったら、Twitter: mktakuyaに聞いてもいいし、専攻科の向平に聞いても良い。(だいたい情報棟2Fの奥の研究室にいる)

また、近くのソフトウェアテクノロジー部の部員に聞くという手もあるだろう。

目標

情報工学科の実習室でやっている、以下のような事を自分のPCで出来るようにする。

  • TeraPadWindows)でコードを書く
  • Tera Termでサーバ(UNIXというかLinux)に接続して、各種コマンドの実行やgccによるコンパイル、プログラムの実行をする。

また、部活でRubyを使っている人たちもいるので、その環境も作ってしまう事にする。関係ない人は読み飛ばしてもらって構わない。

必要なもの

  • 電源
  • 高速で安定したネットワーク
  • PCの管理者権限(ソフトのインストールに親のパスワードがいるとNG)
  • 時間(人によるけど1時間30分程度?)

自宅や、学内のeduroamがつながるところでやるとよいでしょう。テザリングでやるとギガが減るのでお勧めしません。

環境

この記事を書くために用意した環境は、以下の通りです。まぁ、Windows 10ならだいたい同じでしょう。

各種ソフトウェアのインストー

TeraPadのインストー

http://forest.watch.impress.co.jp/library/software/terapad/にアクセスして、「窓の杜からダウンロード」ボタンを押してTeraPadをダウンロードしてください。

ダウンロードしたファイルを実行し、TeraPadのインストールを実行します。

TeraTermのインストー

http://forest.watch.impress.co.jp/library/software/utf8teraterm/にアクセスして、Tera Term(ポータブル版ではないほう)を「窓の杜からダウンロード」ボタンを押してダウンロードしてください。

f:id:mktakuyax:20170716233941j:plain

ダウンロードしたファイルを実行し、Tera Termのインストールを実行します。基本的に、「デバイスに変更を加えることを許可しますか?」という黄色い画面に対しては「はい」を、またインストール中のボタンの選択肢はすべて「次へ」で良いです。

Virtual Boxのインストー

https://www.virtualbox.org/wiki/Downloadsにアクセスして、Windows版のVirtual Boxをダウンロードしてください。下の画像のマウスカーソルがあるところです。

f:id:mktakuyax:20170716234246j:plain

ダウンロードしたファイルを実行します。すべてNext、Yes、Install、Finishでいいです。

Vagrantのインストー

https://www.vagrantup.com/downloads.htmlにアクセスして、Windows版のVagrantをダウンロードしてください。

f:id:mktakuyax:20170716234352j:plain

ダウンロードしたファイルを実行します。すべてNext、Install、Finishでいいです。なお、途中でI accept the terms in the License Agreementというチェックボックスが無いとNextと押せない箇所がありますが、よくある「利用規約に同意しますか?」系のメッセージなのでチェックしてNextを押して下さい。

インストール完了後、Finishボタンを押すと再起動するかどうか聞かれるので、起動中のアプリが無いことを確認してYesボタンを押して再起動してください。

PCの再起動が完了したら、各種ソフトウェアのインストールは完了です。

プログラミング環境の構築

はじめに

情報棟実習室でからアクセスできる実習用サーバ(jocalc1, jocalc2, joserv)では、Red Hat Enterprise Linuxと呼ばれるOSが動いています。これは、基本的には商用ユーザがお金を払って使うものです。

今回は、そのRed Hat Enterprise Linuxのクローンで、無償で利用できるCentOSを使います。とはいえ、基本的には実習用サーバと同じです。

これから、コマンドプロンプトやTera Termにコマンドを打っていきますが、この記事は以下のようなルールで書いてあるので覚えておいて下さい。

  • Windowsで、またはコマンドプロンプトで、と書いてある場合はWindows上で操作すること。
  • CentOSで、サーバ側で、またはTera Termで、と書いてある場合はTera Term上で操作すること。
  • コマンドは基本的にコピペで良い。なお、行頭の$>はプロンプトなので、無視して良い。

CentOS 7.2のインストールと初期化

コマンドプロンプトを開いて、以下のコマンドをコピペしてください。

コマンドプロンプトは、キーボードのWin + Rを押して出てきたウィンドウにcmdと入力しEnterを押すと起動します。(Winキーは、Windowsの旗が描いてあるキーです。キーボードの左下あたりにあるはず。)

また、コマンドプロンプトへのコピペは、何かをコピーした状態でコマンドプロンプト上で右クリックするとできます。このコマンドの実行は結構時間がかかるので気長に待ってください。

> vagrant box add CentOS72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

上記コマンドの実行が確認したら、CentOSの初期化を行います。コマンドプロンプトで、以下のコマンドを実行して下さい。

> cd
> mkdir centos
> cd centos
> vagrant init CentOS72

Vagrantfileの編集

エクスプローラを開いて、centosフォルダにあるVagrantfileTeraPadで開きます。開き方がよくわからない人は以下の動画を見て確認してください。

f:id:mktakuyax:20170717161618g:plain

VagrantfileをTeraPadで開いたら、以下のように編集します。行番号は微妙に前後するかもしれませんので、書いてあるテキストを見て適宜判断して下さい。

35行目のコメントアウト(先頭のシャープ記号)を外す

  config.vm.network "private_network", ip: "192.168.33.10"

メモリ割り当ての設定。52行目と57行目、58行目のコメントアウトを外す。最終的に52行目~58行目あたりが以下のようになっていればOK!

  config.vm.provider "virtualbox" do |vb|
  #   # Display the VirtualBox GUI when booting the machine
  #   vb.gui = true
  #
  #   # Customize the amount of memory on the VM:
    vb.memory = "1024"
  end

また、初期設定のままだとサーバから外部のネットワークへうまく接続することができない(正確に言うと、名前解決ができない)ので、69行目のあとに以下のコードを追記してください。
# SHELLと書いてある行と、endとだけ書いてある行の間です。

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
  end

CentOSの起動と接続

コマンドプロンプトで、以下のコマンドを実行します。(もしコマンドプロンプトを閉じてしまっていた場合は、以下のコマンドを実行する前にcd centosコマンドを実行してcentosフォルダに移動してください)

> vagrant up

人によってはネットワーク関連での警告が出ますが、放っておくとコマンドが終了するはずです。これで、サーバが起動しました。

では、起動したサーバにTera Termから接続しましょう。Tera Termを起動し、以下の通りに設定して下さい。

  • 新しい接続の画面
    • ホスト欄を 192.168.33.10 に変更
    • サービス欄が SSHで、TCPポートが22であることを確認
    • OKボタンを押下する
  • SSH認証の画面
    • ユーザ名に vagrant
    • パスワードに vagrant
    • OKボタンを押下する

無事に接続できたら起動は成功です。まだ設定がありますので、一旦Ctrl + Dキーを押してログアウトしてください。

WindowsCentOS間のファイル共有設定

このままでは、Windows側で作成したファイルをサーバ側から操作(コンパイルなど)することができないので、WindowsCentOS間でのファイル共有の設定をします。

まず、Windowsエクスプローラを開いて、先程作成したcentosフォルダがあるフォルダにdevelopというフォルダを作成してください。

developフォルダを作成したら、先ほど開いたVagrantfileをまたTeraPadで開いて、46行目のコメントアウトを外し、以下のように編集して上書き保存してください。

  config.vm.synced_folder "../develop", "/home/vagrant/develop"

これは、Windowsdevelopフォルダを、サーバ側の/home/vagrant/developディレクトリと同期するという意味の設定です。Vagrantfileを上書き保存したら、コマンドプロンプトを開いて、以下のコマンドを実行してください。

> vagrant reload

そのあと、Tera Termを開いてCentOSに接続しましょう。

試しに、共有ディレクトリにsample.txtというファイルを作ってみましょう。Tera Term側で、以下のコマンドを実行してください。

$ cd develop
$ touch sample.txt

Windowsエクスプローラを開いて、developフォルダを確認し、sample.txtまたはsampleというファイルがあれば、フォルダーの共有設定は成功です。

今後、Windowsのdevelopフォルダにファイルやフォルダを作ると、サーバ側からそれらが見えるようになりました。逆に、サーバ側で作ったファイルも、Windows側から見えています。

C言語開発環境のテスト

サーバにgccは最初から入っているので、C言語開発環境はすでにできています。ちゃんとコンパイル等できるか確認してみましょう。

WindowsTeraPadで、以下のコードを書いてください。ファイル名はなんでもいいですがとりあえずhello.cとしておきましょう。書いたコードは、先ほど作成したdevelopディレクトリ内に保存してください。(めんどくさいのでコピペでOK)

#include <stdio.h>

int main(void)
{
        printf("Hello World¥n");
        return 0;
}

Tera Termでサーバにログインし(すでに開いていればそれを開いて)、以下のコマンドを入力してください。シャープ記号で始まる行は説明のためのコメントなので無視してください。

# 共有ディレクトリに移動
$ cd develop
# lsコマンドで hello.c があることを確認
$ ls
# hello.c のコンパイル
$ gcc -o hello hello.c
# プログラムの実行
$ ./hello

正しくコンパイルと実行ができていれば、これでC言語開発環境のテストは完了です。プログラミングの授業の課題等はこの環境でこなすことができます。

プログラミングの授業の環境を作りたいだけの人は、これで作業完了です。次回以降は、この記事の最下部のまとめを見て、サーバの起動や接続をしてください。

Ruby開発環境の構築

はじめに

Rubyの開発環境の構築に移ります。

CentOSのパッケージ管理システムであるyumでインストールしてもいいですが、それだと古いRubyが入ってしまうので、Rubyの公式Webサイトから最新版のRubyをダウンロードして、それをインストールすることにします。

各種パッケージのインストー

まず、Rubyをインストールするのに必要な各種パッケージをCentOSにインストールします。サーバ側で以下のコマンドを実行してください。

$ sudo yum install gcc zlib-devel openssl-devel readline-devel libffi-devel
# Is this ok [y/d/N]: と聞かれたら y と入力してEnter

Rubyのダウンロードと展開

そして、Rubyをダウンロードします。これらの作業は、ホームディレクトリで行います。CentOS上で以下のコマンドを実行してください。

# ホームディレクトリに移動
$ cd 
# Rubyのダウンロード
$ wget https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz

次に、ダウンロードしたRubyを展開します。

$ tar xvzf ruby-2.4.1.tar.gz

Rubyのインストー

展開したruby-2.4.1ディレクトリに移動し、Rubyのインストールを行います。結構時間がかかります。

$ cd ruby-2.4.1
$ ./configure
$ make
$ sudo make install

Rubyの動作確認

エラー等でなければRubyのインストール成功です。CentOS上で以下のコマンドを実行してRubyが正しくインストールされていることを確認しましょう。  

# ホームディレクトリに戻る
$ cd
# rubyのバージョン確認
$ ruby -v
# irb起動(終了は Ctrl + D)
$ irb

Rubygemsの設定と動作確認

Rubygemsの設定もしてしまいましょう。CentOS上で以下のコマンドを実行してください。

# ユーザ領域にgemをインストールする
$ echo 'gem: --user-install' > .gemrc

# gemコマンドでインストールしたコマンドをshellから見えるようにする
$ echo 'export PATH=$PATH:$HOME/.gem/ruby/2.4.0/bin' >> ~/.bashrc

# シェルの再読み込み
$ exec $SHELL -l

試しに、pryをインストールしてみてみましょう。

$ gem install pry
$ pry

無事にpryが起動すれば成功です。pryは、irbに代わる強力なRubyの対話シェルです。今後、irbの代わりにpryを使うと便利でしょう。

以上で、Rubyの環境構築は完了です。

まとめ

以上で、VirtualboxVagrantを利用したプログラミング環境の構築が終了しました。

今後、PCを再起動等したら、以下の手順でプログラミング環境を立ち上げる事ができます。

  1. コマンドプロンプトを開く
  2. cd centosと入力してEnter
  3. vagrant upと入力してEnter
  4. Tera Termを起動する
  5. ホスト欄が192.168.33.10になっていることを確認しOKボタンを押下
  6. ユーザ名をvagrant、パスワードをvagrantにしてOKボタンを押下
  7. WindowsTeraPadでコードを書いたら、必ずdevelopフォルダ内に保存する。(developフォルダ内に別のフォルダを作るのはOK)
  8. Tera Termでcd developするとTeraPadで書いたコードがあるのでコンパイルなり実行なりできる。