作成開始 : 平成23年08月24日(水) 最終更新 : 平成23年08月26日(金)

make してみる (Puppy Linux)


大抵のソフトウェアは Petパッケージからインストールできるようなのですが、やっぱり Petパッケージ にないものをソースからコンパイルしてインストールすることも要るようです。
しかし、ディフォルトでは make が使えません。
make を使えるようにするためには devx_431.sfs という開発環境を使えるようにします。

1. devx_431.sfs のダウンロード

下記 URL にあります。90MBくらいありますね。
http://openlab.jp/puppylinux/download/devx/
デスクトップの「ブラウザ」(SeaMonkey)で /mnt/home に保存します。

2.実行設定

「メニュー」→「システム」→「BootManager ブートアップの設定」をクリックします。

 ↑
SFSファイルのロードにある「起動時にどの追加SFSファイルをロードするか選択して下さい」をクリックします。
・・・ところが!

 ↑
おゃあー、/mnt/home に置いてあるのにいー
・・・で調べたら、どうやらインストール時に Full Install をした場合、pup-431.sfs すらありません。
.sfs ファイルをマウントしてコピーしないといけないようです。
どうやって・・・・
まず、保存した devx_431.sfs をクリック (「ファイル」のオプションで「シングルクリックで操作する」のチェックを外した時はダブルクリック)するとマウントされます。

 ↑
こんな感じでマウントされます。一時、下のを表示します。
 ↓
「端末」でマウントしたディリクトリに移動します。そして、次を実行します。
マウントしたディレクトリ以下を全部 / にコピーするものですね。
# cp -a ./* /
# sync
sync しようとしたら2文字くらい入力したところでタスクバーとスタートメニューを除いてデスクトップが突然真っ暗になりました。
しかし、画面は生きていると思って sync 入力しました。
ただ、引き続いての操作ができないので、「スタート」→「シャットダウン」→「Xサーバのリスタート」を実行しました。
(ここは、TeraTermでSSH接続してやった方が良かったかもしれません)
もう、この時点で devx_431.sfs はアンマウントされているでしょう。
make があるか見てみました。

 ↑
ありました。
もはや、devx_431.sfs は要らないので「ファイル」で削除しました。
この処理前に 1.1GB あったのが 750MB になりました。これでソースからコンパイルができます。

平成23年08月26日(金) 追記

さっそくコンパイルしてみた。
Perlスクリプトで書かれている puppy personal blog にコメント投稿があった時に管理者あて投稿メールが届くようにしてみた。
sendmailやpostfixのようにメールサーバーとしての機能まではいらないので、 mini_sendmail というものをインストールしてみた。
●ソースのダウンロード
http://www.acme.com/software/mini_sendmail/ から Windows PCにダウンロードした。
mini_sendmail-1.3.6.tar.tar (8KB) -> mini_sendmail-1.3.6.tar.gz にリネーム
●アップロード
FFFTPを使ってアップロードした。アップロード先は /home/takaq である。
●インストール
デスクトップの「端末」またはクライアントPCからSSHでログイン
# cd /usr/local
# mkdir src
# cd src
# mv /home/takaq/mini_sendmail-1.3.6.tar.gz .
# tar xzvf mini_sendmail-1.3.6.tar.gz
# cd mini_sendmail-1.3.6
vi で Makefile の BINDIR = /usr/local/sbin を BINDIR = /usr/bin に変更
# make
# make install
make で次の Warning 出たけどかまわず続行
gcc -O -c mini_sendmail.c
gcc -O -s -static mini_sendmail.o -o mini_sendmail
mini_sendmail.o: In function `main':
mini_sendmail.c:(.text+0x6b0): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
mini_sendmail.c:(.text+0xb27): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
# ls -l /usr/bin/mini_sendmail
-rwxr-xr-x 1 root root 448104 2011-08-26 20:52 /usr/bin/mini_sendmail
  ↑
うん、無事に出来たようです。
●テスト
puppy personal blog のスクリプト pup_pplog.pl で次の箇所を訂正
our $config_sendMailWithNewComment = 0;  # コメントがあったらメール送信する (0 = No, 1 = Yes)※ sendmailが利用できる場合
    ↓
our $config_sendMailWithNewComment = 1;
open (MAIL,"|/usr/lib/sendmail -t");
    ↓
open (MAIL,"|/usr/bin/mini_sendmail -ftakaq\@libretto.takaq.jp -slibretto.takaq.jp -t");
これでコメント投稿したらちゃんとメールが届きました。使いかってが良くなってきました。
※mini_sendmail は、sendmail のオプションである -f と -s しか使えません。(-f, -sの後ろにスペースを入れてはいけません)
-f the from email address
-s the smtp server to direct the email through - this allows a third party smtp server to be used
Perlとかのスクリプトでは次のように使うとよいです。
sendmail_path = /usr/bin/mini_sendmail -fyou@yourdomain.com -ssmtp.yourmailserverdomain.com -t

戻る

サイトトップへ