2015年4月18日土曜日

インストールしておくと便利なアプリケーションなど

はじめに

新しいバージョンのRaspberry Pi が発売されるたびに性能が向上し、Raspberry Piを通常のPCの代替とすることも現実的になってきました。そこで、Raspberry Piを通常のPCのように用いる際、インストールしておくと便利なアプリケーションや設定等をいくつか紹介します。全てのRaspberry Piで動作するはずですが、より快適に動作する環境という意味で、Raspberry Pi 2やPi 3を推奨します。

なお、このページのコマンドを実行する前に、必ず下記のコマンドをターミナルソフトウェアLXTerminal上で実行し、インストール可能なパッケージのリストを更新しておいてください。
$ sudo apt-get update

日本語入力

日本語入力のためのアプリケーションは、用いているRaspbianのバージョンによってお勧めが異なります。

まず、NOOBS 1.4.2以降のRaspbian(Jessie)の場合、Googleが開発した日本語入力システムMozcをインストールするのが良いと思います。
$ sudo apt-get install ibus-mozc
インストール後はまずRaspberry Piを再起動します。その後、下図のように「US」と書かれた部分をマウスでクリックし「日本語 - Mozc」を選択してください。あとは「半角/全角」キーで日本語入力のオンオフを切り替えられます。


一方、NOOBS 1.4.1までのRaspbian(Wheezy)の場合、ターミナルソフトウェアLXTerminal上で下記のコマンドを実行すると、uimとuim-anthyと呼ばれるアプリケーションがインストールされ、日本語入力が行えます。ただし、sudoで起動したアプリケーションには日本語入力できませんのでご注意ください。
$ sudo apt-get install uim uim-anthy
インストール後は一度Xを再起動してください。「半角/全角」キーを押すか、「Shift+スペース」により日本語入力モードのオンオフを切り替えできます。

日本語フォント

NOOBS1.4.2~NOOBS 1.9.2のRaspbian(Jessie)には日本語が含まれておらず、日本語表示の設定をすると全て文字化けしてしまいました(NOOBS 1.9.3以降では解決されています)。
また、 NOOBS1.4.1までのRaspbian(Wheezy)ではそのままでも日本語表示できますが、IDLE上で日本語入力するときに文字化けするなどの現象が時々起こります。

以上のような問題を、日本語フォントを追加インストールすることで解決できます。 まず、Jessie系列のRaspbianにおける文字化けを回避する目的でしたら、下記のフォント一つのみのインスト―ルで構いません。
$ sudo apt-get install fonts-vlgothic
それ以外にも、下記のフォントがインストール可能です。
$ sudo apt-get install ttf-kochi-gothic ttf-kochi-mincho fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname 
インストール後はXを再起動すると、メニューなどで用いられるフォントが変わっているはずです。

ブラウザ

RaspbianのデフォルトのブラウザはNOOBS 1.9.2まではepiphanyでしたが、ブックマーク機能がやや貧弱でした。ブックマーク機能の豊富なブラウザを用いるようにすればより便利にブラウジングできるでしょう。ただし、Raspbianのバージョンにより、利用可能なブラウザは異なります。

まず、NOOBS 1.9.3以降のRaspbian(jessie)では、Google ChromeのベースとなったChromiumブラウザがデフォルトブラウザとなっています。最新のNOOBSを利用できる方は、これを用いるのが一番簡単でしょう。GoogleのアカウントでChomiumにログインすると、Google Chromeとブックマークや設定を同期することができます。

ChromiumブラウザがデフォルトではないRaspbian(jessie)でも、Firefoxの長期サポート版であるFirefox ESRが利用できます。ターミナルを起動して下記のコマンドを実行することでインストールできます。
$ sudo apt-get install firefox-esr firefox-esr-l10n-ja
インストール後は、メニューから「インターネット」→「Firefox ESR」で起動できます。


NOOBS 1.4.1以前に含まれるRaspbian(wheezy)ではバージョンの古いChromiumブラウザをインストールできます。 ターミナルを起動して、下記のコマンドを実行してインストールします。
$ sudo apt-get install chromium-browser chromium-l10n
ただし、このChromiumはかなり古いため、Googleアカウントでログインしてブックマークを同期する、というChromiumの大きな特長を利用することができません。ですので、新しいNOOBS (Raspbian)を利用することを検討するのが良いでしょう。

