トップ(最新) | <前

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.

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

スポンサード リンク


[ 5月19日全て ]

2006年2月18日 (土)

Mozex を使って Firefox 1.5.0.1 の textarea の内容を Emacs で編集する このエントリーを含むはてなブックマーク

uimuim-skkFirefox のキーバインディングをきちんと設定していないせいか、どうも 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 に直しておこう。 これで CVSSubversion のコミット時に新しい Emacs を起動しなくてよくなる。

とっとと設定しておけば良かった。


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 というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。


[ 2月18日全て ]

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 は入力を省略してくれる。

芋蔓式インストールで大量にインストールする際などに便利。


[ 6月28日全て ]

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 属性で使う値として返すようになっていたから(って書いたのは昔の自分)。

次回のリリースで修正。


[ 11月10日全て ]

2006年11月27日 (月)

Windows 上の WiKicker で履歴機能が動かないのは環境変数 TZ のせい このエントリーを含むはてなブックマーク

WiKickerWindows 上で動かすとなぜか RCS まわりがうまく動かなくて、けれども「何だろう」とほっぽっておいたのだが、動作確認しなおしてみて判明。

Windows 版の RCS環境変数 TZ がないと、 ci でチェックインする際などでエラーになってしまうのであった。 去年の動作テストの際に確認した内容だったのだが、すっかり忘れてた。


[ 11月27日全て ]

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 で書いちゃった方がよっぽど楽。


[ 12月11日全て ]

2006年12月18日 (月)

xyzzyUSB メモリ上の 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環境変数を設定する機能があればいいのだけれど。


[ 12月18日全て ]

2007年1月3日 (水)

GIMP Portable が遅い このエントリーを含むはてなブックマーク

スキャナでの取り込みを、ポータブル HDD (HDMC-U12)上に置いた GIMP Portable で行ってみた。

妙にとろいので設定を確認したら、テンポラリディレクトリ・スワップディレクトリが GIMP Portable のあるドライブ上にあった。 TrueCrypt の仮想ドライブ上で、かつ遅い PC (Pentium III 450MHz) ということもあり余計遅くなってたというワケ。

設定は Data/settings/gimprc にあるのだけれど、どう設定するのがいいのだろう。 TMP / TEMP 環境変数を見てそこを自動的に設定できればいいのだけれど。


[ 1月3日全て ]

2007年10月18日 (木)

今日のさえずり - 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。 このエントリーを含むはてなブックマーク

  • 10:17 プロジェクトのスケジュール共有用に Google カレンダー上に、1つカレンダーを新規作成。 *Tw*
  • 10:50 GNU Make (Win32) では変数を設定しても、そのままではコマンド実行時の環境変数には入らないことを思い出した。 *Tw*
  • 11:57 最近 CM で「しりあがり寿」の名を見る。うちでは画伯扱い(ほぼ日手帳の影響)。 *Tw*
  • 12:32 着もと化した。 *Tw*

[ 10月18日全て ]

2008年1月30日 (水)

KDE Installer for WindowsKDEインストール このエントリーを含むはてなブックマーク

Windows 向け KDEインストーラが公開された。 一昨年の4月ぐらいから、Linux デスクトップは KDE ベースにして使っていることもあって、Windows でも(ファイラとして) Konqueror を使ったりしたいと思っていたので、早速 Windows XP BOX にインストールしてみた。

インスーラはネットワークインストール用のもので、必要なパッケージを選ぶとダウンロードしてインストールされるタイプ。

  1. kdewin-installer-gui-0.8.5.exe をダウンロードして、c:\usr\local\KDE に置く。
  2. kdewin-installer-gui-0.8.5.exe を実行。
  3. インストーラに従ってパッケージを選択してインストール
    • 最低必要なのは dbusmsvc, kdebase-msvc, kdewin32-msvc, qt-msvc, vcredist らしい
  4. 環境変数 PATH に C:\usr\local\KDE\lib を追加。
  5. 環境変数 KDEDIRS を作成し C:/usr\local\KDE を設定。
  6. コマンドプロンプト上 c:\usr\local\KDE の下で以下を実行。
    • bin\update-mime-database C:\usr\local\KDE\share\mime
    • bin\kbuildsycoca4 --noincremental
  7. /usr/local/KDE/bin/linguist.exe を実行してみて動くことを確認。

うまく入ったみたいなので、さっそく Konqueror を起動してみた。

……なんかかなりもっさりしているな。 fish も使えないや。 [Settings] -> [Configure Konqueror...] してみたら落ちた。

うーん、まだ駄目っぽい。 今後に期待。


[ 1月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)

この日記のはてなブックマーク数 Add to Google RSS

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)