DEXCS ライブDVDでカスタムソルバをコンパイル出来ない問題

DEXCS for OpenFOAM(R)を、ライブDVDにて起動して、カスタムソルバーをコンパイルする…というニーズ(人)がどれだけあるかわかりませんが、たまに出来なくなることがあるので、ここに対処法を記しておきます。

理由は、コンパイルする際に使用する一部のファイルのタイムスタンプが未来の時刻(ライブDVDを起動してから約1日先の時間)になってしまっているからです。また、この問題は、いつも再現するというものでなく、起動した日付に依存するようで、正確なところはわかりません。現実に本稿を執筆している今日の時点では問題なかったのが、昨日は何度やっても、またDEXCSのヴァージョンを変更していても同じ問題が生じていました。いずれにせよ、そういうことが起きうるものであって、万一そうなった場合の対処法です。

システム時間を変更してしまう

色々やってみたんですが、この方法が一番手っ取り早いですね。

$ sudo date -s “6/1 12:00 2013”

もちろん、ここで例示している日付時間は、問題の時間よりも未来の時間に設定する必要があります。

問題ファイルのタイムスタンプを一括変更する

実は、上の方法を思いつく前の段階として、問題ファイルのタイムスタンプを変更する方法を調べていました。タイムスタンプの変更は、touchコマンドで出来ることはわかっていたのですが、これを一括して、しかもフォルダの中まで再帰的に変更するには、ということです。色々調べたら、なんとか情報が見つかって(たとえば⇒http://oshiete.goo.ne.jp/qa/1792313.html)、

$ ls -R <dir name> | xargs touch

または

$ find <指定ディレクトリ> -exec touch \{\} \;

にて何とかなりそうとあった。やってみたけど、上の方法は云う事を聞いてくれず、下の方法でOKであった。但し、下の方法でフォルダがあると、フォルダ名に:(コロン)のついた空ファイルまで作ってくれてしまうようだ。実用上は問題ないが、みっともない。

気長にやる

ライブDVDを起動してから、問題の未来時間まで待って、おもむろにコンパイルを開始する。スローライフの世界ですね。これも良いかも。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください