5

Do you have any pointer on how to write a script that will search my system for applications, libraries (i.e. /usr/local/lib and /usr/local), and binaries that are PPC only?

I upgraded my system from a PPC Mac to a Intel Mac running Leopard 10.5. Then I upgraded to Snow Leopard 10.6 which doesn't come with Rosetta. So I'm only now realising all the old PPC things that are left on my system!

4

5 回答 5

9

file命令可以检测文件中可用的二进制类型。

file -b /usr/bin/atrm
setuid Mach-O universal binary with 3 architectures
/usr/bin/atrm (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/atrm (for architecture i386): Mach-O executable i386
/usr/bin/atrm (for architecture ppc7400): Mach-O executable ppc

因此,这只是适当使用查找和过滤的问题。像这样的东西应该找到系统上所有具有 PPC 子部分的二进制文件。

find / -perm -u+x ! -type d -exec file {} \; | grep ppc | awk '{print $1}'

只有 PPC 有点困难。为此,您需要执行三个命令在 /tmp 中创建 2 个文件,第一个包含 PPC 文件列表,第二个包含 32 位或 64 位 x86 文件列表。方便的是,'ppc' 匹配 ppc 和 ppc64。

find / -perm -u+x ! -type d -exec file {} \; | grep ppc | awk '{print $1}' > /tmp/ppc
find / -perm -u+x ! -type d -exec file {} \; | grep i386 | awk '{print $1}' > /tmp/x86
find / -perm -u+x ! -type d -exec file {} \; | grep x86_64 | awk '{print $1}' >> /tmp/x86

然后, sort/uniq 一点(只是对路径进行排序并确保每个二进制文件只列出一次):

cat /tmp/x86 | sort | uniq > /tmp/x86.filtered
cat /tmp/ppc | sort | uniq > /tmp/ppc.filtered

然后,使用 diff (以及更多处理)来喷出仅 ppc 的文件列表:

diff /tmp/ppc.filtered /tmp/x86.filtered | grep -e '<' | awk '{print $2}' | perl -p -e 's/:$//'

最终结果应该是仅包含 ppc 可执行 mach-o 部分的文件列表。我建议在核对任何内容之前验证该列表。

一些注意事项:

以上所有操作都在终端中完成。

这只是一个技巧;它在我的系统上工作得很好,我很高兴你问,因为我想知道同样的。但这只是一个黑客。

于 2009-09-10T23:33:08.817 回答
3

要查找应用程序,您可以使用 System Profiler(在 Lion 中称为系统信息)。

在侧边栏中的“软件”下查看并选择“应用程序”......然后等待很长时间,它会收集信息。

于 2011-07-20T19:48:08.577 回答
2

根据凯文巴拉德的回答,这个作品在山狮:

mdfind -0 'kMDItemContentTypeTree == "public.executable"' | xargs -0 -n 1 sh -c 'lipo="$(lipo -info "$1" 2>/dev/null)"; if [[ "$lipo" == *ppc* && "$lipo" != *i386* && "$lipo" != *x86_64* ]]; then echo "$1"; fi' sh
于 2013-02-13T09:51:00.737 回答
1

另请注意,Rosetta 附带 10.6 - 它只是可选安装之一。检查您用来安装它的 DVD。

于 2009-09-10T23:43:09.250 回答
0

事实上,当您尝试启动其中一个应用程序时,它应该会要求您安装它。

于 2009-09-10T23:46:10.110 回答