PowerPC専用アプリを探す(2)

2013年6月7日Mac,パソコン・インターネット

私が、Mac OS X 10.6 Snow Leopardから、OS X 10.7 Lionに乗り換える時に、手持ちのPowerPCアプリケーションに何があるのかを知る必要がありました。

そのため、自分でスクリプトを書いて、PowerPCアプリケーションを探し出しました。

やっている事は単純で、UNIXの"file"コマンドの出力を見て、Universalアプリか、intel/PowerPCアプリかを判断しているだけです。

上記の記事に、判定方法を書いてあるので、スクリプトの公開も必要ないだろうと思っていたら、3月末に、スクリプト公開のリクエストをいただきました。

当時のスクリプト(Perl)を見ると、現代的(モダン)じゃないPerlの書式になっています。恥ずかしくて、公開できません。

「公開するには、修正が必要。今、忙しいので、1〜2週間待って欲しい。」旨伝えたまま、特に催促もないので、今日まで経ってしまいました。すみません。

本日、修正が完了しましたので、公開します。

#!/usr/bin/perl
# Copyright (c) 2011 Oichinokata (webmaster@oichinote.com)
# check App archtecture
# Created by Oichinokata on Jul. 10, 2011
# Revised by Oichinokata on Jun. 5, 2013
# usage: apparch.pl {file1} {file2} ...

use strict;
use warnings;

my $DEBUG = 0;
(my $PROG = $0) =~ s/.*\///;

if ($#ARGV == -1) {
  die "Usage: $PROG {file1} {file2} ...\n";
}

while (my $filename = shift @ARGV) {
  print "$filename\n" if $DEBUG >= 8;
  open my $fh_PIPE, "-|", 'file', $filename or die "$PROG: can't open '$filename'\n";
  my $type = check_arch($fh_PIPE);
  print "$filename : $type\n" if $type;
  close($fh_PIPE);
}

sub check_arch {
  my $fh = shift;
  my ($i64, $i32, $ppc, $ppcold, $intel, $powerpc) = (0, 0, 0, 0, 0, 0);
  my $type = '';

  while (my $line = <$fh>) {
    $i64 = 1 if $line =~ /x86_64/;
    $i32 = 1 if $line =~ /i386/;
    $ppc = 1 if $line =~ /ppc/;
    $ppcold = 1 if $line =~ /PowerPC/;
  }

  $intel = $i64 || $i32;
  $powerpc = $ppc || $ppcold;

  if ($intel and $powerpc) {
    $type = "Universal";
  } elsif ($intel and !$powerpc) {
    $type = "intel";
  } elsif (!$intel and $powerpc) {
    $type = "PowerPC";
  } else {
    $type = "Unknown";
  }
  return $type;
}

使い方は、次の通りです。

% find /Applications -perm -u+x -type f -exec ./apparch.pl {} \; | egrep PowerPC > ppcapp.txt

“ppcapp.txt"の中に、PowerPC専用のアプリ(バイナリ)一覧が入ります。

こうやって、PowerPC専用アプリケーションを探した後は、代替アプリケーションを探して、PowerPCアプリケーションを捨ててしまう方が良いと思います。

本当に、どうしても、OS X 10.8 Mountain Lionで、PowerPCアプリを動かしたいなら、次の方法があります。

  1. Parallels購入
  2. Snow Leopardサーバ版購入
  3. Parallelsに、Snow Leopardサーバ版をインストール
  4. Parallelsの、Snow Leopardサーバ版の上で、PowerPCアプリケーションを実行

Snow Leopardは、クライアント版ではなく、サーバ版と言う事が重要です。

上記の方法で、PowerPCアプリを動かせますが、Snow Leopardサーバ版を入手するのは難しいし、高価だと思います。

なので、先に書いた様に、代替アプリケーションを探した方が良いと思います。

私の場合、「宛名職人 Ver.14」だけが、代替アプリケーションを見つける事ができませんでした。私のMacBook Pro (Early 2011)は、Snow Leopardで起動できるので、「宛名職人 Ver.14」が必要な時に、外付けSnow Leopardディスクから立ち上げて使っています。

ですが、次の罠に落ちてしまいました。

ユーザ領域を、Mountain LionのFileVault2で暗号化してしまったので、Snow Leopardからは見えなくなってしまったのです。しくしく ;_;

私が、「宛名職人 Ver.14」にこだわる理由は、年賀状履歴をexportできる宛名職人の、最後のバージョンだからです。

ただ、最終的には、次の記事の通り、住所録ソフトを自作して、「宛名職人 Ver.14」を捨ててしまおうと思っています。

ちなみに、「宛名職人 Ver.16」も持っていて、更新の無い宛名の印刷に使っています。OS X 10.8 Mountain Lionでも、特に問題なく使えています。サポート外ですが。

[amazonjs asin="B00CF61QHI" locale="JP"]

なお、現代的なPerlの書き方については、次のページを参考にしています。ありがとうございます。

【関連記事】

 

Posted by お市のかた