English
<

HOWTO: プログラムを書く

パピーは小さなディストリビューションですが、幅広いプログラミング言語の選択肢を持っています。標準のライブCDは C や C++ プログラムをコンパイルするように準備されていませんが、パピーに完全な'C/C++の開発環境(FreeBASIC コンパイラも)を導入する ' devx_xxx.sfs ' (ここで' xxx 'のは、パピーのバージョン番号、例えば'401 'ならバージョン4.01 )という名前の追加ファイルが存在します。' devx_xxx.sfs '無しでもive-CDは既に Ash/Bash と Perl スクリプト言語を持っています。このページではパピーのプログラミングの選択肢の概要を記します。...

Ash/Bash スクリプト

パピーの中で準備が整っている言語はシェルスクリプトです。UNIX および Linux のシェルスクリプトは長い年月と時間を経てきています。コマンドシェルとは、コマンドラインを使用するときのユーザーインターフェイスを意味します。X を走らせているときコマンドラインはターミナルウィンドゥの中にありますが、X から脱出してコマンドラインに戻ることも可能です。

実際の、あなたと対話する実行プログラムは、コマンドシェル、通常の Linux では Bash シェルとして知られてます。パピーにおいては、あなたは Bash と Ash 、2つシェルの選択肢を持ってます。
X でターミナルウィンドウが開かれたときには、Bash が実行されていることに注意してください。X からコマンドラインに脱出したときには、Ash が実行されています。明示的にスクリプトの文頭に "#!/bin/bash" か "#!/bin/sh" (あるいは "#!/bin/ash") と置くことで明示的に Bash か Ash のどちらかを選択することができます。

シェルスクリプトはコンパイルせずに実行可能なテキストファイルのプログラムです。シェルスクリプトはとても洗練された書き方が可能で、パピーにはそれらのプログラムが多数存在しています。

このページは Ash/bash のスクリプトプログラムのチュートリアルではありません -- イ ンターネット上には、多くの書籍や解説があります。ここにはいくつかの Bash のハウツーを見付けることができます:

"Advanced Bash-Scripting Guide": http://www.tldp.org/LDP/abs/html/index.html
"Bash Programming - Introduction HOWTO": http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

Ash/Bash スクリプトを書くためには、テキストエディタが必要ですが、パピーには2つのコンソールエディタ、 e3MP、および2つのGUIエディタ、 Geany Leafpad があります。 geany と mp は特に興味深いことに、Ash/Bash スクリプト用カラー構文強調表示機能を持っています。

パピーでスクリプト作りを楽しんで下さい!

ここでは、スクリプトを支援するツールの概要と、オンラインドキュメントのリンクを:

e3, mp,
Geany, Leafpad
テキスト エディタ
Ash , Bash
パピーで使われているコマンドシェル
BusyBox
スクリプトの中で使用可能な、基本的 Unix/Linux コンソールアプリケーションの詰め合わせ。 パピーでは、多くのケースで完全なプログラムとして、機能の欠けたbusyboxが使われています。
Xdialog
スクリプトのための GTK GUI フロントエンド
xmessage
スクリプトのためのとても基本的な X11 GUI 対話的フロントエンド
xclip
スクリプトの中で使用可能なクリップボードや X-selections(プライマリやセカンダリ) からのコピー&ペーストのためのコンソールアプリケーション。
gtkdialog3
Xmessage と Xdialog の別の代替プログラム。 Gtkdialog は GTK2 アプリケーションで 、(ダイアログ構造と使用者との相互関係を説明する)XML ファイルを読み込み、 信じられないほど洗練された GUI を提供します。 私が思うに、Gtkdialog は選り抜きのプログラムです。
注意。パピーは今のところ gtkdialog2 と gtkdialog3 と言う名前の2つのバージョンの gtkdialog を持っています -- 最終的には1つになるので、後者を使って下さい。 -- 言い替えれば、いつも "gtkdialog3" を実行して下さい。
注意。gtkdialog3 のユーザーマニュアル は初歩的ですが、 'devx' モジュールは多くの例題プログラムを /usr/share/doc/gtkdialog3/examples に持っています。

ここにパピーで使われているスクリプトをいくつか示します:
/usr/sbin/pmount
/usr/sbin/timezone-set

C/C++ プログラミング

全ての C/C++ アプリケーションをコンパイルするためのツールは devx_xxx.sfsと名付けられたアドオンファイルの中に見付けることができます。SFS(と呼ぶ) ファイルの概要はオンラインのこのページで読むことができます: http://puppylinux.com/development/package-management.htm

このファイルを使うのはとても簡単です。インターネットからダウンロードして (70M程です) /mnt/home に保存します( "pup_save.2fs" ファイルと同じ場所)。

あるいは、もしあなたがパピーをハードドライブに「フル」インストール(パピーがRAMディスクでなく、パーティションを占領)しているならば、 devx_xxx.sfs ファイルをダウンロードし ...いくつかの手順が要求されます。ここを見て下さい: http://www.puppylinux.com/hard-puppy.htm.

1. ROX-Filer ウィンドゥで devx_xxx.sfs をクリックしてマウント。
2. マウントしたディレクトリで端末を開く
3. # cp -a --remove-destination ./* /mnt/hdxx/ (インストールしたパーテーション)
4. # sync
5. 端末を閉じる。
6. devx_xxx.sfs をクリックしてアンマウント

devx_xxx.sfs をダウンロードした後 、正しい場所に配置し、

日本語訳註:Frugalインストールの場合、メニュー>システム>BootManager - ブートアップの設定>起動時に追加SFSファイルをロード で devx_xxx.sfsを右ペインに移動。

パピーをリブート、そして 準備はできました。
"configure" や "make" などの、通常のコンパイル ツールは全て動きます。

注意。Linux スワップパーテーション、 大容量の RAM のどちらか、あるいは両方を持つ PC が必要です。 C/C++ コンパイルは多くの一時スペースを必要とします。

もしあなたがパッケージをコンパイルし、誰かに使って欲しいと思うならば、とても簡単にPETパッケージを作ることができます -- ここを読んで下さい: http://www.puppylinux.com/development/createpet.htm

もしあなたがGTKアプリケーションを書きたいのならば、 'devx' ファイルは 'glade-3'を持っています。 これは visual GUI-builder です。 Glade についてもっと知るにはここを: http://glade.gnome.org/ 'glade-3' プログラムはXMLファイルを生成し、そしてパピーはアプリケーションがXMLファイルを読み込んでGUIを生成するためのライブラリ 'libglade' を持っています。

注意。gtkdialog3 はGlade XMLファイルも読み込むことが可能です。 gtkdialog3 の用例を、 'devx' ファイルで提供される /usr/share/doc/gtkdialog/examples で見て下さい。Bashスクリプトも Glade を利用することが可能です。

Vala/Genieによるプログラミング

これこそ未来です。ValaとGenieはあらゆる面で C/C++を凌ぐプログラミング言語です。 Valaは C#に似た構文であり、Genieは Pythonに似た構文です。 これらは実は同じ一つのコンパイラが異なる2とおりの構文を受け入れているのです。

Vala/Genieは真のコンパイラ言語で、非常に効率のよいコードを生成します。 いずれもとくにGTKアプリケーションを書くのに優れています。 私は「devx」SFSファイルにVala/Genieコンパイラーを、そのドキュメントとValaIDEとともに入れておきました。

Vala/Genieのオンラインドキュメントはこちら:
http://puppylinux.com/genie/index.html

ValaIDEはValaとGenieどちらの構文も(色分けで)ハイライトできるテキストエディタを含んだ統合開発環境です。 「devx」SFSファイルをロードしているなら、メニューの「ユーティリティ」のところにValaIDEの項目があります。

NicoEditテキストエディタもValaとGenieの構文もをハイライトできます。 GeanyキストエディタはValaの構文をハイライトできますが、Genieの構文はハイライトできません。

「devx」SFSファイルをロードしているなら、 Valaリファレンスマニュアルが /usr/share/devhelp/books/vala/index.htmlにあります。

我々は Vala/Genieを、とくにその構文の親しみやすさから Genieを、 これからのパピー用アプリケーション開発の標準にしていこうとしています。 Puppyフォーラムでは刺激的な新しいアプリケーションがいくつか現れており、 それらはいずれパピー公式ライブCDに収められるようになるでしょう。

ニコラスによるNicoEditテキストエディタは、Genieで書かれたGTKアプリケーションの一例です。 これに止まりません。マークはPuppyBrowser、EmbeddedBookmarks、そしてPictureviewerをGenieで書きました。 私はこれらのソースコードまでパピーに含めました。

/usr/local/PuppyBrowser
/usr/local/EmbeddedBookmarks
/usr/local/Pictureviewer

(c) Copyright 2004,2005,2006,2007,2008,2009 Barry Kauler