Issue
I installed the heroku-toolbelt to raspbian. But heroku command fails.
heroku-toolbelt install:
$ wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
heroku command fails with
$ heroku login
Illegal instruction
! error getting commands pid 6630 exit 132
$ uname -a
Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l GNU/Linux
$ ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [arm-linux-eabihf]
Solution
You describe a situation but do not actually ask a question. I interpret the question in your post to be "Why does the heroku command exit with 'illegal instruction' error?".
The official debian "armhf" port targets the ARMv7 architecture (c.f. https://wiki.debian.org/ArmHardFloatPort#Supported_devices "Currently the Debian armhf port requires at least an ARMv7 CPU with Thumb-2 and VFP3D16.").
The first Raspberry Pi had an ARMv6 CPU. The Raspberry Pi foundation, and later the Raspbian creators, recompiled all debian packages from source for the ARMv6 CPU.
But they decided to keep the same "armhf" name. Probably because it is more effort to introduce a new name into the debian build system.
This works fine as long as you do not mix software package repositories. Raspbian installations' /etc/apt/sources.list files point to Raspberry Pi specific software package download server, that serve under the "armhf" name binaries compiled for ARMv6.
If you try to install an armhf package for the regular debian distribution, you will see this illegal instruction error as soon as the CPU is asked to execute an ARMv7 instruction that is not part of ARMv6.
The same is true for third-party armhf package compiled for the canonical meaning of "armhf", like this heroku toolbelt.
Answered By - Ludwig Schulze