nDiki : dh-make-perl

dh-make-perl

CPANにあるPerlモジュールの source tar ball から debパッケージを作るツール。

例:

 dh-make-perl --cpan PPM::Make --build

関連情報

スポンサード リンク

2003年12月26日 (金)

[ WiKicker ] deb 化

WiKicker開発PCを移行(DynaBook -> ThinkPad)してから、手元で動作確認をする環境を用意していなかった(実サーバ上でテストしている)。 そろそろまた大幅な改造をする予定なので、手元に動作環境を作らねば。

ということで、これを機に deb も作るかなと。 dh-make-perl で雛型を作ってパッケージ化。 ライブラリ部分はこれで簡単にまとまるのだが、CGI プログラムCSS、デフォルトプロパティファイルをどうやって提供するかな。 実際、今の source tar ball でも提供してないし。

[ 12月26日全て ]

2004年1月23日 (金)

[ Perl ] Devel::Cycle

WiKickerメモリ消費量を抑えるためにメモリリークチェック用モジュールをいくつか試してみる。

  • Devel::Leak - リークをチェックするコードの最初と最後にサブルーチンを呼ぶ。リークはアドレスで表示される。
  • Devel::LeakTrace - use すると勝手にプログラムのリークをチェックする。表示は Devel::Leak と同じタイプ。dh-make-perl でうまくパッケージ化できなかったので試すのやめ。
  • Devel::ObjectTracker - perl -d:ObjectTracker ... として使用。プログラム実行のトレースをファイルに書き出す。デフォルトで標準出力にメッセージを吐くのでCGI プログラムでは困る。実行時ディレクトリに .objecttracer というファイルを置きその中に $Devel::ObjectTracker::verbose = 0; と書いておけば最初から出力を抑制しておける。が、試してみたらセグメンテーションフォルト。
  • Devel::Cycle - 指定したリファレンスを辿り循環参照が無いかを検出するサブルーチンを提供。
  • Test::Memory::Cycle - 上記のテストハーネス用のインタフェース

結局うまく使えそうなのは、Devel::Cycle ぐらいかな。 循環参照を発見した場合の表示は見やすい。 WiKicker の何か所かでチェックしてみたけど、今のところ見つからず。

[ 1月23日全て ]

2004年7月19日 (月)

PAR

いやな日記で紹介されている PAR を試してみた。 PARWindows に限らず実行形式のファイルを生成する事ができる (UNIX 系ではメリットは少ないかもしれないが)。

PAR ファイル (ZIP) として必要なスクリプトやモジュールをパッケージ化できるのも嬉しい。 Perl は便利なのだが他人に使ってもらう時に面倒で JavaJAR ファイルが羨しかったのだが、まさにそれを実現してくれる (実行可能ファイルにしてしまうともっとお気楽)。

また PAR ファイルHTTPサーバ上においておいてリモートから取得できる機能もあり、Java Web Start に近い使い方ができそうである。

Debian BOX に入れて遊んでみた。sid でもパッケージになっていないので dh-make-perl でパッケージ化してつっこむ。

スクリプトを実行可能形式に

 $echo 'print "hello\n";' > hello.pl
 $perl hello.pl
 $pp -o hello hello.pl
 $ls -l hello
 -rwxr-xr-x  1 naney naney 1739227 2004-07-19 22:09 hello
 $file hello
 hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
 $./hello
 hello

スクリプトを PAR ファイル

 $pp -p -o hello.par hello.pl
 $zipinfo hello.par
 Archive:  hello.par   1184 bytes   5 files
 drwxr-xr-x  2.0 unx        0 b- stor 19-Jul-04 22:13 script/
 -rw-r--r--  2.0 unx       17 t- defN 19-Jul-04 22:12 script/hello.pl
 -rw-rw-rw-  2.0 unx      262 b- defN 19-Jul-04 22:13 script/main.pl
 -rw-rw-rw-  2.0 unx      434 b- defN 19-Jul-04 22:13 MANIFEST
 -rw-rw-rw-  2.0 unx      214 b- defN 19-Jul-04 22:13 META.yml
 5 files, 927 bytes uncompressed, 678 bytes compressed:  26.9%
 $parl hello.par
 hello

