nesugi.net/diary![]() ![]() ![]() ![]() ![]() ![]()
|
|
前にどこかに書いたような気がしたんだけど、にっき過渡期だったらしく、どこのサイトに書いたのかわからなくなった模様。しょうがないので、思い出しつつまた書いてみた。ちなみに参考にしたのは、[Debianでのdebパッケージの作成方法(個人利用レベル)]。
まず最初、必要なものを入れる。いろいろ書いてあるけど、どれがどこで遣われてて、本当に必要なのかは不明。でもdh-make*1、debhelper以外はだいたいはいってるような気もする。
で、適当にディレクトリ掘って、./configure; make install で全部はいるぐらいまでに展開。もちろんテストは別でしてあることが前提。カレントディレクトリを./configureできるディレクトリに移して、
dh_make -e [MailAddress]
元サイトだと-fオプションが付いていたけど、これはsourceのtar玉を指定するために使うみたいなので、patchを当ててる場合とかにはやらない方がいいんじゃないかということで却下。もちろん-eもいらないような気もする。パッケージタイプはよくわからないのでsingleを選択*2。
dh_makeがdebianディレクトリを作るので、その中のcontrol, copyright, changelog, rulesを変更するといいらしい。といっても、自分で使うだけだったらrulesだけ、それもいじる必要がなければ放っておいていい気がする。
ここまでやったら最後は、./configureのあるディレクトリで、
dpkg-buildpackage -rfakeroot
でおしまい。一個上のディレクトリにdebファイルができているはず。
※ 6/11 追記: そういや、前はdebuild*3とかいうプログラムを使ったような気もしてきた。どっちが簡単だったんだっけ・・・まぁいいか。
Rubyで多重ループから一気に抜け出る場合のやり方について。なんど調べても必ず忘れるのでメモ。
[Rubyリファレンスマニュアル - trap::スコープ、制御構造]にも書いてあるけど、catch/throwを使うと良いらしい。ちなみに例外の補足と発生に使うのはrescue/raise。ややこしい。
Rubyは結構使うんだけど、:で始まるシンボルって、そんなに使わないんだよねぇ。また結局フラグ立てて抜け出すとかってしてしまいそう・・・
なんてことができるらしい。.emacsに一行足すだけ。
(which-function-mode 1)
結構便利な気もするけど、関数名(+クラス名)が長いと右端が消えて読めないとか、そもそもバグはスクロールの間に隠れているのだから、もっと短くしろとか・・・
でもまぁ、日付をだしてもしょうがないし、こっちに変更することにした。
[TinySVM: Support Vector Machines]をPerlから使いたくて、モジュールを入れたいんだけど、installに失敗するとか相談を受けたので、調べてみた。
・・・のが、ずっと昔の話。そのときは結構いろいろ調べてみて、原因らしきものも特定したんだけど*1、結局まじめに直すのはめんどくさいのでやめて、強引な方法で解決した。で、そのときのメモが発見されたので、以下はその方法。
'LIBS' => '-L/usr/local/lib -ltinysvm'これを
'LIBS' => '-L/usr/local/lib -ltinysvm -lstdc++'こんな感じ。
でできる、とメモには書かれてた。なんか、バージョンが違うと、モジュールの使い方が微妙に違うという話を聞いたような気もするけど、その辺はよく知らない。まぁ、自分が使ってるんじゃないし・・・でも、特に不具合で文句を言われた気もしないので、使えるんじゃないかな。
原因特定すれば、パッチ作って送ったりできるんだけど、この方法だと、報告するのすら情けないので、放置。
*1 debianの何かが原因だったような・・・でも、gccとかglibだったような気もする・・・いや、swigとperlのバージョンだったかも・・・
プログラムのバグ出しをしていたら、[ココログ]の出力しているatom.xmlがなんかおかしいらしいということが判明。
各entry要素のcontentに、普通のatom*1では「<content type="text/html" mode="escaped" ... >」という感じで書いてあるんだけど、cocologでは、この形で書いてあるentryと、「<content type="application/xhtml+xml" ... >」と書いてあるentryが混在してるみたい。ちなみに、mode=escapedと書いてあるentryの中身はCDATAで囲まれているんだけど、mode=escapedになってない方はCDATAになってないみたい。
で、atom的にはどちらを使うのが正しいのか、もしくは両方正しいのかよくわからないのだけど、比較的メジャーっぽいPerlモジュールのXML::Atomでは、mode=escapedになってないentryに書かれている日本語は文字実体参照に変換されてしまうみたい。どうしたもんかね・・・
Perlのことは全然わからないので、今日使った中でこの先使えそうなものだけをメモ。
ってか、最後の方のやつは、perlの入門本でも読めば載ってそうだけど。というか、俺のラクダ本、一度も開かないまま、誰かにパクられたんですが・・・誰が持ってったんだろ。こうなるとちょっと返して欲しい。
それにしても、ほんとにPerlやりたくないんだからさ、勘弁してよ・・・
[Gmail Notifier]をダブルクリックしたときに、IEではなくてSleipnirを使う方法。
これ、元々は別のところに書いてたtipsなんだけど、そっちは消すかもしれないし、今日使ったのでこっちに再掲。
方法の概要としては、レジストリをいじって、レジストリ中に書かれているブラウザリストみたいなものにsleipnirを追加する、って感じだったと思う。で、具体的にどうするかというと、sleipnir.regみたいなREGファイルを作成して*1、実行すればおっけ。このファイルは、sleipnirの実行ファイルのパスを"C:\Program Files\Sleipnir\Sleipnir.exe"に決めうちしているので、実行ファイルの場所が違う場合は書き換える必要あり。デフォルトのインストール先にしてる場合はこのREGファイルをダウンロードして、そのまま実行すれば大丈夫なはず。レジストリを書き換えた後は、GMail NotifierのオプションのところにSleipnirってのが追加されてるので、それを選択すれば、次回からはダブルクリックでsleipnirが立ち上がるようになっているはず。
この設定をしておくと、GMail以外でも便利なことがあるかもしれないので、やっとくといいかも。
なぜか今まで敬遠していたxyzzyを初めて使ってみた。結構いいかも。まだあんまりいじってないけど、いくつかの設定で気づいた点をメモ。
NATテーブル*1がさっさとクリアされてしまうために、ssh接続が切れまくってしまうという問題が発生。これって、高級なルーターを使ってる場合はちゃんとクリアするまでの時間とかを設定出来るらしいんだけど、そうでない場合の対処法。
参考にしたページがわからなくなってしまったので、いくつかのパターンがあるらしいのだけれど、とりあえず今回使った方法は、ルーターから飛んだ先のsshdで、ClientAliveIntervalとClientAliveCountMaxを設定する方法。具体的には、/etc/ssh/sshd_configに以下を追加。
ClientAliveInterval 5 ClientAliveCountMax 120
ただこの方法は、Opensshを使っていて、sshがプロトコル2で接続した場合しか有効じゃないとかいう噂も。本当のところはどうなんだろね。
ちなみに他の方法は、sshでつないでおいて、その中で常にパケットを飛ばし続けるとか、そんな方法だったような気がする。
追記: あれ、でも、今回はこれでも切れちゃったぞ。前の環境の時はよかったんだけど・・・
coLinuxをinstallしてたら、なんだかよくわからないけど、
E: Dynamic MMap ran out of room E: Error occured while processing romeo (NewVersion2) E: Problem with MergeList /var/lib/apt/lists/dennou-k.gaia.h.kyot ry_Linux_debian_dists_stable_main_binary-i386_Packages E: The package lists or status file could not be parsed or opened
こんな感じのエラーが出て、失敗した。
原因はなんなんだかよくわからないけど、aptで使うキャッシュ容量(?)を増やすといいらしい。例えばここ(http://www.namazu.org/~tsuchiya/debian/x20/2003.html)では、
/etc/apt/apt.conf.d/90cache-limitというファイルを作って、その中にAPT::Cache-Limit 12582912;と書いてる。今回の場合もこれでapt-get updateできるようになった。
mmapがout of roomってことは、やっぱりメモリ周りなのかな。まぁ、キャッシュっていってるしなぁ。
あ。エラーメッセージの右端が切れてる。矩形選択したからか・・・
*1 というのが正式名称で良かったんだっけ?