Heroku command not found

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/ - 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/ - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - 

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

7

14 Answers

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

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

5

(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.

3

Do remember to actually source the installation file.

wget -0- wget | sh 

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

wget 0- wget | 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!!

2

Just run

$ gem install heroku 

Form your app that's it.

3

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

export PATH=$PATH:/snap/bin

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

1

try npm install -g heroku for any platform.

2

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.

First install heroku:

wget -qO- | bash 

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

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

Export snap Directory

export PATH=$PATH:/snap/bin 

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 and downloading the same .pkg file from that site and re-installing it. Note, I did not uninstall the previous package first.

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

After you run wget -0- wget | 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

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 | sh 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like