2018年11月9日金曜日

LinuxMint で Thunderbird の移植を行った話

やたらに多くのジャンクPCを持つと全部 Windows って訳にはいきません。
お金的にも、Update にやたらかかる時間的にも…
というわけで、メール受け用に Atom230 のシンクライアントに LinuxMint18 を入れて使っていたのですが流石に古いので、以前壊れたモニターを取っ払って半デスクトップ化した Vaio(LinuxMint19) に Thunderbird のメールを移植したのですが…

Windows 感覚で Linux を使うと痛い目見ますよね

という永遠のライト Linux ユーザーがメール移植に半日もかかったお話。
今後同じ事をやれる自信が全く無いため、忘れないうちに備忘録をつけておきます。

まるっとコピーして終わり!終了!

という説明が散見されます。
曰く、旧 Thuderbird のディレクトリを新 Thuderbird のディレクトリにベタコピーすればOKとあります。
LinuxMint の場合 /home/ユーザー名/.thnuderbird (以後作業ディレクトリ)になっているのでコレをベタコピー…

が、私はできませんでした。

私の場合は
Thunderbird is already running ~
というダイアログが出て起動すらせず。

このダイアログが出る要因はいくつかあって、ファイル破損などの致命傷が理由である事もあるそうですが…私の場合は旧環境でメールが読める為、バージョン間の差が埋まらない部分があるようです。

ならば、必要なファイルだけコピーしよう

メーラーで絶対に必要なファイルってなにさ?と言われたらそれは当然メール本体です。
で、それはどこにあるかと言いますと…
作業ディレクトリ/??.default/Mail の下にある各メールアカウント名のディレクトリの下。
ここに、メールのフォルダ名.msf と同名で拡張子の無いテキストファイルのペアがあり、これらがメールの本体。
※メールをフォルダ分けしていなければ Inbox.msf と Inbox 及び Trash.msf と Trash があるはず。

まず、移植の前に、旧環境と同じアカウントを作り、Thunderbird 上で旧環境と同じメールフォルダを作ります。
当然作業ディレクトリ内には同名の .msf および拡張子無しファイルができます。

で、ここに旧環境の作業ディレクトリ内の同名ファイルを上書きコピー…してはいけません。

上書きコピーしてしまうと

実はこれらのファイルを上書きコピーしてもメーラーの起動はできてメールは読めます。
が、メールの移動等が一切できなくなります。
以下が正常なメールファイルのアクセス権限(メールファイルを右クリック→プロパティ→アクセス権タブ)で、ファイル所有者がユーザー名になって、読み書き可能となっています。

ところが、ファイルをベタコピーすると所有者が root になったり書き込み権限がなくなったりします(いや、慣れた方は権限を調整してコピーするでしょうけど)。
Thunderbird のメール移動はメーラー上はメールファイルをメールフォルダ間で移動しているように見えますが、実際はメールディレクトリ内のファイルを書き換えて、表面上だけメールを分けて表示しています。

このため、メールディレクトリ内のファイルに書き換え権限が無い=メールを移動できない。となり、メールの移動ができなかったのです。

ではどうすればよいのか?

新旧の、フォルダ名.msf 、拡張子無しフォルダ名 の各ファイルの内、拡張子無しフォルダ名のファイルをテキストエディタで開きます

インストールしたばかりの新環境の場合、おそらく中にはなにも書かれていないテキストファイルになっているハズです。
で、旧環境の同名ファイルもテキストエディタで開きテキストの内容を新環境にコピー&ペースト。
これで私の環境ではメールの移植ができました。

Thunderbird をインストールし直す場合

メール移植に失敗して頻繁にインストールのやり直しをしていたのですが、
その場合はアンインストールしてから、作業ディレクトリの中身を消してインストールをしなおさないと同ディレクトリに残ったファイルが色々と悪さをするようでした。

…どうも、Thunderbird はファイルベタコピーを妄信しているフシがあって、真面目に移植する場合を考えていないような…Ver60にもなるんだし、移植に際して、メール及び設定ファイルを圧縮して1ファイルに→新環境で展開みたいなスマートな処理ぐらいあっても良い気がするんですが、どうにかならんもんですかね。

0 件のコメント:

コメントを投稿