Skip to content

Instantly share code, notes, and snippets.

@henriquemoody
Last active July 8, 2021 09:54
Show Gist options
  • Star 90 You must be signed in to star a gist
  • Fork 62 You must be signed in to fork a gist
  • Save henriquemoody/3288681 to your computer and use it in GitHub Desktop.
Save henriquemoody/3288681 to your computer and use it in GitHub Desktop.
Install Sublime Text on Fedora.
#!/usr/bin/env bash
# Usage: {script} [ OPTIONS ] TARGET VERSION
#
# TARGET Default target is "/usr/local".
# VERSION If not defined tries to get the build into the Sublime Text 2 website.
#
# OPTIONS
#
# -h, --help Displays this help message.
#
# Report bugs to Henrique Moody <henriquemoody@gmail.com>
#
set -e
if [[ "${1}" = '-h' ]] || [[ "${1}" = '--help' ]]; then
sed -E 's/^#\s?(.*)/\1/g' "${0}" |
sed -nE '/^Usage/,/^Report/p' |
sed "s/{script}/$(basename "${0}")/g"
exit
fi
declare URL
declare URL_FORMAT="http://c758482.r82.cf2.rackcdn.com/%s.tar.bz2"
declare PACKAGE="Sublime Text"
declare TARGET="${1:-/usr/local}"
declare VERSION="${2}"
declare BITS=$(uname -m)
if [[ -z "${VERSION}" ]]; then
VERSION=$(
curl -Ls http://www.sublimetext.com/2 |
grep '<h2>Version' |
head -n1 |
sed -E 's#<h2>Version ([0-9.]+)</h2>#\1#g'
)
fi
PACKAGE+=" ${VERSION}"
if [[ "${BITS}" = "x86_64" ]]; then
PACKAGE+=" x64"
fi
URL=$(printf "${URL_FORMAT}" "${PACKAGE}" | sed 's/ /%20/g')
read -p "Do you really want to install \"${PACKAGE}\" on \"${TARGET}\"? [Y/n]: " CONFIRM
CONFIRM=$(echo "${CONFIRM}" | tr [a-z] [A-Z])
if [[ "${CONFIRM}" = 'N' ]] || [[ "${CONFIRM}" = 'NO' ]]; then
echo "Aborted!"
exit
fi
echo "Downloading ${PACKAGE}"
curl -L "${URL}" | tar -xjC ${TARGET}
echo "Creating binary file"
cat > ${TARGET}/bin/subl <<SCRIPT
#!/bin/sh
if [ \${1} == \"--help\" ]; then
${TARGET}/sublime_text_3/sublime_text --help
else
${TARGET}/sublime_text_3/sublime_text \$@ > /dev/null 2>&1 &
fi
SCRIPT
echo "Creating shortcut file"
cat > "/usr/share/applications/sublime-text-2.desktop" <<SHORTCUT
[Desktop Entry]
Name=Sublime Text 2
Comment=Edit text files
Exec=/usr/local/sublime-text-2/sublime_text
Icon=/usr/local/sublime-text-2/Icon/128x128/sublime_text.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Utility;TextEditor;
SHORTCUT
echo "Finish!"
#!/usr/bin/env bash
# Usage: {script} [ OPTIONS ] TARGET BUILD
#
# TARGET Default target is "/usr/local".
# BUILD If not defined tries to get the build into the Sublime Text 3 website.
#
# OPTIONS
#
# -h, --help Displays this help message.
#
# Report bugs to Henrique Moody <henriquemoody@gmail.com>
#
set -e
if [[ "${1}" = '-h' ]] || [[ "${1}" = '--help' ]]; then
sed -E 's/^#\s?(.*)/\1/g' "${0}" |
sed -nE '/^Usage/,/^Report/p' |
sed "s/{script}/$(basename "${0}")/g"
exit
fi
declare URL
declare URL_FORMAT="http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_%d_x%d.tar.bz2"
declare TARGET="${1:-/usr/local}"
declare BUILD="${2}"
declare BITS
if [[ -z "${BUILD}" ]]; then
BUILD=$(
curl -Ls http://www.sublimetext.com/3 |
grep '<h2>Build' |
head -n1 |
sed -E 's#<h2>Build ([0-9]+)</h2>#\1#g'
)
fi
if [[ "$(uname -m)" = "x86_64" ]]; then
BITS=64
else
BITS=32
fi
URL=$(printf "${URL_FORMAT}" "${BUILD}" "${BITS}")
read -p "Do you really want to install Sublime Text 3 (Build ${BUILD}, x${BITS}) on \"${TARGET}\"? [Y/n]: " CONFIRM
CONFIRM=$(echo "${CONFIRM}" | tr [a-z] [A-Z])
if [[ "${CONFIRM}" = 'N' ]] || [[ "${CONFIRM}" = 'NO' ]]; then
echo "Aborted!"
exit
fi
echo "Downloading Sublime Text 3"
curl -L "${URL}" | tar -xjC ${TARGET}
echo "Creating shortcut file"
cat ${TARGET}/sublime_text_3/sublime_text.desktop |
sed "s#/opt#${TARGET}#g" |
cat > "/usr/share/applications/sublime_text.desktop"
echo "Creating binary file"
cat > ${TARGET}/bin/subl <<SCRIPT
#!/bin/sh
if [ \${1} == \"--help\" ]; then
${TARGET}/sublime_text_3/sublime_text --help
else
${TARGET}/sublime_text_3/sublime_text \$@ > /dev/null 2>&1 &
fi
SCRIPT
echo "Finish!"
@martijnvandijk
Copy link

Works like a charm. Had to modify it a bit, I already installed sublime in /opt

@chetu
Copy link

chetu commented Aug 8, 2013

Awesome work !!!

for sublime beta 3 modified script.

_

!/bin/sh

SHORTCUT="[Desktop Entry]
Name=Sublime Text 3
Comment=Edit text files
Exec=/usr/local/sublime-text_3/sublime_text
Icon=/usr/local/sublime-text_3/Icon/128x128/sublime_text.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Utility;TextEditor;"
SCRIPT="#!/bin/sh
if [ ${1} == "--help" ]; then
/usr/local/sublime-text_3/sublime_text --help
else
/usr/local/sublime-text_3/sublime_text $@ > /dev/null 2>&1 &
fi"

curl -L "http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3047_x64.tar.bz2" -o "/usr/src/Sublime Text 3.tar.bz2"
cd /usr/src
tar -xvjf "Sublime Text 3.tar.bz2"
cd "sublime_text_3"
mkdir -pv "/usr/local/sublime-text_3"
mv -fv * "/usr/local/sublime-text_3/"
echo "${SCRIPT}" > "/usr/local/bin/subl"
chmod +x "/usr/local/bin/subl"
echo "${SHORTCUT}" > "/usr/share/applications/sublime-text_3.desktop"

echo "Finish!"

@Strongground
Copy link

Works perfectly. I just get one error when starting sublime:
"/usr/local/bin/subl: 2: [: ==: unexpected operator"

Any idea where this unexpected operator comes from?
I installed on Ubuntu 13.04, 32bit.

@jamerlan
Copy link

jamerlan commented Oct 4, 2013

Strongground, this should work without error

!/bin/sh

SHORTCUT="[Desktop Entry]
Name=Sublime Text 3
Comment=Edit text files
Exec=/usr/local/sublime-text_3/sublime_text
Icon=/usr/local/sublime-text_3/Icon/128x128/sublime_text.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Utility;TextEditor;"
SCRIPT="#!/bin/sh
/usr/local/sublime-text_3/sublime_text $@ > /dev/null 2>&1 &

curl -L "http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3047_x64.tar.bz2" -o "/usr/src/Sublime Text 3.tar.bz2"
cd /usr/src
tar -xvjf "Sublime Text 3.tar.bz2"
cd "sublime_text_3"
mkdir -pv "/usr/local/sublime-text_3"
mv -fv * "/usr/local/sublime-text_3/"
echo "${SCRIPT}" > "/usr/local/bin/subl"
chmod +x "/usr/local/bin/subl"
echo "${SHORTCUT}" > "/usr/share/applications/sublime-text_3.desktop"

echo "Finish!"

@docbillnet
Copy link

I like the repo mentioned above:

wget -O /etc/yum.repos.d/sublime2.repo http://repo.cloudhike.com/sublime2/fedora/sublime2.repo
yum -y install sublime-text

Sadly, though the repo doesn't seemed to be maintained anymore. The newest build is a year old, and the newest Fedora versions supported is also a year old...

@uccmen
Copy link

uccmen commented Jan 11, 2014

I can't see the Sublime icon under Applications after running this script. How do I fix this?

@simonewebdesign
Copy link

@uccmen you need to update the Icon path in the sublime_text.desktop file. Icons are under the /opt/sublime_text/Icon folder (assuming you have installed it there).

Guys, if you need to install Sublime Text 3 in other Linux distros, try this script:
https://gist.github.com/simonewebdesign/8507139

@angvishvish
Copy link

really nice, works like a charm for me too ..
Thanks guys (Y)

@3esmit
Copy link

3esmit commented Mar 4, 2016

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