ワンライナーも実行可能形式に

 $pp -o hello -e 'print "hello\n"'
 $ls -l hello
 -rwxr-xr-x  1 naney naney 1739237 2004-07-19 22:19 hello
 $file hello
 hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
 $./hello
 hello
[ 7月19日全て ]

2005年4月22日 (金)

Flickr::UploadLinuxから画像アップロード

naney:10375411 Flickr ではWebページのフォームからの画像アップロードを行えるようになっている。 それに加えて WindowsMac OS X では専用のツールが用意されていて、より快適にアップロードできるらしい。

残念ながら Linux 用のツールは Flickr から提供されていない。 しかし CPAN には Flickr::Upload モジュールがあって、コマンドラインからアップロードができる。

今までWebページのフォームからアップロードをしていたのだが枚数が多いと面倒なので、これを使えるようにしてみた。

インストールはまず依存している XML::Parser::Lite::Tree を dh-make-perl で deb 化してインストール。続けて Flickr::Upload も deb 化してインストール

あとは、Flickr に登録してあるメールアドレスとパスワードを設定ファイルに書いて画像アップロード

 touch $HOME/.flickrrc
 chmod 600 $HOME/.flickrrc
 echo email=naney@example.com > $HOME/.flickrrc
 echo password=secret >> $HOME/.flickrrc

 flickr_upload *.jpg

お手軽。

必要があれば title や tag もコマンドラインオプションで指定できる。 FlickrWeb上での編集機能がよくできているから、1枚づつ違うタイトルやタグをつけてもいい。よっぽど枚数が多い時はテキストファイルにまとめて書いておいて flickr_upload をまわすとか、Flickr::Upload モジュールを直接使って処理するといったこともできるであろう。

[ 4月22日全て ]

2005年5月19日 (木)

DBD::Oracle 1.16 を Debian GNU/Linux sid に入れる

インストール方法は「Instant Client10g」を参考にした。

Oracle クライアントライブラリを取得

Oracle Technology Network License のもとで配布されている、Oracle Database 10g の instant client を利用する。 30日間試用可能。

  • instantclient-basic-linux32-10.1.0.3.zip
  • instantclient-sdk-linux32-10.1.0.3.zip
  • instantclient-sqlplus-linux32-10.1.0.3.zip

をダウンロード。

Oracle クライアントライブラリを展開

/usr/local/oracle の下に展開。シンボリックリンクをいくつか設定する。

 mkdir /usr/local/oracle
 cd /usr/local/oracle
 unzip /tmp/instantclient-basic-linux32-10.1.0.3.zip
 unzip /tmp/instantclient-sdk-linux32-10.1.0.3.zip
 unzip /tmp/instantclient-sqlplus-linux32-10.1.0.3.zip
 cd instantclient10_1
 ln -s . lib
 ln -s libclntsh.so.10.1 libclntsh.so
 ln -s libocci.so.10.1 libocci.so

ビルド環境を設定

環境変数を設定する

 export ORACLE_HOME=/usr/local/oracle/instantclient10_1
 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH

DBD::Oracle を deb パッケージ化

まずはソースアーカイブを展開。

 tar ztvf DBD-Oracle-1.16.tar.gz
 cd DBD-Oracle-1.16

次に Makefile.PL を編集

 5a6,7
 > push(@ARGV, '-l');
 >
 279c281
 <     my @h_dirs = find_headers();
 ---
 >     #my @h_dirs = find_headers();
 283c285
 <         push @h_dirs, 'network/public';
 ---
 >         #push @h_dirs, 'network/public';
 289c291,292
 <     my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
 ---
 >     #my $inc = join " ", map { "-I$OH/$_" } @h_dirs;
 >     my $inc ="-I/usr/local/oracle/instantclient10_1/sdk/include";
 725c728
 < exit 0;
 ---
 > #exit 0;
 1606a1610
 > 1;

ヘッダファイルディレクトリ自動取得を止めて決め打ちにし、また Makefile.PL 実行時に -l を指定するようにする。 それから dh-make-perl がモジュール依存関係取得するため Makefile.PL を require した際に真を返さないでエラーになってしまうようなので、これも修正。

でパッケージ化。

 rm META.yml # あると dh-make-perl が deb パッケージ名をつけ間違える?
 dh-make-perl --build --notest

