Home » FreeBSD » Migrate 32bit to 64bit (FreeBSD, GDBM) (Tag: )

Migrate 32bit to 64bit (FreeBSD, PostgreSQL) に続いて、単なるデータコピーで移行が完了しないケースに 1 つに GDBM (GNU dbm) があります。

現在メールフィルタの学習型データベースに bsfilter + gdbm を使用しています。このデータベースファイルが、互換性がありません。

32bit の環境で bsfilter mail_file とすれば即結果が返るにも関わらず、データコピーしただけの 64bit 環境では 完全に沈黙 します。

別の用途と事例では Invalid argument で先に進まないこともある様ですね。PostgreSQL 同様 dump -> restore する以外に方法がない様です。

#// dump

use GDBM_File;
use Fcntl;

    my $src  = 'src.gdbm';
    my $txt  = 'src.dump';

    my %str  = ();
    my $dbh  = tie (%str, 'GDBM_File', $src, O_RDWR|O_CREAT, 0600);
    my $line = '';

    foreach (keys %str) {
        $line .= $_ . "\t" . $str{$_} . "\n";
    }

    undef $dbh;
    untie %str;

    open WRITE, "+>$txt";
    print WRITE $line;
    close WRITE;
#// restore

use GDBM_File;
use Fcntl;

    my $txt  = 'src.dump';
    my $dist = 'dist.gdbm';

    my %str  = ();
    my $dbh  = tie (%str, 'GDBM_File', $dist, O_RDWR|O_CREAT, 0600);

    open READ, "<$txt";
    my @line = <READ>;
    close READ;

    foreach my $line (@line) {
        chomp $line;
        my ($key, $value) = split(/\t/, $line);

        $str{$key} = $value;
    }

    undef $dbh;
    untie %str;

Random Select

Office Desk
久しぶりに靴ひものある革靴を買いました。試し履きした時は、今まで買ったことのある革靴の靴ひもと何か少し違うなと感じた程度でしたが、履いた時のフィット感と軽さとツヤですぐ決めました。購入後の初日にいざ靴
TEJ-75 + JC-120
ひさしぶりにスタジオインした時のカットです。18 – 22 歳頃まで 4 年弱ギター・ベースを触っていました。(BOOWY, COMPLEX, X のコピー)その後一度すべて手放して、20
エビ + 野菜カレー (ルー大盛り, 辛さ 60 倍)
カリーライス専門店 エチオピア 本店 (No. 5 – 辛さ 45 – 50 倍) の続きです。前回は辛さ 50 倍で久しぶりに壁を感じましたが、それでもまだ先に進んでみます。
海鮮天丼 (3)
ここ最近の出張では必ず訪れるランチスポットの 1 つが 海鮮食堂 太陽 (ティーダ) です。片手で収まらない程来ているのに、今だ "エビだけ天丼" しか食べたことがないことにふと気
特製塩らーめん (1)
都内で評価の相当高いつけ麺 道 が隣駅にあって以前から気になっていたため、一度日曜日に訪れてみたものの、あまりの長蛇の列に退散しました。今回は平日で 11:30 開店の 30 分程前に着けば、大して並
魚河岸フライ定食 (2014/01/14)
記事では 築地食堂 源ちゃん (海老かき揚げとお刺身定食) から 1 ヵ月空いていますが、3 日後にまた訪れています。この日は 2013 年最後の出勤日で、取引先の方がご挨拶に来た後、ランチに同行いた
TEJ-75
My Guitar を投稿した 2012/04 以降すでに 2 年も経過しましたが、その後スタジオ入りはせず、自宅で unplugged で時間を見つけて弾いています。2007/10 に再びかつての機
名物黒豚餃子 並盛定食
My Select "日本一シリーズ" 第 3 弾です。お茶の水界隈を 20 年知っている私としては、ここは外せない店舗の 1 つです。知ったのが 12 年程前ですが、ずっと変わら
Drive Network Philosophy
POP サーバプログラムもいくつか存在しますが、比較的マイナーなプログラムを使用しています。その名も popd と極めて汎用的な名称ですが /usr/ports/mail/popd/ に用意されていま
ESXi 5.1 ? Install or Updrade (F1 Details)
VMware ESXi 5.1 Install (ESXi Found – RAID5 ディスク初期化) の続きです。RAID1 を構成するハードディスクの初期化した本数により、VMwar
Valid HTML5 Valid CSS3 Another HTML Lint