第13回 開発環境をつくる

まだまだセットアップっぽいことは続きます。今回は開発に必要なソフトをインストールして、エディタの環境も作ります。

今回の説明

この入門シリーズではプログラムはPHPで作成します。Raspberry Piの推奨言語はPythonみたいなんですが、自分、Pythonでプログラム書いたことないんですよね。でも余力があればPythonでも書いてみようと思います。

Raspbian Jessieは、Pythonは最初から入っているんですが、PHPは入っていません。ということで、PHPは自分でインストールする必要があります。

またプログラムを書くためのエディタですが、前回は設定ファイルを編集するのにnanoエディタを使用しました。ただ、あのエディタでプログラムを書くのはちょっと辛そうですよね。マウスとか使えないし、コピペとかも簡単にはできなさそうですし。ということでエディタについても自分の好みのエディタを使用できるようにしておきます。

今回の説明は以下の内容です。

  • PHPをインストールする
  • Pythonを確認する
  • 開発用のディレクトリを作成する
  • Raspbianデスクトップのエディタを準備する
  • Macのエディタを準備する
  • Windowsのエディタを準備する

 

PHPをインストールする

MacやWindowsで何かアプリをインストールするとき、最近ではMacの場合はMac App Store、Windowsの場合は、Windows Storeからソフトをインストールすることが多いですよね。Storeからインストールする場合は、ソフトを探して、インストールボタン(あるいは購入ボタン)をクリックすればインストールが完了します。またアップデートがあると通知がきて、アップデート処理も簡単になっています。

Linuxにも似たようなシステムがあります。Linuxの場合、ソフトウエアは「パッケージ」という単位で扱っています。パッケージには必要なソフトウエアと、そのソフトウエアに必要な外部モジュールなどの情報が記載されています。

Linuxでは、このパッケージをインストールしたりアップデートするための「パッケージ管理システム」と呼ばれているものがあり、簡単なコマンドでソフトのインストールやアップデートができます。Linuxのディストリビューションによってそのコマンドや仕様が違いますが、Debian系のRaspbianでは apt-get というコマンドでソフトのインストールやアップデートを行います。apt-getコマンドって、Raspberry Piをセットアップするときに何度も出てきましたよね。今回はこのapt-getについて詳しく説明します。

以下の図はapt-getでパッケージを管理する方法を説明したものです。

Apt get

まず、上の図で左下の緑の部分から説明します。Raspbianはパッケージのリストを持っています。これは、ソフトウエアのカタログのようなもので、ソフトウエア(=パッケージ)の実体までは持っていません。単にどのようなパッケージがあるのか、ということがリストされているだけです。

Raspbianを含め、Linuxでは数万という非常に多くのパッケージが無償リリースされています。また、このパッケージのリストは日々変わります。新しく追加されるパッケージもあれば、削除されるパッケージもあります。このパッケージリストは結構頻繁に変わるので、たまに更新する必要があります。このパッケージリストを更新するためのコマンドが、

# apt-get update