deb パッケージ

 libdbd-oracle-perl_1.16-1_i386.deb

ができあがるので、これを dpkg でインストール

実行時

とりあえず、手近のサーバに接続して、簡単な select が動くことを確認。

いまのところ DBD::Oracle を使用するPerlプログラム実行時にも LD_LIBRARY_PATH を同様に設定しておく必要あり。

Makefile.PL 書き換え時に、

 $opts{dynamic_lib}->{OTHERLDFLAGS} .=
   '-Wl,-rpath -Wl,/usr/local/oracle/instantclient10_1';

-rpath を指定してみたが、

 DBI connect('host=192.168.x.x;sid=dbsid','usr',...) failed: ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 3
 ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at test.pl line 5.

というエラーが出て駄目。

[ 5月19日全て ]

2008年8月13日 (水)

Twitter の following を整理

Twitter の following をがっつり整理した。

「フォロー通知を受けた人」や「follow している人の @ 相手」や「Blog などで Twitter していると知った人」などについて add することはよくあるのだけれども、remove する機会は多くない。 たまに follows リストの上から順に見ていって「もう飽きちゃって放置状態の人」なんを remove したりするぐらい。 しかし「もう飽きちゃって」の人はもう発言していないから、自分のタイムラインには影響がなかったりする。

フォロー通知を受けてひとまず add してみた人から、逆にその後 remove されて片想い状態なんかも結構多そうだ。 それとフォロー通知を受けた時にひとまず様子見にしてしまった人ももう追加することはまずなかった。

最近話題になっている follow 数上限にひっかかるまではまあいかないのだけれど、たまには見直しておくか。

を使ってみた。WWW::Scraper は Debian パッケージがないようなので、dh-make-perl してインストール

で実行してみたところ、片想いが百数十人、片想われは spam もいて二百数十人。 follwing、followers が 六百人台だったで相思相愛は半分ぐらいって感じか。

片想いはある程度思い切って減らした。 現在の数は以下。

  • Following 460
  • Followers 662

これでタイムラインの雰囲気はどう変わるかな?

連動して Google リーダーへの Blog のフィード登録も整理できるといいんだけれど、さすがにそれは無理か。

[ 8月13日全て ]

2009年8月28日 (金)

今日のさえずり - 「チューペットみたいな何か」いっぱいあった

2009年08月27日

  • 09:28 前に座っている人のワイシャツの胸ポケットに現ナマがちらり。 [mb]
  • 09:37 「もしよかったらこれ読んでください」とラブレター風の封筒を配るオネエサンたち。アイデアは認める。 #Akihabara L:秋葉原 [mb]
  • 11:52 PAR::Environment の Pod 読むと PAR_GLOBAL_* 環境変数の説明が書いてあるんだけれど、ソースコード見ても全然使ってないんだよなあ。 *P3
  • 12:27 HDD もう1台買った。デジカメデータ用。 [mb]
  • 12:40 マクドナルドの最近のコールドカップのフタ、まんなかがオデキみたいでちょっと抵抗がある。 *P3
  • 17:38 jQuery + Flexigrid を HTML 出力に追加。 *P3
  • 19:45 えーっ、チューペット生産終了になってたのか。 [mb]
  • 19:49 あれ? チューペットって真ん中で折れるやつだっけ? 折れないやつだっけ? [mb]
  • 19:59 西友に行ってみたら「チューペットみたいな何か」いっぱいあった。焦るな。 [mb]
  • 20:02 @hitoxu もう食べられないと思うと無性に欲しくなりますね、チューペット。 [mb]
  • 23:30 2009年8月25日の歩行: 8690歩、6.69km、79分、5.03km/h、消費 319.2kcal、脂肪燃焼 45.6g、4.1エクササイズ。 *P3
  • 23:32 2009年8月26日の歩行: 855歩、0.63km、9分、4.05km/h、消費 32.8kcal、脂肪燃焼 4.7g、0.4エクササイズ。 *P3
  • 23:34 2009年8月27日の歩行: 7853歩、6.29km、58分、6.49km/h、消費 286.6kcal、脂肪燃焼 40.9g、4.2エクササイズ。 *P3

2009年08月28日

[ 8月28日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.105591s / load averages: 0.40, 0.46, 0.47
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker