41

After installing Heroku Toolbelt, in terminal on Mac when trying to run the following command:

heroku

I get the error:

bash: heroku: command not found

When I do:

gem environment

I get:

- RUBYGEMS VERSION: 1.3.6
- RUBY VERSION: 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin11.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
 - ruby
 - universal-darwin-11
- GEM PATHS:
 - /Library/Ruby/Gems/1.8
 - /Users/Bart/.gem/ruby/1.8
 - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
 - :update_sources => true
 - :verbose => true
 - :benchmark => false
 - :backtrace => false
 - :bulk_threshold => 1000
- REMOTE SOURCES:
 - http://rubygems.org/

I've tried adding several paths to $PATH, but nothing works...

bart
  • 14,958
  • 21
  • 75
  • 105
  • 6
    Did you restart your shell ? Or simply run `source ~/.bashrc` or `source ~/.bash_profile` ? – pjam Oct 09 '12 at 12:05
  • Exact same thing is happening to me. I'm on OSX 10.8.1 – Matt Bridges Oct 09 '12 at 13:44
  • At the bottom of http://toolbelt.heroku.com it says "The heroku command line client will be installed into /usr/local/heroku and the executable will be symlinked as /usr/bin/heroku." For me, /usr/bin/heroku does not exist after running the installer. Is it there for you? – Matt Bridges Oct 09 '12 at 14:21
  • @pjam I get the error: "bash: /Users/Bart/.bashrc: No such file or directory" – bart Oct 09 '12 at 15:42
  • @MattBridges Does not seem to exist (or I used the wrong command): "bash: cd: /usr/bin/heroku/: No such file or directory" – bart Oct 09 '12 at 15:43
  • I ended up at least being able to use heroku by doing "sudo gem install heroku" and "sudo gem install foreman". I got a warning that I should be using the heroku toolbelt, but clearly that's not working for OSX 10.8.1. – Matt Bridges Oct 09 '12 at 17:26
  • Windows-related, but leaving a note as this is a top Google result at the moment -- if you are using the Windows installer while logged in as a non-admin, and you punch in admin credentials when the installer starts up, and let the installer add Heroku to the "PATH," it'll add it only to the admin account's personal PATH -- you have to manually go change it over to the system-wide PATH yourself. After that, when running cmd as a non-admin, you should be able to run Heroku. – k.. Jul 07 '17 at 21:35

14 Answers14

35

Manually adding the symlink after installing Toolbelt fixed it for me.

sudo ln -s /usr/local/heroku/bin/heroku /usr/bin/heroku

Garrett Johnson
  • 800
  • 7
  • 10
32

(This answer is for typical other persons, that may land here, and that may find it useful)

If you come to install heroku snap using snap command through the command line as follow
sudo snap install heroku --classic (the thing you will find in the heroku doc).
And that after installation the heroku command isn't available. Then here the solution and the why:

First know that when you install a new snap, it get added to /snap folder. A new folder with the snap name is created (/snap/heroku), and the executable file for the command is added to /snap/bin (/snap/bin/heroku).

Try

/snap/bin/heroku help

and you will find it work very well.

Solution: So you have just to add /snap/bin to your PATH environement variable.

Heroku is supposing that it's already done. I don't know, if that should have been done automatically at the installation of snapd package. But any way, that's it.

For how to add new paths to the PATH environment variable look at the links bellow, to get a good idea (case you don't know that already):

Here links about why you need to logout and login back or reboot

Here an example:

sudo nano /etc/environment

i chose to add the path through /etc/environment (remember you can't use shell commands).

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/node-v9.6.1-linux-x64/bin:/snap/bin

You can see i add it at the end (that simple).
Reboot your computer or logout and login back (PAM script handle the construction of the PATH from /etc/environment at session creation time)

If You want to have the effect take place right away, execute:

source /etc/environment && export PATH

(it affect only the current opened shell and the children processes)

Here another example doing it in /etc/profile:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
PATH="$PATH:/snap/bin"
export PATH

I just added one line (the one before the last, and note that a portion from the whole file (/etc/profile)).
Reboot or logout and login back.

Execute :

source /etc/profile

to be operational right away (affect the current shell and the children processes).

There is different ways to add to PATH, even an infinity of ways if we give our imagination a go. The difference between the ways is about when it get set, and executed, and what scope it reach. As also organization aspect (i can have my own text list (one path per line), and have it compiled and executed in the right manner and place for example). Better see the links above, i put a good selection out there, to get a better understanding about how things work, and what method to choose. But generally the two above for a system wide configuration, are mostly what you need.

Mohamed Allal
  • 17,920
  • 5
  • 94
  • 97
20

Do remember to actually source the installation file.

wget -0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh

didn't work for me. And as a linux noob I used instead:

wget 0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh

notice that the '-' is missing from the option to wget. This downloaded the install source to my current directory.

then I did:

bash install-ubuntu.sh 

which finished up the installation for me.

then:

heroku login

works!!

parsethis
  • 7,998
  • 3
  • 29
  • 31
  • This solved my issue on Ubuntu 14.04. I've done wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh as it said in the documentation but couldn't use "heroku login" Thanks. – ssudaraka Sep 01 '16 at 07:12
  • This was perfect solution for me on Ubuntu 16.04. Thanks @orsonady – Enkum Nov 05 '18 at 07:53
17

Just run

$ gem install heroku

Form your app that's it.

Jagdish Barabari
  • 2,673
  • 3
  • 20
  • 21
10

I am using zsh which didn't have snap in its path. So just add this in ~/.zshrc.

export PATH=$PATH:/snap/bin

subtleseeker
  • 4,415
  • 5
  • 29
  • 41
10

try npm install -g heroku for any platform.

Muhammed Moussa
  • 4,589
  • 33
  • 27
9

Ran gem install heroku first and it gave me the following message:

heroku must be installed from cli.heroku.com. This gem is no longer available. (RuntimeError)

Steps from Heroku:

  1. brew tap heroku/brew && brew install heroku

or Ubuntu

sudo snap install --classic heroku

Roger Perez
  • 2,807
  • 29
  • 31
6

when you install heroku in linux as per the documentation using

sudo snap install heroku --classic

it will install heroku inside /snap/bin/heroku but when you type the command in terminal it will look into /usr/bin/ directory, a simple solution is to create a symlink by

sudo ln -s  /snap/bin/heroku /usr/bin/heroku

after that you can just run the heroku command in terminal.

4

First install heroku:

wget -qO- https://toolbelt.heroku.com/install.sh | bash

After that add a symlink to binary like @Garrett did:

sudo ln -s /usr/local/heroku/bin/heroku /usr/bin/heroku
Yahya Yahyaoui
  • 2,833
  • 23
  • 30
2

Export snap Directory

export PATH=$PATH:/snap/bin 
2

For yarn

If you want to deploy your backend or server, go to backend or server folder, use -

yarn global add heroku

For deploying frontend or client, go to frontend or client folder and use the same cmd.

For npm

Go to the respective folder which you want to deploy and use npm i -g heroku

Suprabhat Kumar
  • 645
  • 7
  • 13
1

After installing Heroku Toolbelt using the .pkg file I downloaded from Heroku's Getting Started with Rails 4.x on Heroku page, I got the heroku command not found message. My /usr/local/heroku/bin folder did exist.

I was able to resolve this issue by going to https://toolbelt.heroku.com and downloading the same .pkg file from that site and re-installing it. Note, I did not uninstall the previous package first.

Tod Birdsall
  • 17,877
  • 4
  • 38
  • 40
1

Brew install did not work in macOS?

For me brew tap heroku/brew && brew install heroku did not work in macOS.
So I tried the standalone download.
Here is the command which worked for me

curl https://cli-assets.heroku.com/install.sh | sh
Rohit Singh
  • 16,950
  • 7
  • 90
  • 88
0

After you run wget -0- wget https://toolbelt.heroku.com/install-ubuntu.sh | sh you might get the following warning:

WARNING: The following packages cannot be authenticated!

heroku heroku-toolbelt

If this happens, run this apt-get install -y --force-yes heroku-toolbelt

I've run all the commands with sudo, but I don't know if it makes a difference. Thanks to this answer

Community
  • 1
  • 1
bogdan.rusu
  • 901
  • 4
  • 21
  • 41