になります(#ですのでスーパーユーザ権限が必要ということを示しています)。

次にパッケージの実体(上の図の右下オレンジの部分)についてです。パッケージ管理システムを使ってインストールしたパッケージの実体はRaspbianのディレクトリ構成のどこかに実際にインストールされています。また、必要があればアップデートを行います。このインストールやアップデートですが、パッケージのインストールは

# apt-get install インストールするパッケージ名

というコマンドで行います。パッケージのアップデートは

# apt-get upgrade

というコマンドで行います。apt-get upgradeは、インストール済みのパッケージのうちアップデートが必要なものを全てアップデートします。

ではapt-getで取得する最新のパッケージリストやパッケージの実体はどこにあるのでしょうか。これらは、世界のどこかにあるサーバに置いてあります。そのサーバはパッケージ管理サーバ、リポジトリと呼ばれています。このサーバのURLは/etc/apt/sources.listというファイルに書かれています。apt-getコマンドが実行されると、Raspbianはこのファイルを頼りにパッケージリストやパッケージ本体を探しに行きます。

このリポジトリですが、図ではひとつしか書いていませんが、実は何ヶ所かあります。今後何かソフトをインストールするとき、あるはずなのに、apt-get installでインストールしようとしても見つからない場合があるかもしれません。その場合は、そのパッケージがあるリポジトリを/etc/apt/sources.listに追記してあげる必要があります。

それではapt-getを使用してPHPをインストールします。PHPはVersoin5を使用しますので、パッケージ名は「php5」になります。それではRaspberry Piのターミナルで操作しましょう。

pi@raspberrypi ~ $ sudo apt-get install php5

このように入力すると、いろいろ文字が表示され、途中でこの内容でインストールしてもよいか確認があります。

pi@raspberrypi ~ $ sudo apt-get install php5
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap liblua5.1-0 libonig2 libperl4-corelibs-perl libqdbm14 lsof php5-cli php5-common php5-json
  php5-readline ssl-cert
提案パッケージ:
  apache2-doc apache2-suexec-pristine apache2-suexec-custom php-pear php5-user-cache openssl-blacklist
以下のパッケージが新たにインストールされます:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap liblua5.1-0 libonig2 libperl4-corelibs-perl libqdbm14 lsof php5 php5-cli php5-common php5-json
  php5-readline ssl-cert
アップグレード: 0 個、新規インストール: 20 個、削除: 0 個、保留: 1 個。
6,771 kB のアーカイブを取得する必要があります。
この操作後に追加で 23.8 MB のディスク容量が消費されます。
続行しますか? [Y/n] 

Yがデフォルトですので、そのまま何も入力せずにリターンキーを押して先に進めます。なんだかよくわかりませんが、いろんなものをインストールしてますよね。PHPを動作させるために、他のたくさんのパッケージも必要になりますので、必要なものでRaspbianにまだインストールされていないものは、それらも一緒にインストールします。あるパッケージをインストールするために他のパッケージも必要になりますが、この関係を「依存関係」と呼んでいます。「なんかインストールしたパッケージがうまく動かないけど、依存関係も調べてみたほうがいいよね」とか言ったりします。

これでPHPのインストールが完了しました。PHPが動作するかバージョンを表示させて確認してみましょう。PHPのバージョンは「php –version」(ハイフン2個)というコマンドで確認できます。

pi@raspberrypi ~ $ php --version
PHP 5.6.14-0+deb8u1 (cli) (built: Oct 28 2015 00:02:05) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

こんな感じの表示になればOKです。

 

Pythonを確認する

PHPはインストール作業をしましたが、Pythonはすでにインストールされています。Pythonも動作するか念のため確認しましょう。

PHPと同様にバージョンを確認してみます。

pi@raspberrypi ~ $ python --version
Python 2.7.9

なんか表示が少なくてちょっと寂しいですが、こんな感じで表示されればOKです。

 

開発用のディレクトリを作成する

これからプログラムを作成していきますが、ホームディレクトリを見ると、

pi@raspberrypi ~ $ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Scratch  Templates  Videos  python_games

って感じで、MacやWindowsのホームディレクトリと似ている感じで、目的別のディレクトリが並んでいますよね。ここにプログラムのファイルを作るのはちょっと雑然としてきますので、開発用のディレクトリを作成しておきます。

開発用のディレクトリ名は自分の好きな文字列で構いません。ここでは「dev」として作成することにします。

ディレクトリを新規に作成するときは、「mkdir」コマンド(make directory)を使用します。

$ mkdir ディレクトリ名

で作成しますので、

pi@raspberrypi ~ $ mkdir dev

となります。ディレクトリが作成できたかlsコマンドで確認しておきます。

pi@raspberrypi ~ $ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Scratch  Templates  Videos  dev python_games

なお、名前を間違って作成してしまった場合、ディレクトリ名を変更するコマンドは前回説明しましたmvコマンドを使用します。

$ mv 変更前ディレクトリ名 変更後ディレクトリ名

必要ないディレクトリを削除する場合は、「rmdir」コマンド(remove directory)を使用します。

$ rmdir 削除するディレクトリ名

ただ、このコマンドで削除するディレクトリは中身が空の場合に限ります。中身がある場合は、以下のようにrmコマンドに-rオプションをつけます。rmdirではない点に注意してください。

$ rm -r 削除するディレクトリ名

 

Raspbianデスクトップのエディタを準備する

それではこれから各接続形態でのエディタの準備をします。最初はローカル環境でRaspbianのデスクトップ環境です。

Raspbianのデスクトップ環境では、すでにエディタがインストールされています。メニューでは「Text Editor」というものです。「Text Editor」というとかなり一般的な名前ですが、実際のコマンドは「leafpad」です。ターミナルから立ち上げる場合は、$ leafpadと入力して立ち上げることができます。

Raspi leafpad

ただ、このエディタは機能が少ないので、もうちょっとプログラミング向けのエディタの「gedit」というエディタをインストールして使用することにします。インストールは以下のコマンドです。

pi@raspberrypi ~ $ sudo apt-get install gedit

インストールが終わると、メニューに登録されます。

Raspi gedit menu

エディタを立ち上げたら、一番下に設定メニューがありますので、インデント表示とプログラミング言語を指定します。

インデント表示は、タブ幅を4、自動インデントをONにすると使いやすいと思います。

Raspi gedit tab

また、プログラミング言語を指定しておくと、そのプログラムの文法に沿った色付けをしてくれます。PHPを使用する場合は、PHPを選択します。

Raspi gedit lang

この状態でPHPで書いてみると、、、

Raspi gedit php

こんな感じで色分けされて読みやすくなります。好みもありますが、、、

なお、プログラムを作成していくとファイル操作をする必要がありますが、ターミナルでcpとかmvとかで操作する以外に、ファイルマネージャーがありますので、これもうまく使ってみてください。

Raspi file manager

Windowsのエクスプローラみたいな感じで使えます。

 

Macのエディタを準備する

Macではいろいろと高機能なエディタがありますので、それらを使ってプログラムを書けるようにしたいと思います。

自分の場合は、Raspberry Piでプログラムを作成するときには、Macのターミナル上でviエディタを使用していますが、viは入門としてはちょっと使いづらいところがありますので、MacのGUIエディタを使う方法を2通り検討してみました。

なお、Raspberry Piをファイルサーバにしてアクセスする方法もありますが、こちらは設定がややこしいので次回の補足記事で説明します。

まず最初の方法です。この方法は、普段自分が使っているエディタを使いたいケースです。やり方は、FTPクライアントソフトを使用してRaspbianのファイルシステムにアクセス、そのファイルを普段使いのエディタで直接開く方法です。

FTPクライアントソフトは「Cyberduck」を使います。まず、Cyberduckのサイトからアプリをダウンロードします。なお、Mac App StoreにもCyberduckはありますが、有料です。サイトではドネーションウエアとして頒布されています。以下のサイトにアクセスすると、Mac版がありますので、

Cyberduck

Mac版をダウンロードします。

Cyberduck site mac

ダウンロードしたzipファイルを解凍すると、アプリケーションになりますので(イスントーラではない)、Cyberduckアプリをアプリケーションフォルダに入れておきます。

Cyberduckを立ち上げたら、最初にエディタの設定をします。まず、Cyberduckの環境設定メニューを開きます。

Cd mac preferences

環境設定ダイアログで「外部エディタ」アイコンをクリックします。

Cd mac editor setting

ここでファイル編集に使用するエディタを選択します。エディタの設定が終わったらメインウインドウの「新規接続」ボタンをクリックします。

Cd mac new connection

新規接続先を指定するダイアログが表示されますので、一番上のポップアップメニューで「SFTP」を選択、サーバに「raspberrypi.local」、ユーザ名に「pi」、パスワードに設定したパスワードを入力します。

Cd mac raspi connection

入力が終わったら「接続」ボタンをクリックします。接続できると、ホームディレクトリが表示されます。

Cd mac file list

ファイルを編集する場合は、ファイルを選択して「編集」ボタンをクリックすると、Raspberry Piのファイルが直接編集できます。保存する場合は、普段のエディタの操作と同様に保存を行えばOKです。

Cd mac file selection

なお、再度接続する場合は、Bookmarkか履歴に接続履歴が残っていますので、ダブルクリックすればすぐに接続できます。

Cd mac bookmark

次の方法はエディタから直接Raspbianのファイルを編集する方法です。エディタはTextWranglerというアプリを使用します。これはMac App Storeで無償リリースされていますので、Mac App Storeからダウンロードします。無償ですが、かなり高機能ですので、もし使ったことがないようでしたらこの機会に試してみてはいかかでしょうか。

TextWranglerを立ち上げたら、Fileメニューから「Open from FTP/SFTP Server…」を選択します。

Mac tw open

接続設定ダイアログが表示されますので、Serverに「raspberrypi.local」を入力、SFTPのチェックボックスをチェック、Userに「pi」を入力、Passwordにpiユーザのパスワードを入力します。

Mac tw connect

入力したらConnectボタンをクリックすると、Raspberry Piに接続できます。接続に成功すると、Raspbianのpiユーザホームフォルダが表示されます。

Mac tw select

あとは編集するファイルを選択してOpenボタンをクリックすればファイルを直接編集できます。なお、新規にファイルを作成する場合はNew…ボタンをクリックして作成します。保存する場合は、FileメニューからSaveを選択すればOKです。

 

Windowsのエディタを準備する

Windowsではいろいろなエディタがリリースされていますが、OS標準の「メモ帳」や「ワードパッド」は使用しないようにします。文字コードが選択できなかったり、余計なコードが付加されてしまうためです。

Windowsでメジャーな無償エディタはTearPadサクラエディタあたりでしょうか。ご自分でよく使っているエディタがあればそれを利用するのが良いと思います。

この方法は、FTPクライアントソフトを使用してRaspbianのファイルシステムにアクセス、そのファイルを普段使っているエディタで直接開く方法です。

なお、Raspberry Piをファイルサーバにしてアクセスする方法もありますが、こちらは設定がややこしいので次回の補足記事で説明します。

FTPクライアントソフトは「Cyberduck」を使います。まず、Cyberduckのサイトからアプリをダウンロードします。以下のサイトにアクセスすると、Win版がありますので、

Cyberduck

Windows版をダウンロードします。

Cd win download

インストーラがダウンロードされますので、インストーラを立ち上げてインストールします。ここで知ったのですが、Cyberduckをインストールする際、Bonjourのインストールオプションがありました。同時にインストールすると、Raspberry Piに接続するとき、「raspberrypi.local」で名前指定できるようになります。

インストールが完了したらCyberduckを立ち上げます。立ち上げたら、編集メニューから「環境設定…」を選択します。

Cd win preferences

環境設定ダイアログで、エディタアイコンをクリック、使用するエディタを選択します。

Cd win editor setting

選択したらこのダイアログを閉じます。次に「新規接続」ボタンをクリックします。

Cd win connection

接続情報を入力するダイアログが表示されますので、以下のように入力します。

Cd win connection setting

なお、IPアドレスで接続する場合は、サーバ欄にIPアドレスを入力します。ただ、Cyberduckインストール時にBonjorをインスートルした場合は、「raspberrypi.local」で接続できるようになります。

入力したら接続ボタンをクリックして接続します。接続に成功するとpiユーザのホームディレクトリが表示されます。このダイアログで、ファイルを選択して、「編集」アイコンをクリックすると、Raspberry Piのファイルが直接編集できます。

Cd win file edit

保存する場合は、普段のエディタの操作と同様に保存を行えばOKです。

これで開発できる環境までできました!

次回はもうちょっとLinuxの理解を深めるためにRaspbianの補足説明をします。

« »