nDiki : 環境変数
Related term
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.
というエラーが出て駄目。
- ActivePerl で Ming (2005-02-23)
- Berkeley DB 4.2.52 + DB_File 1.808 をホ... (2004-02-08)
- sid の CinePaint がプラグイン読み込みでエラー (2006-04-15)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- 古い Crypto++ は古い GCC で (2006-02-07)
2006年2月18日 (土)
■ Mozex を使って Firefox 1.5.0.1 の textarea の内容を Emacs で編集する

uim、uim-skk と Firefox のキーバインディングをきちんと設定していないせいか、どうも textarea での日本語編集にストレスを感じる。 Wiki 等で textarea での編集作業も少なくないので、Mozex を使って Emacs で編集できるように設定しておくことにした。
より降旗氏が公開されている Firefox 1.5以降用 mozex 1.07.1 日本語 version (1.5.0.1 インストール対応)を Firefox にインストール。
そういえば今まで emacsclient も使ったことがなかったな。Emacs 立ち上げっぱなしのくせに。まずは起動している Emacs 上で M-x server-start (.emacs で (server-start))しておく。
Mozex の設定で
Directory for temporary files: /tmp Textareas: /usr/bin/emacsclient %t
を設定。自分の環境だと Commands は絶対パスでないとうまく呼べないようだ。
これで textarea 上で右クリックし、[mozex] -> [Edit Textarea] で開いている Emacs 上に Textarea の内容が新しいバッファで開く。 編集して保存して C-x # し、Web ブラウザ側に戻ると反映される。
便利便利。
ところで Emacs server と gnuserv とどっちがいいのかな? 特に設定なしでどちらも使える。 何も設定していない状態だと gnuserv の方は新しい frame が開いて好みじゃないので、とりあえずは Emacs server を使うことにする。
ついでに EDITOR 環境変数も emacsclient に直しておこう。 これで CVS、Subversion のコミット時に新しい Emacs を起動しなくてよくなる。
とっとと設定しておけば良かった。
- skkinput がよく落ちるので uim-skk に乗り換え (2005-09-22)
- Linux 母艦ノート PC を使わずに仕事ができるかチャレンジ (2007-08-20)
- X-Deep/32 Xサーバ (2005-03-30)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- vc-svn.el / psvn.el (2004-07-30)
■ Perl CGI プログラムのテストには WWW::Mechanize::CGI を

CGI プログラムを書いていて、いつも困るのがリグレッションテスト。
パッケージのビルド時に実行するテストスーツ (make check / make test 用テストプログラム群) に含めておきたいが、さすがにその場で Web サーバの下へセットアップするわけにもいかない。 ミニ Web サーバを同梱してテストスーツ内で起動する方法はちょっとおおがかかりだし、ポート番号の選択やらサーバの停止の問題もあって、かなり面倒。
結局、テストスーツの中で環境変数や標準入力など CGI リクエスト環境をセットアップして、CGI プログラムを実行するという王道(?)かつ泥臭いテストを書くことになったりする。
何かいいものはないかと探していたところ、WWW::Mechanize::CGI というものをみつけた。
LWP::UserAgent を継承した WWW::Mechanize モジュールは Web ブラウジングを容易にする有名どころのモジュールである。
WWW::Mechanize::CGI モジュールはさらにこれを拡張したモジュールで、HTTP リクエストを、仮想的に CGI プログラムやサブルーチンへの呼出しにしてくれる。 これを用いるとあたかも Web サーバ上の CGI プログラムにリクエストしレスポンスを受けとっているかのように、テストプログラムを書くことができる。
素晴しい。
さっそく WiKicker のテストを書き換えてみた:
use Test::More tests => 2;
use WiKicker::WikICGI::Controller;
use WWW::Mechanize::CGI;
use File::Temp qw(tempdir);
use File::Spec;
my $www_dir = tempdir(CLEANUP => 1);
my $mech = WWW::Mechanize::CGI->new;
$mech->cgi(sub {
$ENV{PATH_INFO} = '' if $ENV{PATH_INFO} eq '/';
WiKicker::WikiCGI::Controller->new->run});
$mech->env($mech->env,
SCRIPT_FILENAME => File::Spec
->catfile($www_dir . '/wiki'),
SCRIPT_NAME => '/wiki');
my $response = $mech->get('http://localhost/wiki');
ok($response->is_success);
like($response->content,
qr|<title>WikiForum\[WiKicker\]: FrontPage</title>|);
WWW::Mechanize::CGI オブジェクトを new した後、cgi メソッドで CGI サブルーチンを指定するか、cgi_application メソッドで外部 CGI プログラムを指定する。 ここでは直接、CGI サブルーチン (WiKicker::WikiCGI::Controller->new->run を実行)を指定した。
なおここで WWW::Mechanize::CGI が使っている HTTP::Request::AsCGI 0.5 における PATH_INFO の扱いが Apache などとは違って、空でも必ず '/' が入るようになっている。 これだと WiKicker では困るので、サブルーチンのところで修正している。
後は必要ならば WWW::Mechanize::CGI::env で、追加の環境変数設定を行っておく。
セットアップが済めば通常の WWW::Mechanize と同様に get 等でリクエストを行いレスポンスを受けとることができるようになる。
いい。しばらく試してみて不具合がなさそうなら、定番のテストスタイルにしたい。
ちなみに Test::Harness 用の Test::WWW::Mechanize にあわせて、Test::WWW::Mechanize::CGI というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。
- Test::WWW::Mechanize で Web アプリケーションをテ... (2006-09-13)
- 一般ユーザで Apache 2.0 を起動する最小限の httpd.conf (2006-07-15)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- CGI プログラム、Out of memory! に泣く (2001-01-04)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
2006年6月28日 (水)
■ ExtUtils::MakeMaker で prompt

