第13回 開発環境をつくる

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

今回の説明

この入門シリーズでは、Raspberry Pi推奨のPythonでプログラムを作成します。なお、参考としてPHPでもプログラムを作成してみます。

Raspbian Stretchは、デフォルトでPythonはインストールされていますが、PHPはインストールされていません。ということで、PHPは自分でインストールする必要があります。PHPのインストールを通して、Linuxのソフトウエアのインストール方法を確認します。

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

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

  • 準備
  • Pythonの確認
  • PHPのインストール(オプション)
  • 開発用ディレクトリの作成
  • デスクトップタイプ機器構成のエディタの準備
  • リモート接続タイプ機器構成のエディタの準備

 

準備

これからターミナルで作業を行いますので、ターミナルアプリを立ち上げます。

デスクトップタイプ機器構成の場合は、デスクトップ左上にある以下のアイコンをクリックします。

Raspberry Piデスクトップターミナルアプリ

リモート接続タイプ機器構成の場合は、ターミナルアプリ(macOS)、TeraTerm(Windows)からRaspberry Piに接続します(Raspberry Piへの接続はもう慣れましたか?)。

 

Pythonの確認

PythonはRaspberry Piの推奨プログラミング言語になっていますので、デフォルトでインストールされています。Pythonが動作するか念のため確認しましょう。

動作確認用のプログラムを作成するのも大変ですので、バージョンを確認してみます。以下のように入力するとインストールされているPythonのバージョンを確認することができます。なお「python」の後は「-」(ハイフン)が2個連続していますので注意してください。

pi@raspberrypi ~ $ python --version
Python 2.7.13

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

 

PHPのインストール(オプション)

Raspberry PiはPython以外のプログラミング言語でもGPIOを制御することができます。PHPのインストールは必須ではありませんが、PHPのインストールを通して、Raspbian(LinuxOS)のアプリインストール方法を確認しておきます。

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

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

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

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

Apt get

パッケージ管理システムでは、世界のどこかにあるサーバにアプリが保存されています。このパッケージ管理サーバを「リポジトリ」と呼んでいます。Raspbianでは「apt-get」というコマンドを使用して、このリポジトリからアプリを取得してインストールするわけです。それでは、このパッケージ管理システム全体がどうなっているか、一つ一つ紐解いていきましょう。

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

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

# apt-get update

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

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

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

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

# apt-get upgrade

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

ところで、先ほどパッケージの実体は世界のどこかにあるサーバ(リポジトリ)に置かれている、と説明しました。このサーバですが、一つではなく複数あるんです。また、サーバによっては管理しているパッケージが異なっています。また、リポジトリはもしかしたら新しく設置されるかもしれません。と言うことは、Raspbianは、このサーバがどこにあるかどのように知るのでしょうか。

このサーバのURLは/etc/apt/sources.listというファイルに書かれています。apt-getコマンドが実行されると、Raspbianはこのファイルを頼りにリポジトリのURLを見つけて、そのURLにアクセスしてパッケージリストやパッケージ本体を探しに行きます。

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

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

pi@raspberrypi ~ $ sudo apt-get install php

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

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

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

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

pi@raspberrypi ~ $ php --version
PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies

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

 

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

これからプログラムを作成していきますが、プログラムは開発用のディレクトリを作成し、そこに保存することにします。開発用のディレクトリ名は自分の好きな文字列で構いません。ここでは「dev」として作成することにします。

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

$ mkdir ディレクトリ名

で作成しますので、

pi@raspberrypi ~ $ mkdir dev

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

pi@raspberrypi ~ $ ls
dev MagPi ダウンロード テンプレート デスクトップ ドキュメント ビデオ 音楽 画像 公開

注: リモート接続タイプの場合は、「dev」ディレクトリのみ表示されるかもしれません。リモート接続タイプではRaspbian Stretch Lite使用しましたが、このOSの仕様です。

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

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

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

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

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

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

ところで、デスクトップタイプの場合は、macOSのFinderやWindowsのエクスプローラと同様にファイル操作ができます。画面左上にファイルブラウザがあります。

Raspbianファイルブラウザ

ファイルブラウザをクリックすると以下のようなウインドウが表示されます。

Raspbianファイルブラウザウインドウ

この表示ですとちょっとアイコンが大きいので、見づらい場合は上の図でアイコン表示方法を小アイコン表示などに変更してみてください。

また、ファイルブラウザで新規ディレクトリを作成する場合は、このウインドウ内で右クリックをするとメニューが表示されますので、「新規作成」→「フォルダ」を選択します。

新規フォルダ作成メニュー

選択すると作成するフォルダ名を聞かれますので、フォルダ名を入力してクリックすると新規フォルダが作成されます。

Raspbian新規フォルダ作成ダイアログ

 

デスクトップタイプ機器構成のエディタの準備

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

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

pi@raspberrypi ~ $ sudo apt-get install gedit

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

geditメニュー

それでは、geditを起動して最初の設定をしておきましょう。デフォルトではタブのスペースが8個の設定になっています。この設定ですとプログラムがちょっとみづらくなりますので、タブスペースを変更しておきます。

ウインドウ右上の方にある設定アイコン(ハンバーガーアイコン)をクリックするとアプリメニューが表示されますので「設定」を選択します。

gedit設定メニュー

設定ダイアログの「エディター」タブをクリックするとタブスペースが設定できますので、ここで2〜4ぐらいの値に設定しておきます。

geditタブ設定

