CodeProject

Installing Sublime Text 2 on Linux Mint/Ubuntu (for Linux Newcomers)


TL:DR – For a newcomer to Linux, likely starting out with Ubuntu or Linux Mint, installing applications that are not part of the Software Manager or Synaptic Package Manager catalog for the chosen distro is not always intuitive at first. I take a rather long look at how to get Sublime Text 2 properly installed on your machine, and do my best to explain what is going on, rather than simply provide terminal entries to copy and paste. I would be happy to hear from experience Linux users about how I might improve, or where I have explained something poorly.

New Article for Sublime Text 3

UPDATE: 8/25/2013: There is now a new article available with slightly different instructions on installing Sublime Text 3, currently in beta but recently made available to the general public. Sublime Text 2 is still the current stable release. However, the version 3 beta seems quite workable.

Also of Interest:

A few months back, I decided to expand my horizons and explore Ruby and Rails. I also decided that I would do so in the more native Linux environment, rather than go the Ruby-on-Windows route. This was one of the best decisions I have made in terms of developing my skills and experience as a programmer.

Sublime_Text_LogoThe learning continues. I started with Linux Mint 13, which has a friendly enough GUI, but for most of what I am doing, I try to use the Bash CLI as much as possible. I’ve never been very comfortable with the command line, and so long as I am learning a new language, in a new OS environment, I figured it was time to overcome that limitation as well.

If you are an experienced Linux user, there is probably nothing here for you. This is really basic, and yet I had to look around and cull some information from a variety of sources in order to figure out how to do this.

Why Sublime Text 2

Unless you have been in a coma, you have no doubt at least heard of Sublime Text 2. Sublime Text 2 is a cross-platform (Mac/Windows/Linux), highly customizable text editor with an outstanding compliment of features. I have found it to be my preferred, go-to tool for text manipulation. While it is not an IDE, Sublime Text presents sufficient IDE-like features that for many purposes, you won’t miss the extra cruft. Also, of course, in many programming communities (Ruby, JavaScript), code is more often written in a text editor.

NOTE: As of this writing, Sublime Text 3 is available to registered Sublime Text users as a beta release.

Sublime Text 2 is not currently part of the Synaptic Package Management system on Linux Mint (or Ubuntu). Therefore, there is no magical apt-get install command as you might use to install other software on your Linux system, so we have to do a little more work.

Installing Sublime Text on Linux Mint/Ubuntu – The First Method

Of course, the straightforward method of installing Sublime Text 2 on your Linux Box is to download the appropriate (23 or 64-bit) .tar file from the Sublime Text site, unpack, and locate in the directory of your choice. You can do this manually by going to the Sublime Text 2 Downloads page and clicking the appropriate download link, or you can do it all from the terminal, as described below.

If you are not as familiar with Bash command line as you would like, see my previous posts. While these were written in the context of using Git for Windows developers, the basic Bash commands are explained:

This method is described on the Sublime Text Site/Support/Linux/Installation page. Simply open a terminal in the directory you use for applications, and enter the following command (use the appropriate version fro your machine):

NOTE: As of this writing, Sublime Text 2.0.1 is the most recent stable release. If the stable release is updated, the URL’s in the links below will change, and you will need to copy the updated URL from the Sublime Text site.

Download the Linux 32-Bit Version of Sublime Text 2:
$ wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.tar.bz2
Download the Linux 64-Bit Version of Sublime Text 2:
$ wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1%20x64.tar.bz2

Extract the “Sublime Text 2.0.1.tar.bz2” file (this will be “Sublime Text 2.0.1 x64.tar.bz2” for the 64 bit version):

Extract the Sublime Text .tar file:
tar vxjf "Sublime Text 2.0.1.tar.bz2"

9/10/2013 – UPDATE: It is apparently considered a best practice to locate general third-party applications such as Sublime Text in the root-level /opt directory, something I did not know at the time I wrote this article. I have updated the instructions and example below to reflect this.