Perl でy/n 入力やパス入力などを対話的に行う簡単なセットアップツールをたまに書きたくなることがある。 CPAN.pm の初期化や Module::Install で feature の選択の時に入力を求められる形のアレ。
何かいいモジュールがあるのかなと思ったら、上記の2つは ExtUtils::MakeMaker::prompt を使っていた。 灯台下暗し。 ExtUtils::MakeMaker は標準でいつでも使えるから、ちょっとしたデフォルト値付き問い合わせをするのに便利。
@ Perl モジュールインストール時の、対話入力をデフォルトで済ます環境変数
それから PERL_MM_USE_DEAFAULT という環境変数の使い方もチェック。
Perl モジュールをインストールする際にいろいろ問い合わせに答えるのが面倒な場合 (どうせ全部デフォルトで OK な時など)、PERL_MM_USE_DEFAULT=1 としておくと ExtUtils::MakeMaker::prompt は入力を省略してくれる。
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- 野良パッケージと依存 Perl モジュールのインストールセット をCPAN... (2006-02-11)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- CPAN のPerl モジュールを RPM パッケージ化する (2003-04-22)
- bundle を作成して Perl モジュールをまとめてインストール。 (2004-10-21)
2006年11月10日 (金)
■ WiKicker でドメイン名なしの URL でセッションがはれなかった理由

http://example/wiki
のように、ホスト部がドメイン名を含まないホスト名のみの URL でアクセスした場合、WiKicker では cookie ベースのセッション管理がうまく動かなかった。
cookie の仕様では、cookie の domain 属性で指定できる文字列はピリオドをいくつか含まなければならないことになっている。
しかし、ホスト名だけでアクセスしたサーバへは Web ブラウザは cookie を送らないというのは誤解。 domain 属性が省略されている cookie の場合は (アクセスするサーバの名前に含まれているピリオドの数が条件を満たしていなくても)ちゃんと cookie を発行したサーバへリクエストと一緒に送ってくれる。
WiKicker で何で駄目か確認したら、configuration オブジェクトの「cookie の domain 属性を決めるメソッド」で、「cookie.domain というプロパティ設定があればそれを」、「無ければ HTTP_HOST 環境変数の値を」 domain 属性で使う値として返すようになっていたから(って書いたのは昔の自分)。
次回のリリースで修正。
- WiKicker における PageName 最長文字数 (2006-06-10)
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
- ケータイ用にプライベート Wiki を設置 (2008-01-07)
- WiKicker 0.31 リリース - s キー問題を修正 (2006-05-28)
- FoxyProxy と autossh で社内 Web ページを閲覧 (2006-06-03)
2006年11月27日 (月)
■ Windows 上の WiKicker で履歴機能が動かないのは環境変数 TZ のせい

WiKicker を Windows 上で動かすとなぜか RCS まわりがうまく動かなくて、けれども「何だろう」とほっぽっておいたのだが、動作確認しなおしてみて判明。
Windows 版の RCS は 環境変数 TZ がないと、 ci でチェックインする際などでエラーになってしまうのであった。 去年の動作テストの際に確認した内容だったのだが、すっかり忘れてた。
- WiKicker の Win32 対応 (2005-04-04)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- PATH_INFO のかわりに REQUEST_URI と SCRIPT_... (2005-04-15)
- Win32 で WiKicker が落ちるのは binmode の設定忘れのせい (2005-04-18)
- WiKicker でドメイン名なしの URL でセッションがはれなかった理由 (2006-11-10)
2006年12月11日 (月)
■ SpiderMonkey の素のインタプリタでは CGI プログラムには役立たず

Ajax を使うプログラムを書くことになりそうなので、どうせならサーバーサイドも JavaScript で書けないかなと調査。 有名どころの JavaScript エンジンというと SpiderMonkey なので、まずはこれでいけるか確認。
Debian GNU/Linux sid だと spidermonkey-bin パッケージに JavaScript shell プログラム smjs (js) が含まれている。 とりあえずコマンドライン引数 (arguments)と環境変数(environment)と標準入力(readline())から入力ができて、標準出力に出力 (print()) ができるので、最低限の CGI プログラムは書けそうだ。
ただこれだけでできる範囲のことなら、クライアントサイドでできてしまう。 単独だとあまり意味ないな。やはり embedded 用か。
Perl の JavaScript::SipderMonkey モジュールや JavaScript モジュールを使うと Perl のサブルーチンを JavaScirpt プログラム側から呼べる関数として与えた中で JavaScript を実行できるのでいろいろ遊べるようになる。 ただこれだと、Perl で書いちゃった方がよっぽど楽。
- 一般ユーザで Apache 2.0 を起動する最小限の httpd.conf (2006-07-15)
- DBD::Oracle 1.16 を Debian GNU/Linux s... (2005-05-19)
- JavaScript でのプログラミングやっぱり面倒くさい (2006-07-23)
- [ WiKicker ] SpeedyCGI (2003-10-17)
- Template Toolkit のテンプレート上で対話的入力 (2004-10-16)
2006年12月18日 (月)
■ xyzzy を USB メモリ上の PStart から起動できるようにする

@echo off set XYZZYHOME=%1\home\naney set XYZZYCONFIGPATH=%1\home\naney set XYZZYEXE=%1\app\xyzzy\xyzzycli.exe shift start %XYZZYEXE% %1 %2 %3 %4 %5 %6 %7 %8 %9
というバッチファイルを作成して、PStart からこのバッチファイルを第1引数に %pdrive% を指定して実行するように設定。
以前試した read only なネットワークドライブからの起動ほどトリッキーな設定はしないで OK。 PStart に環境変数を設定する機能があればいいのだけれど。
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- USB メモリへのポータブルアプリケーションの詰め込み開始 (2006-12-16)
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- TrueCrypt で USB メモリに Windows と Linux ... (2006-12-14)
- NSIS 2.22 は Linux でビルドできず (2006-12-20)
2007年1月3日 (水)
■ GIMP Portable が遅い

スキャナでの取り込みを、ポータブル HDD (HDMC-U12)上に置いた GIMP Portable で行ってみた。
妙にとろいので設定を確認したら、テンポラリディレクトリ・スワップディレクトリが GIMP Portable のあるドライブ上にあった。 TrueCrypt の仮想ドライブ上で、かつ遅い PC (Pentium III 450MHz) ということもあり余計遅くなってたというワケ。
設定は Data/settings/gimprc にあるのだけれど、どう設定するのがいいのだろう。 TMP / TEMP 環境変数を見てそこを自動的に設定できればいいのだけれど。
- 1インチポータブル HDD HDMC-U12 インプレッション (2006-12-28)
- Google ブラウザではなかった Google Chrome (2008-09-03)
- 今日のさえずり (2007-10-03)
- Linux で入力して Windows で参照できるパスワード管理ツール ... (2006-12-31)
- 水深1m防水のポータブル HDD HDMC-U12 (2006-12-27)
2007年10月18日 (木)
■ 今日のさえずり - 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。

