Skip to content

Instantly share code, notes, and snippets.

@simonewebdesign
Last active March 11, 2024 12:23
Show Gist options
  • Save simonewebdesign/8507139 to your computer and use it in GitHub Desktop.
Save simonewebdesign/8507139 to your computer and use it in GitHub Desktop.
Install Sublime Text 3 on Linux via POSIX shell script - http://simonewebdesign.it/install-sublime-text-3-on-linux/
#!/bin/sh
# Sublime Text 3 Install (last update: Monday 13 March 2017)
#
# No need to download this script, just run it on your terminal:
#
# curl -L git.io/sublimetext | sh
# Detect the architecture
if [[ "$(uname -m)" = "x86_64" ]]; then
ARCHITECTURE="x64"
else
ARCHITECTURE="x32"
fi
# Fetch the latest build version number (thanks daveol)
BUILD=$(echo $(curl http://www.sublimetext.com/3) | sed -rn "s#.*The latest build is ([0-9]+)..*#\1#p")
URL="https://download.sublimetext.com/sublime_text_3_build_{$BUILD}_{$ARCHITECTURE}.tar.bz2"
INSTALLATION_DIR="/opt/sublime_text"
# Download the tarball, unpack and install
curl -o $HOME/st3.tar.bz2 $URL
if tar -xf $HOME/st3.tar.bz2 --directory=$HOME; then
sudo mv $HOME/sublime_text_3 $INSTALLATION_DIR
sudo ln -s $INSTALLATION_DIR/sublime_text /usr/local/bin/subl
fi
rm $HOME/st3.tar.bz2
# Add to applications list and set icon
sed 's/Icon=sublime-text/Icon=\/opt\/sublime_text\/Icon\/128x128\/sublime-text.png/g' > $HOME/.local/share/applications/sublime_text.desktop
echo '
Sublime Text 3 installed successfully!
Run with: subl
'
@dud3
Copy link

dud3 commented Jun 20, 2015

This just doesn't work on Fedora 22: /usr/local/bin/subl: line 2: [: ==: unary operator expected

@simonewebdesign
Copy link
Author

@dud3: some other people reported the same problem many times, but I haven't been able to reproduce it since then. Could you provide some more details (e.g. OS architecture, shell)?

Have you tried running the script again?

@measyberger
Copy link

@dud3: I have got the same error on Fedora 22 ... 👎

@kane-thornwyrd
Copy link

@dud3 and the others, just add a check for the args count...

#!/bin/sh
if [ $# -gt 0 ] && [ ${1} == "--help" ]; then
/usr/local/sublime-text_3/sublime_text --help
else
/usr/local/sublime-text_3/sublime_text $@ > /dev/null 2>&1 &
fi

@simonewebdesign
Copy link
Author

@ALL: Works on Fedora 22 Workstation (64-Bit).
I haven't tested other platforms though, so please let me know if you have any issues at all.

@VarunBarad
Copy link

@simon
Thanks, it worked like a charm on Fedora 21 Workstation (64-Bit).

@williamcanin
Copy link

Very good, more if the person wants to cancel the process when enter the password for sudo, it will have to press Ctrl + C three times per exist three dependent on the sudo command (one example).
To circumvent this, and cancel all "sudo" when only is pressed once the Ctrl + C, insert the code below before all commands using "sudo":

#Function that cancels all "sudo" with Ctrl + C
trap ctrl_c INT
sudo -k # Reset sudo
function ctrl_c() {
echo "Aborted."
exit 0
}
echo
echo "For cancel, press Ctrl+C"

@ea2305
Copy link

ea2305 commented Sep 27, 2015

Thank you, I really need this :)

@iferrant
Copy link

Thanks ! Works perfect in Fedora 22!

@eliagbenu
Copy link

In my case I had to extend it by an extra sublime_text before it could work. So finally I ended up with something like

if [ $# -gt 0 ] && [ ${1} == "--help" ]; then
/usr/local/sublime-text-3/sublime_text_3/sublime_text --help
else
/usr/local/sublime-text-3/sublime_text_3/sublime_text $@ > /dev/null 2>&1 &
fi

Hope it helps someone out.

@davidmason
Copy link

Install appeared to work on F23, but I later realized I can't install any packages. I had copied my config from my previous install so I didn't notice at first as my existing packages were still there. I removed my old config to have it start from scratch in case that was the cause, but the following still happens:

In the sublime console straight after startup (with no files open):

DPI scale: 1
startup, version: 3083 linux x64 channel: stable
executable: /opt/sublime_text/sublime_text
working dir: /home/damason
packages path: /home/damason/.config/sublime-text-3/Packages
state path: /home/damason/.config/sublime-text-3/Local
zip path: /opt/sublime_text/Packages
zip path: /home/damason/.config/sublime-text-3/Installed Packages
ignored_packages: ["Vintage"]
pre session restore time: 0.074854
startup time: 0.144206
first paint time: 0.148921
reloading plugin Default.block
<snip>
reloading plugin Default.trim_trailing_white_space
reloading plugin CSS.css_completions
reloading plugin Diff.diff
reloading plugin HTML.encode_html_entities
reloading plugin HTML.html_completions
reloading plugin Package Control.1_reloader
reloading plugin Package Control.2_bootstrap
reloading plugin Package Control.Package Control
plugins loaded
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 158, in on_api_ready
    m.plugin_loaded()
  File "2_bootstrap in /opt/sublime_text/Packages/Package Control.sublime-package", line 103, in plugin_loaded
  File "package_control.loader in /opt/sublime_text/Packages/Package Control.sublime-package", line 193, in add
  File "./zipfile.py", line 919, in __init__
FileNotFoundError: [Errno 2] No such file or directory: '/opt/sublime_text/Installed Packages/0_package_control_loader.sublime-package'
Package Control: Not running package cleanup since bootstrapping is not yet complete

Then when I run Package Control: Install Package and select a package to install, it adds:

Traceback (most recent call last):
  File "package_control.package_installer in /opt/sublime_text/Packages/Package Control.sublime-package", line 159, in on_done
  File "package_control.package_disabler in /opt/sublime_text/Packages/Package Control.sublime-package", line 74, in disable_packages
ImportError: No module named 'package_control'

Any idea why this would happen or how I can fix it?

@f0t0n
Copy link

f0t0n commented Jan 17, 2016

Same here. Choose and select a package to install and nothing happens. The console output is listed below.

Traceback (most recent call last):
  File "package_control.package_installer in /home/f0t0n/.config/sublime-text-3/Installed Packages/Package Control.sublime-package", line 159, in on_done
  File "package_control.package_disabler in /home/f0t0n/.config/sublime-text-3/Installed Packages/Package Control.sublime-package", line 74, in disable_packages
ImportError: No module named 'package_control'

@simonewebdesign
Copy link
Author

I'm not sure why that is happening or how I can fix it. I don't know if it's related to the install script. I'll investigate.

@cyberdemon8
Copy link

The url for download is changed with latest 3103 version, please change row 22 from:
URL="http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_{$BUILD}_{$ARCHITECTURE}.tar.bz2"
to
URL="https://download.sublimetext.com/sublime_text_3_build_{$BUILD}_{$ARCHITECTURE}.tar.bz2"

@binaryreverse
Copy link

Thanks for the last comment on the changed URL. This worked without problems.

@levilliard
Copy link

Thx a lot ! Works perfect on Fedora 23

@simonewebdesign
Copy link
Author

The issue regarding the package manager has been fixed. If anyone has encountered any other issues at all just let me know.

@djx2unv
Copy link

djx2unv commented Mar 5, 2016

Worked out, Fedora 23. Thanks a lot, bro!! Best regards!

@Koisell
Copy link

Koisell commented Apr 21, 2016

I have the 3083 built and I want to update it without losing any package I installed through Package Control. How can I do?

@MaximusSeniorem
Copy link

MaximusSeniorem commented May 4, 2016

I had to update https://sublime.wbond.net/ to https://packagecontrol.io
Ortherwise curl launch an SSL error

also change /bin/subl to /usr/local/bin/subl (otherwise I get an error message with the subl command... RHEL specific I guess)

Lastly create "Installed Package" sub folder before moving package control file there.

(RHEL 6)

@MaximusSeniorem
Copy link

@Koiseli:
I think your packages are installed in $HOME/.conf/Installed \Packages or Packages
If not, you should move those from the /opt/sublime-text/Installed \Packages there and put a symbolic link in place

@David-Else
Copy link

hi, is this confirmed working in fedora24? thanks!

@hebertjulio
Copy link

Yes! I am using Fedora 24 and it work fine for me. 👍 Great job!

@rahulchhangani
Copy link

Getting Error
/usr/local/bin/subl: line 2: [: ==: unary operator expected

@t-bltg
Copy link

t-bltg commented Nov 5, 2016

Very convenient script, thanks !

I just had to change one line to make it work on FEDORA 24:

$ curl -LO git.io/sublimetext
$ sed -i '\,sudo mv $HOME/Package,i sudo mkdir -p "$INSTALLATION_DIR/Installed Packages"' sublimetext
$ sh sublimetext

@praneethng
Copy link

HI neok-m4700 can you give me the script you have used for fedora 24?
I was using sublime-text2 on fedora 22 after upgrading to fedora 24 i am not able to open sublimet-text2

@shanginn
Copy link

@praneethng here you go. I made 2 changes at lines #35 and #36
https://gist.github.com/shanginn/046eb3dfdd419a9aae3e2c078c7569a3
But I'm not really sure does it work or not.

@simonewebdesign
Copy link
Author

I've updated the script to no longer install Package Control, as it can now be installed very easily by pressing Ctrl+Shift+P and typing "package control".

@AdmiralAsshat
Copy link

AdmiralAsshat commented May 28, 2017

Sublime Text appears to have an official repo for installing on Fedora now. Does this still need to exist? It has served me well, but at this point I just want migration/removal instructions so that I can safely switch to the official repo.

@simonewebdesign
Copy link
Author

Nice, finally, thanks for pointing that out.

For the migration, unless you have fancy stuff, all you need to do is save your user configuration somewhere (e.g. one convention is to have a dotfiles repository, but you might as well just make a gist or keep it somewhere else), also keep note of your plugins and themes. When you're ready just do rm -rf $(which subl).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment