Hold on a minute guys... These responses about
why seem very short sighted and are completely off topic and the point. This topic isn't about why should I uninstall or leave installed rosetta, it's about how to. The why is almost irrelevant. I, for example,
want to know when an application I'm trying to run isn't built for my current architecture, because I want the best performance possible out of my software. Knowing it is non-native lets me know that I need to look for a newer version or find a newer alternative app. Sure, it's possible to check the architecture of an app by using Activity Monitor, but #1 that gets tedious, and #2 it's completely useless if you are running a full-screen-only program, like a game. Some apps and games don't let you CMD-Tab out of them, and black-out all other displays, making it impossible to check output from a different program. I like others on this thread had installed Rosetta so I could get an installer to work and since then, obtained a Universal Binary version of the actual application. I know Rosetta doesn't run unless needed, but I the
option to decide which PPC-only apps are worthy of running based on my present needs.
I've tried doing the following without achieving the desired result (uninstalling rosetta to the point where it asks "Would you like to install Rosetta" when I attempt to run a PPC-only app. PPC-only apps just launch and unload immediately when "translate" is not found.
* Remove: /usr/libexec/oah/translate and the receipt entry from the InstallHistory.
* Remove the entire /usr/libexec/oah folder.
I started looking around the Rosetta installer to see why it would just crash after the files didn't exist. The translate file had to not be the whole story. Some part of the system had to know that "translate" existed and wether to try to run it or not. This lead me to the postinstall_actions scripts in the Rosetta.pkg. I found the following code:
{quote:title=
Code:}{quote}
if \[ "$3" == "/" \]; then
logger -p install.info Registering Rosetta
/usr/sbin/sysctl -w kern.exec.archhandler.powerpc=/usr/libexec/oah/translate
fi
So, after Rosetta installs it talks to the sysctl program, which is essentially a set of environment variables or a
shudder "registry". It sets the architecture handler for PowerPC to the newly installed translate application. Coincidentally, this made me wonder wf RosettaNonGrata was, which is latin for "Rosetta is unwelcome" or directly "Rosetta not welcome". I cross checked my laptop which didn't have rosetta installed on it and it's setting for kern.exec.archhandler.powerpc was /usr/libexec/oah/RosettaNonGrata. The solution is the following, which is quite elegant because you don't even need to remove or change files or anything, just run one command to set how PPC apps should be handled, wether they are translated or not.
{quote:title=
Solution:}{quote}
sudo /usr/sbin/sysctl -w kern.exec.archhandler.powerpc=/usr/libexec/oah/RosettaNonGrata
{quote:title=*Re-enable after it's been installed already:*}{quote}
sudo /usr/sbin/sysctl -w kern.exec.archhandler.powerpc=/usr/libexec/oah/translate
Easy as that.
Once it's set to RosettaNonGrata, you'll be asked to install rosetta when a PPC app is executed, just like before.
Message was edited by: Djspaceg to improve formatting.