設定ダイアログを開いたついでに、他の設定も確認しておきましょう。「フォントと色」タブを選択すると、表示フォントと見た目の色を選択できます。もしご自分の好みがあればここで変更しておきます。

geditカラースキーム設定

最後に、プログラム言語を指定しておくと、そのプログラムの文法に沿った色付けをしてくれます。画面下の方にプログラム言語を選択するメニューがありますので、クリックして使用する言語(PythonかPHP)を選択しておきます。

geditプログラム言語選択

プログラム言語を指定しておくと、以下のように文字を色分けしてくれます。

Raspi gedit php

以上でデスクトップタイプ機器構成の開発環境の準備は終わりです。

 

リモート接続タイプ機器構成のエディタの準備

リモート接続タイプの機器構成では、基本的には全てターミナルアプリで作業しますが、ターミナルアプリ内でプログラム作成をするのはちょっと面倒です。ターミナルアプリで使用できるエディタは何種類かありますが、カーソルの移動やコピペなどはキーボードで操作することになります。

そこで、リモート接続タイプでは、MacやWindowsのエディタを使用してRaspberry Piのプログラムファイルを編集できるようにしておきたいと思います。以下のように、macOSやWindows上で動作するテキストエディタから直接Raspberry Piにあるファイルを開いて編集します。

リモート接続タイプのエディタ

使用するエディタですが、オープンソースで開発されていて、WindowsやmacOSで動作する「Atom」というエディタを使用します。このエディタから直接Raspberry Piの中にあるファイルを編集するには、いろいろと設定が必要ですので、その手順を説明します。

最初に以下のページからAtomエディタのインストーラをダウンロードします。

https://atom.io

ダウンロード後、インストーラを立ち上げてインストールします。標準のインストール手順で大丈夫です。インストールできたらAtomエディタを立ち上げます。

これから、AtomエディタからRaspberry Piのファイルを直接編集できるように設定していきます。ただ、デフォルトではRaspberry Piに接続できる機能がありませんので、機能パッケージをインストールして設定を行います。

最初に、macOSの場合はアプリケーションメニューから「Preferences…」を選択、Windowsの場合はFileメニューから「Settings」メニューを選択します。

Atomエディタ設定メニュー

以下のような画面になりますので、左側にリストされているメニューから「+ Install」をクリックします。

Atom FTP設定1

機能パッケージをインストールする画面が表示されますので、以下のように(1)検索ボックスに「ftp-remote」と入力して、(2)「ftp-remote-edit」という名称の機能パッケージを探して、(3)「Install」ボタンをクリックします。インストールが完了するまで1〜2分かかります。

Atom FTP設定2

インストールできたら、アプリメニューの「Package」から「Ftp-Remote」を探して「Toggle」を選択します。このメニューは、外部に接続する画面の表示/非表示を切り替えるメニューです。

なお、インストール直後はメニューの一番最後にリストされていると思いますが、この「Package」メニューはアルファベット順に表示されますので、次回Atom立ち上げ時は上の方に表示されます。

Atom FTP設定3

次に、この外部接続機能の初回利用時に、パスワードを設定する画面が表示されます。このパスワードは、この機能を使用するためのパスワードで、Raspberry Piや利用しているPCのパスワードとは関係ありません。あくまでもこの外部接続機能を使用するためのパスワードです。同じパスワードを2ヶ所入力したら「Apply」ボタンをクリックします。

Atom FTP設定4

パスワードを設定すると、ウインドウ右側の領域に外部接続機能の画面が表示されます。これからRaspberry Piの接続設定をします。右側領域に表示されている「Edit Server」をクリックします。

Atom FTP設定5

クリックすると、接続先の情報を設定する画面になりますので、以下のように設定を行います。なお、一番上の「リストに表示する名称」は自分がわかる名称であれば構いません。あとで接続先リストに表示される名称になります。

Atom FTP設定6

設定できたら、右下の「Save」ボタンをクリックします。クリックすると、以下のように設定した名称が表示されます。

Atom FTP設定7

これで接続する準備ができました。Raspberry Piに接続するには、上の画面の名称部分をクリックします。接続できると以下のようにRapsberry Piの中のフォルダ構成が表示されます。

Atom FTP設定8

なお、これはRaspberry Piのフォルダ全体の構成が表示されています。開発作業はpiユーザのフォルダで行います。フォルダの位置は「/home/pi」になります。

Atom FTP設定9

ファイルを編集する場合は、このリストからファイルをダブルクリックするとこのAtomエディタで編集できます。また新規にフォルダやファイルを作成する場合は、作成したいフォルダを右クリックするとメニューが表示されますので「New Folder」「New File」を選択すると新規にフォルダやファイルを作成することができます。

なお、接続に失敗した場合は接続設定が間違っている可能性があります。その場合は、Raspberry Piの名称を右クリックして「Edit Server」を選択すると、先ほどの設定画面が表示されますので、もう一度設定を確認してください。

Atom FTP設定10

次回Atomを立ち上げた場合、Raspberry Piに接続するには、「Package」メニューから「Ftp-Remote」→「Toggle」を選択すると、今回使用した接続先リストの画面が表示されますので、Raspberry Piの名前をクリックすると接続できます。

これでエディタの設定が終わりました。

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

 

更新履歴

日付 内容
2015.11.1 新規投稿
2019.4.7 Raspbian Stretchの内容に変更
リモート接続タイプで使用するエディタをAtomに変更