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

劇団セット 初夢 (本まぐろ 5 カンセット)
すし銚子丸 (紅白すし合戦 Part 1) の続きです。すでに 10 皿近くをクリアしたところで、まかじきが通りました。自宅 de 与那国産カジキ (Part 2) との区別はつきませんが、カジキと名
ビッグブレックファスト (2)
Google Analytics のトラフィック サマリーを見ていると、"マクドナルド スクランブルエッグ" というキーワードが目に付き始めると同時に、最寄りの 綾瀬店 のたれ幕に
濃厚特製つけ麺 + 大盛り (1)
めん徳二代目つじ田 (濃厚豚崩しつけ麺) から1 ヶ月程空いて、前回気になっていた "濃厚特製つけ麺" を試しました。今回は、店内一番奥の席に案内され、お店の提案する食べ方と黒七味
肉うどん (中盛)
10 月を過ぎた頃から うどん 丸香 (まるか) の夏メニューがお休みに入り、冬メニューが登場しました。肉うどんは冷が消えただけで、温かい方は通年でしたね。"カレー" が登場しまし
WS-C2960S-48TS-L (1)
Cisco Catalyst 2960S IOS Update (Part 2) の続きです。今回は 15.0 系からのアップデートですが、12.2 系とはやや出力が異なりました。アップデート 15.
FreeBSD Logo
Release Informationhttp://www.freebsd.org/releases/Security Information (Supported FreeBSD Releases
Havana カレー (ビーフ, ライス大盛り, ルー大盛り x 2, 辛さ 20 倍)
沖縄出張 (No. 8 ? Havana CURRY) の続きです。前回 2012/10 に久しぶりに訪れた後、東京に戻ってからは 欧風カレー ボンディ (チキンカレー) や カリーライス専門店 エチ
iPhone 6 Plus (Gold)
iPhone 6 Plus (充電 "バッテリーセーバー") の続きです。初回の充電は PC に接続ではなく、USB 電源アダプタを用いて直接充電して 55% -> 80%
Havana カレー (ビーフ, ライス大盛り, ルー大盛り, 辛さ 5 倍)
前日土曜日は 沖縄出張 (No. 7 ? 毛玉) で戯れた後数人で飲み会がありました。退職したスタッフとも再会してのそれは賑やかな会でした。しこたま飲んだ次の日曜日。いつも通り起きて散歩して半身浴して
Valid HTML5 Valid CSS3 Another HTML Lint