授業資料/10 の変更点


#CONTENTS

//  第 10 回 -- software install

* Install softwares manually: ソフトウェアの手動インストール [#lc6e7d12]

今回の授業では,ソフトウェアのインストール方法について学習する.
&br;
近年では,ライトユーザでも簡単に unix が使えるようにという配慮から
パッケージングをはじめとするインストールの自動化が進んでいるが,

- おおまかに unix とよばれる OS でもパッケージング等は各々異なるため,学習しても応用が効かない.
- トラブルが起きたときに対処する能力が身につきにくい.
- 伝統的なソフトウェアや,小さなソフトウェアにはパッケージングされてないものも多い.

などを鑑みて,教育的理由から,この授業では手動インストールを扱う.
&br;
&br;
ms-windows などと異なり,unix ではソフトウェアはソースファイル
(Source File, 読んで理解出来るプログラム形式)の形式で配布されていることが多く, 
インストールはソースを取得して自分でコンパイルすることになる.
&br;
これは,  
「欲しがった人が作る」という「言い出しっぺの法則」
にのっとってユーザが自分でソフトウェアを作ってきた,という unix の伝統や,
なるべく多くの環境で使えるようにと言う配慮,
ソフトウェアをなるべくオープンにしようという文化的背景からこうなっているのであり,
そうした背景をこの学習を通じて感じ取ることもこの授業の狙いである.

* Flow of installation: ソフトウェアの手動インストールの流れ [#o8ac76f2]

ソフトウェアを unix に手動でインストールする一般的な手順は以下の通りである.

+ インストールするソフトウェアがどんなソフトウェアなのか,概要を把握する.
+ ライセンスの確認
+ Source の取得, 展開
+ 説明書の通読
+ コンパイル前の設定
+ コンパイル
+ コンパイルしたファイルなどの配置, 後処理

この流れを意識しておけば,実はそんなに難しくはない.
もちろん,専門的知識を要求されるときもあるが,
どうしてもよく分からないときはインストールしなければ良いだけの話である.
&br;
&br;
&ref(/materials/warning.png); 注意
セキュリティを考えると,
全体に自分が何をしているか良く把握できていない場合は,
むしろインストールしては「いけない」と考えた方が良いかもしれない.
&br;
「トロイの木馬」をうっかり自分で仕込んでしまった,ということがないよ
うに,最低でも何をしているかの自覚を持ちながら作業するようにしよう.

* Installation of a software: ソフトウェアの手動インストールの実際 [#tc738991]

内容の解説を行うとともに,
[[&ref(/materials/JNorth_arrow-right-sm.png); FDclone:http://hp.vector.co.jp/authors/VA012337/soft/fd/index.html]]
と呼ばれる cui ツールを例として挙げ,
実際にインストールしながら作業に習熟する.
&br;
&br;
この FDclone というツールは非常に便利かつ(日本では)古くから知られたツールなので,
インストールして使えるようになっておくと良いだろう.


** What is the software? どんなソフトウェアなのか概要を把握する [#xefd58e6]

当たり前であるが,インストールするソフトウェアがどんなソフトウェアなのかを知らなくては始まらない.
そこで,情報収集を兼ねて,ソフトウェアの概要を調べておこう.
&br;
それには,そのソフトウェアを一次配布している開発元の web 
を参照するのがまずは良いだろう.

&ref(/materials/notes.png); 実習
&br;
[[&ref(/materials/JNorth_arrow-right-sm.png); FDclone:http://hp.vector.co.jp/authors/VA012337/soft/fd/index.html]]
の web
を見ると,そこに「FDclone って何?」というまさにおあつらえ向きの web
があるのがわかる.
それを読んでまずは概要を把握せよ.

** Confirmation of the license: ライセンスの確認 [#mea94016]

忘れがちであるが,
インストールしたいと思うソフトウェアのライセンスを確認しておく必要がある.
&br;
対価が必要なのかそうでないのか,
使用期間に制限はないか,再配布は可能かどうか等々,
ソフトウェアのライセンスの形態は非常に多様なので,結局,
ライセンスがどうなっているかは各ソフトウェア毎に調べる他はない.
&br;
一般に良く知られているのは「商用」と「フリー」という大まかな区別であるが,
これは大まかすぎて役に立たない.
&br;
&br;
&ref(/materials/warning.png); (注意)
ライセンスに違反した状態でソフトウェアを使用すると,
損害賠償金を請求されるなどの事態に発展する可能性があるため,
インストール前によくよくライセンスを確認しておくこと.
&br;
また,有益なソフトウェアを作成し,配布している作者への感謝と敬意を表すためにも,
ライセンスを遵守するようにしたい.

&ref(/materials/notes.png); 実習
&br;
FDclone のライセンスはやはりwebにまとめられているので,読んで理解しておくこと.

** To obtain the source file: Source の取得 [#a1defe22]

さて,ソースファイル一式を取得しよう.
&br;  
&br;    
まずどのファイルをとってくれば良いのかであるが,これは配布元の web
を丁寧に読めば問題ないだろう.
&br;    
よく分からない場合は,unix ではソースファイル一式は
tarball と呼ばれる hogehoge.tar.gz もしくは hogehoge.tgz 
という形式で配布されることが多いので,それを目安にすると良いだろう.
&br;  
&br;  
// 次に取得の方法だが,
// これは要するにネットワークを用いたファイル転送であるので,
// 前回の授業の<a href="10.html#transfer">ファイルの転送</a>で示した方法や,
// HTTP (web を見るのに使われる情報のやり取りの規格)が使われる.
// &br;  
// 少し前まではこの手段として ftp がもっとも良く使われていたのだが,
// 便利性やセキュリティとの兼ね合いなどの理由から,
// 現在では http と ftp が併用されるようになってきている.
// &br;  
// どの方法を用いて配布するかは配布元が決めることであるので,そこの指示に従おう.

&ref(/materials/notes.png); 実習
&br;
FDclone のソースファイル一式を取得する.
// 本来は上記の web をたどって取得するところだが,配布元のネットワークに負担をかけないように,
// &br;
//http://www.cas.cmc.osaka-u.ac.jp/~paoon/Lectures/2006-7Semester-AppliedMath7/FD-2.08d.tar.gz
//&br;
//から,kterm 上で w3m や lynx を用いて取得すること(ネットスケープや Mozilla を使うな,ということ)
// &br;
unix からは,w3m や lynx, wget などのコマンドラインを使うのが素早くて良いかもしれないが,まあ好みの手法で問題ない.

** Extract the source: Source の展開 [#o5ce5869]

さて,取得したソースファイル一式は, 通常は転送が簡単なように一つのファイルに固められているため,
作業できるようにこれを展開しよう.
&br;
tarball は gzip と tar があれば展開できる.
&br;
tar や gzip の扱いに関してはオンラインマニュアルを読めばよいが,今回は使い方を書いておいた.
いずれ調べておこう.

// 以前の授業の
// <a href="09.html#tar-use">tar の使い方</a>
// や
// <a href="09.html#gzip-use">gzip の使い方</a>
// を見るのが良い.
// &br;
// &br;
なお,展開すると大量のファイルが含まれていることも多いので,この作業も含め,
以下の作業は一時的な作業用ディレクトリを用意してその中で行った方が良い.

&ref(/materials/notes.png); 実習
&br;
取得した FDclone のソースファイル FD-3.01a.tar.gz を展開する.
&br;
例えば,新たに tmp-fd というディレクトリを作って作業するならば,
全体に次のような流れになるだろう.

> ''mkdir&#9251;tmp-fd''
> ''cp&#9251;FD-3.01a.tar.gz&#9251;tmp-fd''
> ''cd&#9251;tmp-fd''
> ''tar&#9251;xvfz&#9251;FD-3.01a.tar.gz''

この作業のあと,展開されたディレクトリやファイルの構成がどうなっているか確認しておくこと.

** Readme: 説明書の通読 [#o6b9d0a2]


さて,これでソースファイル一式が展開された形で入手できたわけだが,
ここでまずやるべきことはソースファイル一式に含まれているドキュメント
(説明書,解説,マニュアル等)
に目を通すことである.
ドキュメントファイルには INSTALL や README などの,大文字で始まる分かりやすい名前がついているので,
ザッとみるだけでどれだか分かるはずである.
&br;
これらのドキュメントにはインストールの方法や注意点,各種設定の方法などが書かれているので,
読んでおかないことには次の作業が進まない.
&br;
&br;
&ref(/materials/warning.png); 注意:
ドキュメントに目を通さずに「勘」で次の作業に進んで
うまくいかない〜と悩んで時間をつぶすケースが(特に素人に)良くみられるが,
そういうことにならないように注意しておこう.

&ref(/materials/notes.png); 実習
&br;
FDclone のソースファイル一式をみて,
ドキュメントに一通り目を通せ.
&br;
インストール方法が記してある Install 
というファイルは特に重要なので良く読んでおくこと.


** Preparation to compile: コンパイル前の設定 [#e2fb4e0d]

インストール方法について書かれたドキュメントを読みながら,
ソースをコンパイルする前にやらねばならない準備を行う.
大ざっぱに言えば,これは次の二つの作業からなる.

- OS や機種,環境ごとに異なる細かい違いに対応する.
&br;
本質的には技術的問題であるため,ソフトウェアの作者側の努力で対応することが多い.
この差に対応するための仕組みも存在する.
よく知られているのは,
''configure''
という名前をつけてあるソフトを実行する方法や,
''make&#9251;config''
とする方法,また,
''xmkmf''
というツールを使う方法などである.
&br;
&br;
- ソフトウェアの動作オプション等を設定する.
&br;
ソフトを使う人の好みや環境によるため,
ユーザや管理者が設定することが多い.
好みと言ってもよくわからないなあ,という場合は,
そのまま(デフォルト)にしておいて後で修正しても良いだろう.


具体的にどうすれば良いかは,たいていはドキュメントに指示されているはずであるので,
よく読んでその指示に従う.

&ref(/materials/notes.png); 実習
&br;
FDclone の Install というドキュメントを読み,そのドキュメント中の
&br;
3. make。
&br;
と書かれている行の前までを実行せよ.

&ref(/materials/warning.png); 注意
教育用計算機システム上の Vine Linux や cygwin は,Linux とよばれる OS に分類される.

** Complile: コンパイル [#r47f580e]

準備が終わったら,ソースをコンパイルしてバイナリにする.
これによって,自分の環境で実行できるファイルが作成されることになる.
&br;
ソフトウェアを記述したコンピュータ言語などにも依存するが,通常は
&br;
''make&#9251;オプション''
&br;
とするだけで良いことが多い.  
オプションも含め具体的にどうするかは,ドキュメントに書かれている指示に従う.
&br;
&br;
なお,この作業は環境などよっては「失敗」することがあるので,作業がうまくいったかどうかの確認が必要である.
&br;
確認の方法としてもっとも良いのは
「Makefile の内容を読んで行われる作業を理解し,作業結果の判定をする」,というものである… が,
この授業を聴講しているレベルでこれができるとは思えない(ToT).
&br;
そこで次善の策としてお勧めなのが,
「コンパイル作業中に出力されるログを読んで,問題が起きてないかどうか判断する」
というものである.

文字端末の画面をぼーっと眺めていると画面が流れてしまえば読めなくなるため,
コンパイル作業時には以前の授業
[[&ref(/materials/JNorth_arrow-right-sm.png); 雑多なコマンド>授業資料/02#MiscCommands]]
での
''script''
コマンドを有効活用して記録をとり,あとからチェックするのが良い.

&ref(/materials/notes.png); 実習
&br;
FDclone の Install というドキュメントを読んで,ドキュメント中に
&br;
3. make。
&br;
と書かれていることを確認せよ.
それから,
''script''
を使って記録をとりながらコンパイルする.
具体的には以下のような感じになるだろう.
> ''script&#9251;Log-make''
> ''make''
> ''exit''
> ''less&#9251;Log-make''

これで記録を見ておかしなところがないかチェックできる.

さらに,Install ドキュメント中にある指示に従い,コンパイルした結果できた
''fd''
が無事に動くかどうか,

> ''./fd''

として確認する.
&br;
# ちなみに fd は qキーを押すと終了できる.

** Something after the compilation: コンパイルしたファイルなどの配置, 後処理 [#ga987d30]

さて,ここまで無事にたどり着いたら,あとは細かい後片付けである.
しかし個人ユーザがソフトウェアをインストールする場合,この段階がもっとも作業量が多いので,
注意しながら作業しよう.
&br;
&br;
この段階の作業は一般に次のように進行する.

++ 実行ファイル,マニュアル,設定ファイルなどを適切なディレクトリに置く.
++ 作業の最終チェック.
++ インストールに使用したが,既に不要となったファイルの後始末.
++ ソフトウェアのオプション等の細かい調整.

これらについて細かく解説しよう.

*** Location of files: ファイルを適切なディレクトリに置く [#ecb3dbf0]

さて,せっかくコンパイルまでしてファイルを作成したので,
それらのファイルを適切なディレクトリに置いて使えるようにするのがこの段階である.

- ファイルを置くディレクトリを作成,準備する
&br;
しかし,この段階で注意が要る.
例えば,「/usr/local/bin などの(個人ユーザが操作できない)ディレクトリ」
にファイルを置くことを前提としているソフトウェアが多いが,個人ユーザではこれは出来ない.
&br;
&br;
この問題に対処するため,適切なディレクトリを作成して用意したり,
環境変数を設定したりという作業が必要となる.
これにはこれまで学習した様々な知識が必要となるので,よく思い出して作業されたい.
&br;
&ref(/materials/warning.png); ソフトウェアによっては,いくら上手に設定しても個人ユーザではインストールできないものがある.
そういう時は素直にあきらめて,管理者にインストールをお願いしよう.
&br;
&br;
さて,具体的に考えると,
unix において個人ユーザレベルでソフトウェアをインストールする際,
新たに導入されるファイルは実行ファイル,マニュアル,設定ファイルが主である.
そこで,これらのファイルをどういうディレクトリに置くのか,他に何が必要かを各々示そう.

: 実行ファイル … プログラム本体など. |
個人ユーザの場合,ユーザディレクトリに 
''bin''
というディレクトリを作成してそこに置くのが一般的だろう.
&br;
また,そのディレクトリに path を通しておかないと使えないので,
しかるべき設定をしておく必要がある.
&br;
この授業では既にこの設定等が済んでいるのでこれについては問題ない.
// &ref(/materials/notes.png); 実習
// <a href="07.html#prep">シェルスクリプトの作成から実行まで</a>
// で学習した知識を用いて,
// <ul>
// - もし存在しなければ ~/bin を作成.
// - もし path を通してなければ,~/bin に対する path を設定.
&br;
: マニュアル |
個人ユーザの場合,ユーザディレクトリに 
''man''
というディレクトリを作成してそこに置く…ぐらいか.
あと,それらに対して MANPATH と呼ばれる環境変数を設定しておく必要がある.
MANPATH について詳しくは,
''man&#9251;man ''
として調べよ.
&br;
&ref(/materials/notes.png); 実習
&br;
具体的にどういうディレクトリが必要か Makefile を読んでみると,
&br;
''~/man/man1'' と ''~/man/ja/man1''
&br;
あたりを用意すれば良さそうである.
そこでまず,次のようにしてディレクトリを作成する.
//
> ''(cd&#9251;~;&#9251;mkdir&#9251;man;&#9251;cd&#9251;man;&#9251;mkdir&#9251;man1)''
> ''(cd&#9251;~/man;&#9251;mkdir&#9251;ja;&#9251;cd&#9251;ja;&#9251;mkdir&#9251;man1)''
<
もちろん,作業後にこれらのディレクトリができているかどうか確認しておくこと.
また,どうして上のコマンドでディレクトリが作成できるか考えておこう.
&br;
&br;
次に MANPATH を設定する.      
bash を使っているならば(通常はそうだろう),
.bashrc の中で次のように設定するのが良いだろう.
//
> ''if&#9251;[&#9251;-d&#9251;$HOME/man&#9251;]''
> ''then''
> ''MANPATH="$HOME/man:&#9251;:";&#9251;export&#9251;MANPATH''
> ''fi''
<
もしも tcsh を使っているならば,.tcshrc の中などで
//
> ''setenv&#9251;MANPATH&#9251;"${HOME}/man:&#9251;:"''
<
とすれば良い.
&br;
: 設定ファイル |
個人ユーザの場合,ユーザディレクトリに 
''etc''
というディレクトリを作成してそこに置くことになるだろう.
今回は不要なはずだが,
念の為に,''etc'' ディレクトリをホームの下に作っておこう.
//
> ''(cd&#9251;~;&#9251;mkdir&#9251;etc)''
<
&br;
: その他 |
Makefile を読むと,どうやら data を置くディレクトリが必要なようだ.
そこでそれにも対処することにしよう.
//
> ''(cd&#9251;~;&#9251;mkdir&#9251;share;&#9251;cd&#9251;share;&#9251;mkdir&#9251;fd)''
<


- 実際のファイル配置作業

さて,上記のディレクトリと環境変数の設定が終わったら,
ファイルを上記のディレクトリに配置すれば良い.
この作業は手動で行っても良いが,FDclone の Install ドキュメントを読むと,
&br;  
7. make&#9251;install。
&br;  
と書かれているので make install で行われることが(慣れれば)分かる.
&br;
ではファイルを置くディレクトリの指定はどこで行うのかというと,
その前に書かれている
&br;  
5. Makefile.in にある TOPDIR 等のマクロを自分の環境に応じて…
&br;  
という部分がそれに当たる.
&br;  
&br;  
さて,それではまず Makefile.in を適切に書き替え,その後,make install を実行しよう.
&br;  
&br;  
&ref(/materials/warning.png); (注意)
Install ドキュメントの "6. _fdrc を fdrc という名前でコピーし… "
という部分は今回は実行する必要がない.
というより,実行しない方が適切.
なぜなら,今回は個人ユーザでインストールするので,
共通設定ファイルを用意すると,結局,
一人のユーザ用に二つの設定ファイルが存在してしまうことになり,
混乱するだけである.

&ref(/materials/notes.png); 実習
&br;
Makefile.in を書き替える前に念のためにバックアップをとっておこう.
//
> ''cp&#9251;Makefile.in&#9251;Makefile.in.ORG''
<
それから,Makefile.in をエディタで書き替える.
書き替える場所と書き替え方は次の通り.

| 行 | 元 | 修正後 |h
| 12 行目 | BINTOP = $(PREFIX)/bin | BINTOP = $(HOME)/bin |
| 14 行目 | DATATOP = $(PREFIX)/share | DATATOP = $(HOME)/share |
| 16 行目 | MANTOP  = $(PREFIX)/man | MANTOP  = $(HOME)/man |
| 19 行目 | JMANDIR = $(BUILD)$(MANTOP)__LANGDIR__/man$(MANSEC) | JMANDIR = $(BUILD)$(MANTOP)/ja/man$(MANSEC) |
| 20 行目 | JCATDIR = $(BUILD)$(MANTOP)__LANGDIR__/cat$(MANSEC) | JCATDIR = $(BUILD)$(MANTOP)/ja/cat$(MANSEC) |
| 25 行目 | DEFRC   = $(CONFDIR)/fd__RCVERSION__rc | DEFRC   = $(HOME)/fd__RCVERSION__rc |

&br;
これでやっと make install が実行できる.
例によって,script を使うことを忘れないようにしよう.
//
> ''script&#9251;Log-install''
> ''make&#9251;install''
> ''exit''
> ''less&#9251;Log-install''

これで記録を見ておかしなところがないかチェックしておこう.

*** Final check: 作業の最終チェック [#r8596a33]

上で行った作業が正しく行われているかチェックしよう.
環境変数の設定などもあったので,念のためにいったん異なる 
文字端末を立ち上げて無事に立ち上がるか確認の上,
いったんログアウト → ログイン して,チェックを行おう.

&ref(/materials/notes.png); 実習
&br;
文字端末をもう一つ起動して,無事に起動するか確認する.
&br;
次に,その新しい 文字端末の中で,
新たに設定した環境変数がきちんと反映されているか,
//
> ''env&#9251;|&#9251;grep&#9251;-i&#9251;path''
<
として,表示されている PATH および MANPATH に望みの部分が入っているかチェックする.
&br;
次に,その新しい 文字端末の中で,
//
> ''fd''
<
として,どのディレクトリからでも fd が起動するかどうかチェックする.
&br;
次に,その新しい 文字端末の中で,
//
>''man&#9251;fd''
<
として,fd のマニュアルが見られるかどうかチェックする.
さらに,
//
> ''man&#9251;man''
<
などとして,他のマニュアルに悪影響が出ていないことを確認する.
&br;
&br;
ここまでうまくいったら,ログアウト→ログイン を行い,
上のチェックを再び行う.
これで問題がなければ,インストール作業の山場は越えたと言える.

*** Cleaning: 不要ファイルの後始末 [#e1e71931]

さて,これでインストール作業そのものは終了したと言える.
そこで,あとは残ったソースファイルなどを整理して保存するか,廃棄するだけである.
これはポリシーとコストの問題なので,各人で適当に決めれば良いだろう.
&br;
&br;
ちなみにお勧めは,記憶容量に余裕があるならば,適切なディレクトリ(src
など)を作成して,そこにファイルを保存しておくことである.
この時,修正したファイルや script 
で作られた作業過程の記録ファイルを一緒にとっておくと後々役立つことがあるだろう.
 
&ref(/materials/notes.png); 実習
&br;
今回のソースファイル一式と作業内容などを保存しておこう.
&br;
まず,コンパイル途中で作られた不要なファイルを削除する.
それには,一般にソースファイルのあるディレクトリで

> ''make&#9251;clean''

とすればよい(という約束になっている).
&br;
次に,このソース一式を tarball にしてしまう.
// 作業については以前の授業の
// <a href="09.html#tar-use">tar の使い方</a>
// や
// <a href="09.html#gzip-use">gzip の使い方</a>
// を参照すると良い.
//
> ''cd&#9251;..''
> ''tar&#9251;cvfz&#9251;FD-3.01a-20120629.tar.gz&#9251;./FD-3.01a''
> ''tar&#9251;cvfz&#9251;FD-3.01a-20130620.tar.gz&#9251;./FD-3.01a''
<
上のように日付などを入れておくと良い.
あとは,ソースファイルを置いておくディレクトリを作成して,そこへ移し,
残ったファイルを削除すれば良い.
//
> ''(cd&#9251;~;&#9251;mkdir&#9251;src)''
> ''mv&#9251;FD-3.01a-20120629.tar.gz&#9251;~/src''
> ''mv&#9251;FD-3.01a-20130620.tar.gz&#9251;~/src''
>
> ''(cd&#9251;FD-3.01a;&#9251;\rm&#9251;*)''
> ''rmdir&#9251;FD-3.01a''
> ''rm&#9251;FD-3.01a.tar.gz''

*** Configuration: オプション等の調整 [#h3660593]

ソフトウェアによっては,オプションを適切に調整しないと使い物にならないものもあるので,
ここで調整しておこう.

&ref(/materials/notes.png); 実習
&br;
まず FDclone を起動する.
"?" キーを押すと簡単なヘルプが出るのでそれを読むと,
"E" キーを押すとカスタマイズができることが分かる.
そこで,カスタマイズをいろいろ行おう.
&br;
カスタマイズ画面では,Enter キーを押すとオプションの選択ができる.
ちょっと分かりにくいので,いろいろやってみよう.


&br;&br;
* Report: レポート [#v8138b05]

以下の課題について能う限り賢明な調査と考察を行い,
&br; 
''AppliedMath7-Report-10''
&br;
という題名をつけて e-mail にて教官宛にレポートとして提出せよ. なお,レポートを e-mail の代わりに TeX で作成した書面にて提出してもよい.  

** Exercises: 課題 [#x7367071]

+ あなたが FDclone を使っているのを見て,友人が自分も使いたいと言い出したとする.
そこで,あなたは FDclone のソース一式を友人に渡そうと思うが,
この行為は FDclone のライセンスに反していないかどうか,根拠を挙げて答えよ.
&br;
&br;
+ FDclone のソースファイル一式には何種類かのドキュメントが同梱されている.
全てのドキュメントファイルの名前を挙げ,それらに何が書いてあるのか解説せよ.
&br;
&br;
+ FDclone のオプション設定を変えて,自分が一番使いやすいようにせよ.
どこをどう変えて,どうなったかについて解説せよ.
&br;
&br;
+ [[&ref(/materials/JNorth_arrow-right-sm.png); QKC:http://hp.vector.co.jp/authors/VA000501/index.html]]
と呼ばれるソフトウェアについて,同様にインストールを行い,適切に報告せよ.
&br;
&br;
+ さらに余力のある者は,
sl コマンド(
[[&ref(/materials/JNorth_arrow-right-sm.png); 原作者のweb(豊田正史 % sl):http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/]]
,
[[&ref(/materials/JNorth_arrow-right-sm.png); SL改造計画:http://www.izumix.org.uk/sl/]]
)
について同様にインストールを行い,適切に報告せよ.
&br;
ちなみに,改造版の方が「威力がある」.


&br;&br;
* about Icons, ClipArts [#te86ccf1]

For details, see [[&ref(/materials/JNorth_arrow-right-sm.png); this>materials]].

// ━┃┏┓┛┗┣┳┫┻╋


// コマンドライン入力は「行頭を > で始める」.
// コマンドライン出力は「行頭をブランクで始める」.

// 実習アイコン
// &ref(/materials/notes.png); 

// 注意アイコン
// &ref(/materials/warning.png);

// Link アイコン
// &ref(/materials/JNorth_arrow-right-sm.png);

// OK アイコン
// &ref(/materials/OK.png);

// NG アイコン
// &ref(/materials/NG.png);

// サンプルアイコン
// &ref(/materials/Gnome-Preferences.png);

// 大文字での強調 
// CENTER:&size(24){''ほげほげ''};

// programu source 表記
// #highlighter(language=ruby,number=on,cache=on){{}}

// パイプ
// &brvbar;

// 空白記号
// &#9251;