- 10:17 プロジェクトのスケジュール共有用に Google カレンダー上に、1つカレンダーを新規作成。 *Tw*
- 10:50 GNU Make (Win32) では変数を設定しても、そのままではコマンド実行時の環境変数には入らないことを思い出した。 *Tw*
- 11:57 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。 *Tw*
- 12:32 着もと化した。 *Tw*
- SCons は GNU Autotools のかわりになるか (2005-04-20)
- WiKicker の Win32 対応 (2005-04-04)
- ほぼ日手帳をやめてミニ6穴見開き1週間ダイアリーに (2008-01-21)
- 来年のほぼ日手帳はナイロン・マンゴー2008 (2007-11-12)
- ほぼ日手帳復帰 (2008-07-22)
2008年1月30日 (水)
■ KDE Installer for Windows で KDE をインストール

Windows 向け KDE のインストーラが公開された。 一昨年の4月ぐらいから、Linux デスクトップは KDE ベースにして使っていることもあって、Windows でも(ファイラとして) Konqueror を使ったりしたいと思っていたので、早速 Windows XP BOX にインストールしてみた。
インスーラはネットワークインストール用のもので、必要なパッケージを選ぶとダウンロードしてインストールされるタイプ。
- kdewin-installer-gui-0.8.5.exe をダウンロードして、c:\usr\local\KDE に置く。
- kdewin-installer-gui-0.8.5.exe を実行。
- インストーラに従ってパッケージを選択してインストール。
- 最低必要なのは dbusmsvc, kdebase-msvc, kdewin32-msvc, qt-msvc, vcredist らしい
- 環境変数 PATH に C:\usr\local\KDE\lib を追加。
- 環境変数 KDEDIRS を作成し C:/usr\local\KDE を設定。
- コマンドプロンプト上 c:\usr\local\KDE の下で以下を実行。
- /usr/local/KDE/bin/linguist.exe を実行してみて動くことを確認。
うまく入ったみたいなので、さっそく Konqueror を起動してみた。
……なんかかなりもっさりしているな。 fish も使えないや。 [Settings] -> [Configure Konqueror...] してみたら落ちた。
うーん、まだ駄目っぽい。 今後に期待。
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- ActivePerl で Ming (2005-02-23)
- Google Desktop Linux 版をインストール (2007-07-02)
- 今日のさえずり - Windows XP に入れた Konqueror で... (2008-01-30)
スポンサード リンク
■よく検索されるキーワード
torrent(109) x31(45) thinkpad(31) 動画(29) 提案書(26) mp980(24) 手帳(24) windows(23) linux(23) 画像(21) 使い方(21) リフィル(21) debian(20) usb(20) tc-1(19) perl(19) 筆まめ(18) 壁紙(17) ほぼ日手帳(16) 冷蔵庫(14) ドラマ(13) wiki(13) 書き方(12) ダイソー(12) システム手帳(12) 宮根誠司(12) ノート(11) so905ics(11) 無印(11) バッグインバッグ(11) 映画(11) 設定(10) 修理(10) 宮根(9) ssh(9) a6(9) ほぼ日(9) 黒田征太郎(9) バッグ(9) gmail(8) 感想(8) 娘(8) f-01a(8) メモリ(8) gtd(8) ブログ(8) nikon(8) allinanchor:*.torrent(8) ボールペン(7) 方眼(7) ポイント(7) 4c(7) ヨドバシカメラ(7) ケース(7) twitter(7) apache(7) ht-01a(7) ヨドバシ(7) ubuntu(7) truecrypt(7) n-02a(7) 作り方(7) minolta(7) af(6) インストール(6) ガントチャート(6) mp3(6) zippo(6) hdd(6) emacs(6) レビュー(6) カバー(6) vq1005(6) 日本語(6) ハクキンカイロ(6) 無印良品(6) グレゴリー(6) 交換(6) nikkor(6) pixus(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.094964s / load averages: 0.23, 0.21, 0.23
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク