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

チキンカレー (ルー大盛り, 辛さ 50 倍)
カリーライス専門店 エチオピア 本店 (No. 8 – 辛さ 20 – 40 倍) 以来辛さ 20 倍程度のカレーに落ち着いていましたが、暑い最中、久しぶりにガツーンと辛さ 5
ORANGINA 420ml
ここ 10 年程は、マクドナルド等ファーストフードでの昼食以外で意図して炭酸入りの清涼飲料水を飲むことはほぼありませんでした。一方、ここ 1 年程街角の自動販売機でその姿を見掛けて気になっていたところ
カルビ空 (6)
10/29 は "肉の日" と言うことで、久しぶりにオフィス周辺で値段も味も "ニクい" お店を探して訪れてみることにしました。結局過去に何度か行ったことがある
純生讃岐うどん (6)
1 ヶ月程前に香川の友達から差し入れをいただきました。 うどん本陣 山田家 という地元では有名店の通販のセットで、"一日、四千人が行列をつくる讃岐うどんの老舗" だそうです。開封し
八重山そば
石垣島 (No. 5 – 平久保崎灯台) の続きです。沖縄そばとはやや異なる八重山そば自体は、沖縄出張時に近所の 宮良そば (旧店名 八重山そばさくま) で食べたことがあり、その細麺具合が
Rack Sample 0
ここ数年、"理想のファイルシステムとは何か" というテーマで考え続けています。機器単体では RAID (Redundant Arrays of Independent Disks)
VAIO Fit 13A (背面)
以前は stunnel 3.26 ベースの wstunnel が GUI 版として簡易に利用出来ましたが、昨今のサーバ側の標準的なバージョン OpenSSL 1.0 系との接続には向かないため、Win
FRB-80
My Guitar で触れた様に、バンドでの演奏経験はほとんどありませんが、以前からベースも時々触っています。2007/10 頃に当時使用していたギター TEJ-75 を入手した後、ベースも探しました
FreeBSD Logo
Drive Network で収容サーバ (お客様の機器) の機器を変更する様な場合、大量のデータ移行が必要ですが、rsync による差分同期でデータ移行に必要な時間を圧縮することが出来ます。しかしな
ARROWS X F-10D
ARROWS X F-10D (No. 3) の続きです。電源が入らなくなりました使い始めて 8 ヶ月程で数回腰程の高さから落としてしまったことがあります。リアカバー (裏フタ) までパカッと開いてお
Valid HTML5 Valid CSS3 Another HTML Lint