Then you can add a sym link to the executable file with a short name for convenience (it seems to be a convention to use the alias “subl” for ease of use from the terminal. The executable file will be located in the extracted Sublime Text 2 directory. For example, if you extracted the .tar contents into the directory /opt then the sublime_text executable will be “/opt/Sublime Text 2/sublime_text” (since there are spaces in the directory name, we need to use quotes around the path).

Add a Sym link:
sudo ln -s "opt/Sublime Text 2/sublime_text" /usr/bin/subl

The above method is easiest, but does not leave you with a convenient way to update Sublime Text in the future short of removing the current installation, re-downloading, and re-installing. There is an arguably better method, which relies on the Personal Package Archive system.

Installing Sublime Text on Linux Mint /Ubuntu– The Better Method

Canonical, the company which supports Ubuntu, has created the Launchpad.net site which, among other things, hosts a repository for Personal Package Archives (PPA’s). Here, individuals and teams can upload their own software and installation packages, and it is possible to find deployment packages for software that is not included in the Ubuntu or Linux Mint Synaptic Package Manager for your specific distribution. It is also possible to add the PPA to your Synaptic catalog, so that you can then run apt-get install, apt-get update and the like to keep your package up to date.

Or, at least as up to date as the package maintainer at Launchpad keeps theirs.

8/23/2013 UPDATE: As of 7/19/2013 the WebUpd8team also has a PPA for Sublime Text 3 (currently still in beta). If you want to use Sublime Text 3, simply substitute Sublime-Text-3 for Sublime-Text-2 in all of the commands below. Note that if you used the PPA for Sublime Text 2 to install that version, this will replace the version 2 install with the version 3 beta.

The WebUpd8team at Launchpad has created (among other things) a PPA for Sublime Text 2 which is up to date with version 2.0.1 as of this writing. To add Sublime Text 2 to your Synaptic catalog, and install according to the install script published with the PPA, follow these steps:

Add the Sublime Text 2 Repository to your Synaptic Package Manager:
sudo add-apt-repository ppa:webupd8team/sublime-text-2
Update:
sudo apt-get update
Install Sublime Text:
sudo apt-get install sublime-text

8/23/2013 UPDATE: If you are installing the Sublime Text 3 Beta as discussed in the update above, use this command instead of apt-get install sublime-text:

8/23/2013 Install for Sublime Text 3 Beta (only if using the PPA for Sublime Text 3):
sudo apt-get install sublime-text-installer

Next, check the usr/bin directory. You should see at least one file, named sublime-text-2, and you should also see two others, named sublime-text and subl. These create aliases you can use to invoke Sublime Text 2 from the command line. If the subl and sublime-text files are not present, copy the sublime-text-2 file and make them:

Create alias files (if not present):
$ sudo cp /usr/bin/sublime-text-2 /usr/bin/sublime-text
$ sudo cp /usr/bin/sublime-text-2 /usr/bin/subl

There you have it. You can now use Sublime Text 2 from you command line. Also, you should see it available in your GUI in the applications menu.

This has been a long post about a relatively simple operation. My goal has been to explain the concepts as fully as possible, under the assumption that there are those out there, like myself, new enough to Linux to need the extra handholding. Thanks for reading!

CodeProject
A More Useful Port of the Chinook Database to Postgresql
C#
C# – Wildcard Search Using LINQ
ASP.Net
Creating a Clean, Minimal-Footprint ASP.NET WebAPI Project with VS 2012 and ASP.NET MVC 4
  • Gerhard Burger

    Haha, no problem. I have been there as well. Part of the fun of Linux is noobing around, even accidently wiped my hard drive once (ouch :P).
    Enjoy!


  • jatten

    jattenjatten

    Author Reply

    Got it! Thanks for setting me straight – having it explained that way, it makes total sense. I had originally found the files we are discussing, and since they appeared to be "script" files, I made some assumptions about what was going on.

    I figured that creating the Symbolic Link resulted in those files being created, but it also sounds like there is more going on there that I need to learn about. Digging into a couple books on the subject now.

    I guess I will need to add an update to the article to reflect this improved information!

    Once again, thanks for taking the time for this Linux Noob . . . :-)


  • Gerhard Burger

    `/usr/bin/sublime-text-2` is an EXECUTABLE scriptfile. the file `/usr/bin/subl` is NOT a script file, it is merely a symbolic link to '/usr/bin/sublime-text-2`. If you open it, it appears to be a script file, but you are actually seeing (and editing) `/usr/bin/sublime-text-2`. You can see this in the output of `ls -l` which is in my previous comment, the `->` means it POINTS to `/usr/bin/sublime-text-2`.
    To prove my point: rename the file `/usr/bin/sublime-text-2` to /usr/bin/sublime-text-test`, I guarantee you that `subl` no longer works (unless of course you copied the script).

    The danger of copying the script is that if sublime gets an update which will change `sublime-text-2` then `subl` is not updated and is the old version of `sublime-text-2.`

    PS in the first method in your post you correctly used a symbolic link 😉


  • jatten

    jattenjatten

    Author Reply

    Hi, thanks for reading. From the little I know of Linux so far (but learning more daily!), I agree.

    The file I speak of copying, /usr/bin/sublime-text-2, appears to me to be a script file. That said, the PPA did the same for me as you indicate – there was a similar script file already there for /usr/bin/subl. I probably should have made that clear. It would strike me as wonky to copy an executable.

    Thanks for taking the time to comment – hoping to hear more from Linux folks who know what they are doing, especially if I am passing on bad information. Seems like there is plenty of bad info out there already (or outdated info – when you are just starting out, it can be hard to know what was once a former best practice but is now deprecated).


  • Gerhard Burger

    Copying executables is generally a bad idea, if you want to have subl and sublime-text, use symbolic links. This is also the default if you install from the PPA, I have on my system:

    ls -l /usr/bin/subl*
    lrwxrwxrwx 1 root root 14 Jul 16 2012 /usr/bin/subl -> sublime-text-2*
    lrwxrwxrwx 1 root root 14 Jul 16 2012 /usr/bin/sublime-text -> sublime-text-2*
    -rwxr-xr-x 1 root root 77 Feb 23 2012 /usr/bin/sublime-text-2*

    to make symbolic links, use

    ln -s /usr/bin/sublime-text-2 /usr/bin/subl
    ln -s /usr/bin/sublime-text-2 /usr/bin/sublime-text