オフィススイートLibreOffice

Microsoft Office互換のオフィススイートとしてOpenOfficeがありますが、そこから派生したのがLibreOfficeです。 LibreOfficeはNOOBS 1.4.2に含まれるRaspbianからはデフォルトでインストールされていますが、それ以前のバージョンのNOOBSでは 下記のコマンドでインストールします。
$ sudo apt-get install libreoffice
インストール後は、メニューから「オフィス」を辿ると各種アプリを起動できます。Base(データベース)、Calc(表計算)、Draw(お絵描き)、Impress(プレゼンテーション)、Writer(ワープロ)があります。Microsoft Officeで作成されたファイルの読み書きもできますが、RaspbianにはWindowsやMac OS Xと同じフォントはインストールされていませんので、互換機能はオマケ程度に考えた方が良いでしょう。

画像編集ソフトgimp

Photoshopのように画像編集を行えるソフトウェアがgimpです。下記のコマンドでインストールします。
$ sudo apt-get install gimp
インストール後は、メニューから「グラフィックス」→「GIMP(GNU Image Manipulation Program)」を選択することで起動できます。

お絵描きソフトinkscape

Illustratorのようにお絵描きを行えるソフトウェアがinkscapeです。下記のコマンドでインストールします。
$ sudo apt-get install inkscape
インストール後は、メニューから「グラフィックス」→「Inkscape」を選択することで起動できます。

テキストエディタgedit

RaspbianにはLeafpadというテキストエディタがデフォルトでインストールされていますが、書籍で触れたようにこれはプログラミングには向きません。プログラムを書くのに適したテキストエディタとしては例えばgeditがあり、下記のコマンドでインストールします。
$ sudo apt-get install gedit
インストール後は、メニューから「アクセサリ」→「gedit」を選択することで起動できます。

ターミナルソフトウェアgnome-terminal

RaspianにはLXTerminalがインストールされており、通常はこれを用います。これでは機能が足りないという場合、gnome-terminalと呼ばれるソフトウェアをインストール用いることができます。私自身は、ターミナルの文字コードをEUC-JPやShift JISに変更したいときにこれを用いています。下記のコマンドでインストールします。
$ sudo apt-get install gnome-terminal
インストール後、メニューには現れませんので、LXTerminalから下記のコマンドで起動します。
$ gnome-terminal
また、本ページの最後で紹介する「アプリケーション・ランチャー」の追加の方法で「アクセサリ」→「端末」を追加すると、アプリケーション・ランチャーからも起動できるようになります。

画像閲覧のデフォルト

ファイルマネージャで画像ファイルをダブルクリックすると、Raspbianのバージョンにより、「NetSurf WebBrowser」か「イメージビューワ」のどちらかで開かれるか、あるいは開くアプリケーションを問われるだろうと思います。イメージビューワが、「起動が高速」、「画面解像度に応じて画像が縮小表示される」という点でおすすめできますので、こちらをデフォルトにすることを推奨します。

方法は、「ファイルマネージャで画像ファイルを右クリック」→「アプリケーションで開く」→「選択したアプリケーションをこのファイルタイプのデフォルトアクションとする、にチェックした上で起動するアプリケーションを選択する」という流れになります。イメージビューワは「アクセサリ」→「イメージビューワ」と辿って選択できます。

画像閲覧以外にもこの方法でデフォルトアプリケーションを選択できますので、覚えておくと良いでしょう。

私の場合、他にはPDF閲覧のデフォルトアプリケーションをgimpからPDF Viewer(xpdf)に変更しました。

アプリケーション・ランチャーやデスクトップへのアイコン追加

最後に、アプリケーション・ランチャーやデスクトップにアプリケーション起動用のアイコンを追加する方法を紹介します。Raspberry Piのデスクトップの画面上部のバーは「パネル」と呼ばれ、デフォルトでは下図のように左から「メニュー」、「アプリケーション・ランチャー」、「タスクバー」などで構成されます。

なお、パネルがどのような要素で構成されているかは、パネル上で右クリックし「パネルのアイテムの追加・削除」を選択すると、下図のような画面が現れますので、そちらで知ることができます。


まずはアプリケーション・ランチャーにアイコンを追加する方法です。

デフォルトでアプリケーション・ランチャーにいくつか存在するアイコンの上で右クリックし、「アプリケーション・ランチャーSettings」を選択します。


すると、下図のようにアプリケーション・ランチャーの設定画面が現れます。

右側にインストールされているアプリケーションの一覧が現れますので、どれか一つを選択肢、「追加」ボタンを押すと左側にコピーされ、アプリケーション・ランチャー上に表示されます。さらに「上へ」ボタンで好みの位置に移動します。

ランチャのアイコンのどれかを削除したい場合もこの設定画面を用います。


実際に、上でインストールしたChromiumブラウザのアイコンを追加した様子が下図です。


次に、デスクトップ上にアイコンを追加する方法です。下図のように、追加したいアプリケーションをメニューからたどります。そして、アプリケーション名の上で右クリックし、「デスクトップに追加」を選択します。



以上で、デスクトップ上にアプリケーション起動用のアイコンが現れます。


2015年4月16日木曜日

ブラウザepiphanyの検索エンジンを変更する

Raspberry Pi 2が発売されましたが、これまでのRaspberry Piに比べ、
  • プロセッサの動作周波数が約1.3倍に(700MHz→900MHz)
  • CPUがシングルコア(1コア)からクアッドコア(4コア)に
などの変更が行われたため、動作が快適になっています。

特に、ブラウザepiphanyでのインターネット閲覧はデータ量の多くないページならば快適に閲覧することができます。

このepiphanyブラウザのアドレス欄に文字列を入力すると、DuckDuckGoというサイトでの検索が行われます。これをGoogle、Yahoo、Bingなどの検索エンジンに変更できると便利です。ここではその方法を紹介します(参考にしたサイト)。

まず、ターミナルソフトウェアLXTerminal上で下記のコマンドを実行し、設定ファイルをテキストエディタleafpadで開きます。
$ sudo leafpad /usr/share/glib-2.0/schemas/org.gnome.epiphany.gschema.xml
この設定ファイルは長いファイルになっていますので、内容を破壊しないよう注意してください。そして、12行目に下記のように検索サイトを設定している箇所がありますので見つけます。
<key type="s" name="keyword-search-url">
         <default>'https://duckduckgo.com/?q=%s&t=raspberrypi'</default>
         <summary>URL Search</summary>
         <description>Search string for keywords entered in the URL bar.</descri
ption>
</key>
太字で示した、一重引用符(')で囲われた部分が検索エンジンを示しています。この部分を下記の3つのうちお好みの1つに差し替えてください。上から順にGoogle、Yahoo、Bingとなっています。一重引用符(')を消さないよう注意しましょう。
https://www.google.co.jp/search?q=%s
http://search.yahoo.co.jp/search?p=%s
http://www.bing.com/search?q=%s
変更が終わったら保存してleafpadを閉じます。

次に、その変更を反映する作業です。まず、必要なソフトウェアパッケージを下記のコマンドでインストールします。これは一度実行すれば以後必要ありませんし、既にインストールされている、という方もいるでしょう。
$ sudo apt-get update
$ sudo apt-get install libglib2.0-bin
インストールが終わったら、ターミナルで下記のコマンドを実行します。
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas
それが終わったらepiphanyを再起動し、アドレス欄に何か文字列を入力してみてください。検索サイトが変更されていると思います。

なお、ブラウザなどに日本語を入力する方法は「インストールしておくと便利なアプリケーションなど」に記されています。

2015年4月6日月曜日

プロキシ(Proxy)環境下での本書の演習の実行

はじめに

職場や学校などでは、ネットワークに接続するためにプロキシ(Proxy)サーバーと呼ばれるものを介する場合が多いと思います。そのような環境下では、本書でネットワーク接続を必要とする演習をそのままでは実行できません。

下記の設定を行えば、全ての演習を実行できるようになりますが、上級者向けの内容ですので、職場や学校のネットワーク管理者など、ネットワークに詳しい方と一緒に作業することをお勧めします。

