$ tor --version Illegal instruction
Why, and how can I still run Tor versions newer than what ships with Raspbian?
Tor Stack Exchange is a question and answer site for researchers, developers, and users of Tor. It only takes a minute to sign up.Sign up to join this community
Arm CPUs come in different versions, and newer versions generally have more features. The arm ports of Debian differ in what kind of CPU they need as a minimum. In particular, the armhf port needs at least ARMv7.
The arm CPU shipped in the Raspberry Pi is an ARMv6 CPU. As such, packages built for Debian's armhf port do not, in general, work on Raspberry Pi systems. Packages compiled for Debian's older arm port, armel, would work on the Raspberry Pi.
Unfortunately however, Raspbian, a system based on Debian but built for the Raspberry Pi, still decided to call their architecture armhf, even if they can't run Debian armhf binaries. This means two things if you run Raspbian:
If you want to run newer Tor versions than are available from the Raspbian folks, you will have to build them yourself.
You can either build it from the source tarball like a lot of other Unix/Linux software and install it locally.
The better option might be to build your own binary Debian packages using the source packages that we put up on deb.tpo. This means you will end up with nice Debian packages that you can install using dpkg and that integrate well in your current system.
To build such packages, follow the documentation on Tor's page about Debian packages. It's a few easy steps, good luck!
: While the binaries built for armel would work on your hardware, they would need all the libraries they depend on built for armel as well. That is, you probably would need an all-armel system or a chroot. Hence "not easily".
For those looking for binary downloads, see https://github.com/gordon-morehouse/cipollini/tree/master/raspbian_packages with the appropriate caveat emptor about installing binary software from a dude you don't know (me) on the Internet.
I don't have deterministic builds going for Raspbian packages yet, so these are hand-built straight from the source packages using the method described on the Tor Project web site, then I sign them with my GPG key. I'm fairly active on the mailing lists, so, that's what you have to work on for trust. :)
Otherwise, yep, you're gonna be compiling 'em yourself - takes about 40 min on my 900MHz Pis.
I found a complete tutorial for Raspbian with prebuilt binaries for the latest version. Also, full instructions for building from source are provided. You can catch them here: http://unsuspectingbit.com/tutorial-private-anonymizing-proxy-raspberry-pi-tor-based/
[on Saturday11April2015 Seems to be a dead link: If anyone has a more current link or if the new owners of the domain haven't erased it and would put it back up.... Then there is the trust issue to deal with. OOPS! --Glenn]
Although the answer has been accepted, I have some sort of update:
While everything "weasel" said is true, we now have the Raspberry 2, that works perfectly as it features an ARMv7 CPU.
In other words: Go ahead and add the Debian armhf repo of the Tor project and it will result in an up-to-date setup that's working like a charm (as long as you use a Raspberry 2 model)
On the latest Raspbian (stretch), follow the instructions here https://www.torproject.org/docs/debian.html.en, ensuring you select "stretch" from the drop down menu, they say how to set up your apt-get repos to use the tor repo, ensuring that the get the latest and greatest version (Raspbian repos will work fine, but they might not be the latest version).
There is a message at the top of the page warning about Rasbian incompatability, this can be ignored and as it is talking about the Raspberry Pi 1 with its older ARM V6 processor, not the newer Raspberry Pi 2/3 with its newer, ARM V7/8 processor.