Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing Sublime Text's command line tool 'subl' in terminal, permission denied?

I'm tryng to use Sublime Text from the terminal, for example by typing subl.

I'm following the steps from Sublime Text's website:

Setup

The first task is to make a symlink to subl. Assuming you've placed Sublime Text 2 in the Applications folder, and that you have a ~/bin directory in your path, you can run:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl 

I keep getting permission denied : ~/bin/subl: Permission Denied

I have been searching around for a similar problem but can't find one that's applicable. Can someone point me to the right direction?

like image 848
George Ananda Eman Avatar asked Apr 17 '12 17:04

George Ananda Eman


People also ask

What is SUBL command?

Sublime Text includes a command-line helper called subl . Using the command-line helper, you can open files and folders and perform other actions from the command line. Before using subl , make sure it is on your PATH . To put subl on your PATH , you may need to add directories to PATH or use symbolic links.

What does SUBL do in terminal?

Documentation Command Line Interface. Version: Sublime Text includes a command line tool, subl , to work with files on the command line. This can be used to open files and projects in Sublime Text, as well working as an EDITOR for unix tools, such as git and subversion.


2 Answers

I am assuming that you don't have the bin directory. You can do the following:

cd  mkdir bin sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/subl 

ln -s will create a alias of the subl file in your bin directory and you will be able to run the command.

If this still doesn't work you will have to edit your .bash_profile. You can do it by following commands: (NOTE: For this to work you need to have done the above steps already.)

  1. Open your .bash_profile:

    cd                  // this will get you back to home directory vim .bash_profile   // this will open your .bash_profile file 
  2. Edit .bash_profile: press I to get into "insert" mode and add following:

    export PATH=$PATH:~/bin 
  3. Save and exit. Press Esc to get into command mode:

    :wq   // saves and close file exit  // exits terminal 
  4. Reopen the terminal:

    subl --help 

That should bring up the help for Sublime Text.

like image 82
5 revs, 3 users 64% Avatar answered Oct 15 '22 23:10

5 revs, 3 users 64%


My personal preference for the path to the third-party application-specific symbolic links (e.g. subl, brew, github, mate, etc) is:

/usr/local/bin 

Why not /usr/bin/?

  1. /usr/bin is a "sacred" place. It is generally recommended to store static binaries that are maintained by package management systems. subl is not this case.

  2. subl is not stable enough to be stored in /usr/bin with other basic BSD binaries (e.g. find, man, make, etc). You must modify/delete subl symbolic link manually if (a) the developers of Sublime Text Editor decide to change its app name in the future releases (as BBEdit Lite was changed to TextWrangler after version 6.1), or (b) you may simply wish to uninstall Sublime Text Editor.


Therefore, I suggest you execute the following line, assuming /usr/local/bin/ exists:

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl 
like image 45
melvynkim Avatar answered Oct 16 '22 00:10

melvynkim