apt-getコマンド

ソフトウェアのインストールの際などに実行するapt-getコマンドを用いるための方法です。

まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル/etc/apt/apt.confを作成します。
$ sudo leafpad /etc/apt/apt.conf
このファイルに下記の内容を記述します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
Acquire::http::proxy "http://プロキシサーバー名:ポート番号/";
Acquire::https::proxy "https://プロキシサーバー名:ポート番号/";
Acquire::ftp::proxy "ftp://プロキシサーバー名:ポート番号/";
Acquire::socks::proxy "socks://プロキシサーバー名:ポート番号/";
記述が終わったら、ファイルを保存してからleafpadを閉じてかまいません。

以上で、「sudo apt-get install (パッケージ名)」、「sudo apt-get update」、「sudo apt-get upgrade」などのコマンドが実行できるようになります。

wgetコマンドやブラウザなど

次に、ファイルのダウンロードなどで用いるwgetコマンドや、ブラウザを利用するための方法です。ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル.bashrcを編集用に開きます。
$ leafpad .bashrc
.bashrcファイルは既存のファイルなので様々な内容が書かれています。この内容を壊さないように注意しながら、ファイルの末尾に下記の内容を追記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。(2015/12/10追記:以前の記述、太字部が間違っていたので訂正しました)
export http_proxy=http://プロキシサーバー名:ポート番号/
export https_proxy=http://プロキシサーバー名:ポート番号/
export ftp_proxy=http://プロキシサーバー名:ポート番号/
以上の設定を記述した後、この設定を読み込む必要がありますが、そのためにはRaspberry Piを再起動してしまうのが簡単です。再起動後、ブラウザepiphanyでインターネット上のウェブサイトを閲覧できるようになっているはずです。

なお、NOOBS 1.4.2(Jessie)以降に含まれるRaspbianのようにデフォルトでGUI環境で起動させた場合、ブラウザでProxyを有効にするにはターミナルからコマンドでブラウザを起動しなければなりませんでした。ご注意ください。
Chromiumブラウザの場合
chromium-browser &
epiphanyブラウザの場合
epiphany &

gitプロトコルに対するgitコマンド

以上で本書の内容のほとんどを実行できるようになりましたが、wiringPiをインストールするために本書213ページで紹介したコマンド「git clone git://git.drogon.net/wiringPi」だけはまだ実行できません。それを可能にする方法を記します。なお、NOOBS 1.4.2(Jessie)以降に含まれるRaspbianには、wiringPiはデフォルトでインストールされていますので、上記コマンドの実行の必要はありませんのでご注意ください。

まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにcorkscrewというコマンドをインストールします。
$ sudo apt-get install corkscrew
次に、以下のようにテキストエディタleafpadでホームディレクトリ上にgit-proxy.shという名前のファイルを作成します。
$ leafpad git-proxy.sh
この中に、下記のような3行を記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
#!/bin/bash
CORKSCREW=`which corkscrew`
$CORKSCREW プロキシサーバー名 ポート番号 $1 $2
記述したら保存してからleafpadを閉じて構いません。次に、そのままLXTerminal上で下記のコマンドを実行し、git-proxy.shを実行可能ファイルにします。
$ chmod a+x git-proxy.sh
最後に、leafpadで設定ファイル.bashrcを開きます。
$ leafpad .bashrc
このファイルの末尾まで移動し、下記の1行を追記します。
export GIT_PROXY_COMMAND=/home/pi/git-proxy.sh
記述したら保存してleafpadを終了します。その後、Raspberry Piを再起動して設定を再読み込みすれば、 wiringPiのダウンロード用のコマンド
$ git clone git://git.drogon.net/wiringPi
が実行できるようになっているはずです。

時刻合わせ

プロキシ環境下ではRaspberry Piの時刻合わせが機能しない場合が多いと思います。そのような場合、もし職場や学校内に時刻合わせサーバーが存在すれば、下記の方法で時刻を合わせることができます。

RaspbianのWheezy/Jessie (NOOBS 2.4.2まで) の場合、時刻合わせにntpdが用いられていますので、その設定を行います。
leafpadで設定ファイル/etc/ntp.confを開きます。
$ sudo leafpad /etc/ntp.conf
ファイル内で下記のような箇所を見つけ、編集します。時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。
(略)
# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server その環境の時刻合わせサーバ  ←時刻合わせサーバが存在すれば記す

# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#server 0.debian.pool.ntp.org iburst  ←ここは#でコメントアウト
#server 1.debian.pool.ntp.org iburst  ←ここは#でコメントアウト
#server 2.debian.pool.ntp.org iburst  ←ここは#でコメントアウト
#server 3.debian.pool.ntp.org iburst  ←ここは#でコメントアウト
(略)
記述後、Raspberry Piを再起動し、数分待てば時刻が合うようになります。

次に、RaspbianのStretch (NOOBS 2.4.3以降)の場合です。 時刻合わせにsystemd-timesyncdが用いられていますので、その設定を行います。 leafpadで設定ファイル/etc/systemd/timesyncd.confを開きます。
$ sudo leafpad /etc/systemd/timesyncd.conf
ファイル内で下記のような箇所を見つけます。
(略)
[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3
.debian.pool.ntp.org
このうち、NTPに関する行の先頭の「#」を削除し、「=」の右辺にお使いの時刻合わせサーバーを記述します。 時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。
記述後、Raspberry Piを再起動すれば時刻が合うようになります。

カーネルやファームウェアのアップデートに用いるrpi-updateコマンド

Raspberry Piのカーネルやファームウェアのアップデートにはrpi-updateと呼ばれるコマンドを用いますが、やはりプロキシ環境下では実行できません。 本書内ではこのコマンドを使いませんが、参考のためにその方法を記しておきます。

ターミナルソフトウェアLXTerminalを起動し、ホームディレクトリで以下のコマンドを順に実行します。
$ rm rpi-update
$ wget https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update
$ sed -e "s/curl/curl -x プロキシサーバー名:ポート番号/" rpi-update > rpi-update-proxy
$ chmod a+x rpi-update-proxy
$ sudo UPDATE_SELF=0 ./rpi-update-proxy
補足すると、rpi-updateはcurlというコマンドでファイルをダウンロードするのですが、curl実行の際にプロキシを経由するようなオプションをつけて呼び出すrpi-update-proxyというコマンドを3行目で生成しています。さらに、rpi-updateは起動時に自分自身を最新版に置き換えようとするので、「UPDATE_SELF=0」によりそれを無効化して実行しています。

プロキシ(Proxy)環境下での本書9章と10章の実行

さて、以上で本書の内容をプロキシ環境下で学べるようになりましたが、9章と10章を学ぶ際にはもう一点、注意すべきことがあります。

これらの章では、PCやスマートフォンのブラウザを通して、同一ネットワーク内のRaspberry Piにアクセスし、回路を制御します。この際の模式図が下図です。このPCやスマートフォンでは、通常のインターネットへのアクセスの際にプロキシサーバを経由しなければなりませんが、同一ネットワーク内のRaspberry Piへアクセスする場合は、プロキシサーバーを経由せず直接アクセスせねばなりません。

そのために、Raspberry PiのIPアドレス(ここでは192.168.1.3とします)を「プロキシの例外サイト」としてあらかじめ登録しておく必要があります。


Windowsの場合の例外サイトの設定法を示したのが下図です。「インターネットオプション」から「LANの設定」を辿るとプロキシサーバーを設定できます。さらに「詳細設定」ボタンをクリックすることで、例外サイトを設定できます。図では192.168.1.3が登録されていることがわかるでしょう。


この「例外サイト」の設定はMac OSXにも存在します。「システム環境設定」→「ネットワーク」
→「詳細」→「プロキシ」です。

しかし、iOS(iPhoneやiPad)の場合、この例外サイトの設定は存在しないため、iOSでプロキシの設定自体を無効にする(すなわち、上の図でインターネットへのアクセスができない状態にする)しかありません(pacファイルと呼ばれるものをサーバーに設置してこの問題を回避する方法もありますが、ここでは割愛します)。

androidの場合、Wifiの設定に例外サイトの設定があるのですが、この設定が機能しないことも多く、やはりプロキシの設定を無効にしてRaspberry Piにアクセスせざるを得ない場合があります。