如何安装Sublime Text 2/3?

我按照这个教程 tutorial 在12.04上安装了Sublime Text 2。

然而,当我从Unity启动器启动程序时,我没有足够的权限。例如,我无法安装软件包,或者如果我在侧边栏中添加一个文件夹,关闭Sublime并重新打开后,该文件夹将不再显示。如果我在终端中运行sudo sublime,关闭后所有更改都会保存。

我尝试使用sudo chown -R mylogin:mylogin /usr/lib/"Sublime Text 2"来更改usr/lib下Sublime Text 2文件夹的所有者,但似乎没有效果。


在Debian和Ubuntu上安装Sublime,请运行以下命令。$ wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add - $ sudo apt-get install apt-transport-https $ echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list $ sudo apt-get update $ sudo apt-get install sublime-text #:- https://www.itsmarttricks.com/category/linux-tutorials/ - Mangesh S Dhulap
13个回答

通过软件包管理器(apt-get)安装:

只需将其添加到您的软件包中:

对于Sublime-Text-2:

sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text

对于Sublime Text 3:

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

在终端上运行Sublime Text
subl

通过终端手动安装:

从Sublime官网下载

32位:

wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.2.tar.bz2
tar vxjf Sublime\ Text\ 2.0.2.tar.bz2

64位:
wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.2\ x64.tar.bz2
tar vxjf Sublime\ Text\ 2.0.2\ x64.tar.bz2

对于双方:

sudo mv Sublime\ Text\ 2 /opt/
sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime

来源:http://www.tecmint.com/install-sublime-text-editor-in-linux/

手动通过脚本安装:

在Github上查看这个不错的脚本(“在Fedora上安装Sublime Text”),你可以运行它,只需确保在脚本中编辑“*.tar.bz2”以下载最新版本的Sublime Text!

#!/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!"

Source: https://gist.github.com/henriquemoody/3288681

这对我有帮助,希望也能帮到其他人!

5如何通过终端启动Sublime Text 2? - Vader
@Vader 从终端启动Sublime Text 2的方法可以参考这个链接:http://askubuntu.com/questions/354311/launch-sublime-text-2-from-terminal - Jared Burrows
1另外,如果你想将Sublime作为默认的文本编辑器而不是使用gedit,你需要编辑*/usr/share/applications/defaults.list*文件,将gedit替换为subl。 - Bacara
1在Ubuntu 14.04中使用第二种方法ppa:webupd8team/sublime-text-3完美运行。 - suhailvs
ppa:webupd8team/sublime-text-2是什么?它安全可靠吗?在sublime的主要网站上有安装指南吗? - 000
@Sam 很好的问题。这是ppa:webupd8team/sublime-text-3网站,你可以直接从sublime上下载它。 - Jared Burrows
终端安装完美运行。只要记得先进行更新就好了。我第一次尝试失败是因为我没有这样做。 - nelruk
用引号括起来的名字不需要转义空格,所以说sudo mv "Sublime Text 2" /opt/可能比sudo mv Sublime\ Text\ 2 /opt/更容易些。 - fedorqui
sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime 这个命令是在 Linux 系统中创建软链接的。其中,ln 是 link 的缩写,-s 表示创建软链接,/opt/Sublime\ Text\ 2/sublime_text 是源文件路径,/usr/bin/sublime 是软链接路径。软链接可以让你在不改变原始文件位置的情况下,在其他目录中使用该文件。 - ridoansaleh
现在WebUpd8已经停止维护。Sublime Text 3有官方仓库(终于)。 - Franklin Yu
更具体地说,它位于https://www.sublimetext.com/docs/3/linux_repositories.html。 - reducing activity
E: The repository 'http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu bionic Release' does not have a Release file. - Jadeye

基本上,你的问题在于你正在“使用错误的文章” :) 如果这是在一个SE网站上,我会给它负面评价。
手动复制不来自Ubuntu软件仓库的东西到/usr目录是错误的。这个目录由Ubuntu的包管理器管理,搞乱它将会在某个时刻给你带来麻烦 - 例如,下次升级系统时,Sublime很可能会被完全删除。
以root权限运行程序更加错误,尤其是对于SublimeText这样有自己的包管理器的软件,它基本上从互联网下载东西并在你的计算机上运行。插件中的一个简单拼写错误可能会摧毁你机器上的所有数据。
一个正确的解决方法,如果你希望系统范围内安装该程序,是找到/构建一个.deb文件并进行安装 - 这样包管理器就会知道这个软件包的存在。Webupd8维护了一个{{link1:SublimeText2的PPA},你可以直接使用那个。

然而,有一个更懒的解决方案,我个人正在使用-只需将SublimeText解压到您的家目录中的某个位置,在您的家目录中创建一个bin目录,并将sublime_text可执行文件链接到该目录中:

mkdir ~/bin
ln -s ~/wherever/sublime/is/sublime_text ~/bin

之后,您可以通过在控制台中键入sublime_text来运行Sublime Text,无论在哪个目录下。这不需要任何root权限,编辑器也能正常运行。
该文章还介绍了一些shell集成功能,例如将sublime_text注册为默认编辑器并添加图标,但我懒得去做 - 不过,我相信这可以在不影响系统范围设置的情况下完成。
然而,这并不能解释您遇到的权限问题 - SublimeText无论如何都会将所有设置存储在您的主文件夹中,所以即使您将其系统范围安装,也不应该出现问题。可能的情况是您第一次使用超级用户权限(即从sudo shell)启动它,因此编辑器的配置目录(位于~/.config/sublime-text-2)现在属于root。您需要执行类似以下操作:
sudo chown -R yourusername:yourusername /home/yourusername/.config/sublime-text-2

修复这个问题。

你能详细解释一下关于创建一个bin目录并进行符号链接的部分吗? - hellocatfood
@hellocatfood:我稍微扩展了我的回答。 - Sergey

这是如何解决的。
1)按照链接网页中的步骤逆序撤销所有操作。
1a)如果您没有保存原始的defaults.list副本,则打开终端并运行。
sudo cp /usr/share/applications/defaults.list /usr/share/applications/defaults.list.bak && cat /usr/share/applications/defaults.list.bak | sed "s/sublime\.desktop/gedit.desktop/g" | sudo tee /usr/share/applications/defaults.list

2)获取您想要的Sublime版本,并将其解压到当前目录。
3)在bash中使用cd命令切换到您解压Sublime的目录。
4)mv Sublime\ Text\ 2 ~/.local 4a)如果您希望能够从命令行运行Sublime,请运行mkdir -p ~/bin && ln -s ~/.local/Sublime\ Text\ 2/sublime_text ~/bin/sublime。默认的.bashrc会在下次启动shell时将~/bin添加到$PATH中。
5)在~/.local/share/applications/中创建一个名为sublime.desktop的文件,并将以下内容粘贴进去。
[Desktop Entry]
Version=1.0
Name=Sublime Text 2
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Text Editor

Exec=~/.local/Sublime\ Text\ 2/sublime_text
Terminal=false
Icon=~/.local/Sublime Text 2/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=~/.local/Sublime\ Text\ 2/sublime_text -n
TargetEnvironment=Unity

6) test -e ~/.local/share/applications/defaults.list -a 1$(grep -sc \[Default\ Applications\] ~/.local/share/applications/defaults.list) != 10 || echo "[Default Applications]" >> ~/.local/share/applications/defaults.list; grep gedit.desktop /usr/share/applications/defaults.list | sed "s/gedit\.desktop/sublime.desktop/g" >> ~/.local/share/applications/defaults.list

7) 完成。
现在应该已经在您的个人目录中安装好了,并且您不再遇到权限问题。

OP 可能需要删除 / 更改 ~/.config/sublime-text-2 目录,因为这是问题的根源。不管怎样,感谢提供详细的说明。 - Sergey
2请撰写一个新的“如何安装Sublime”的问题,并提供答案。这将是一个很好的贡献,使人们能够正确进行操作,而不是按照无法解决问题的博文进行操作! - Jorge Castro
@Sergey 是的,那也可能行得通。然而,与链接的指示相比,一个大问题是它要求你手动将某些东西安装到 /usr/lib 目录下,这样做通常不太好。 - Alex L.

你还可以从Sublime的官方网站下载适用于你特定架构的Debian软件包,然后执行以下操作;
cd download_path
sudo dpkg -i package.deb

例如,如果我下载的是适用于64位架构的文件,并且存放在“Downloads”目录中,文件名为“sublime-text_build-3080_amd64.deb”,那么我将运行以下命令:
cd ~/Downloads
sudo dpkg -i sublime-text_build-3080_amd64.deb

在我的情况下,是Sublime Text 3,你也可以为你的Sublime Text 2获取。

我认为@Alex L.是完全正确的。 我建议永远不要编辑您的/usr文件系统,商业软件应该安装在/opt(多用户)或~/opt(单用户)中(参见Linux文件系统层次结构,特别是/opt/home)。这里只是一些额外的添加,使它真正好看。
  1. 你不需要将你的应用程序移动到 .local 或者 /local;我通常只是把它们放在 ~/opt 中(注意:波浪线表示你的主目录或者 $HOME)。

    user@machine:~$ cd ~/Downloads
    user@machine:~/Downloads$ cd wget http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.1.tar.bz2
    user@machine:~/Downloads$ cd ..
    user@machine:~$ tar -C ~/opt -xf "~/Downloads/Sublime Text 2"
    
  2. ~/bin 中创建一个到 sublime_text 的符号链接,但是将其命名为 sublime;参见上面 Alex L.'s answer 的第4a步骤。

    user@machine:~$ ln -s ~/opt/Sublime\ Text\ 2/sublime_text ~/bin/sublime
    
  3. 和 Alex L. 的第5步相同,在 ~/.local/share/applications/ 中创建一个名为 sublime.desktop 的文件,但是在 Exec 字段中的 sublime 后面添加 %f,这样你就可以从 Nautilus 中打开它,如 this post 所述。同时在 Icon 字段中不要转义空格,并使用完整路径,不要使用波浪线。将 <user> 替换为你的用户名。

    [Desktop Entry]
    Version=1.0
    Name=Sublime Text 2
    GenericName=Text Editor
    Exec=/home/<user>/bin/sublime %f
    Terminal=false
    Icon=/home/<user>/Sublime Text 2/Icon/48x48/sublime_text.png
    Type=Application
    Categories=Development;IDE;TextEditor
    X-Ayatana-Desktop-Shortcuts=NewWindow
    
    [NewWindow Shortcut Group]
    Name=New Window
    Exec=/home/<user>/bin/sublime -n
    TargetEnvironment=Unity
    
  4. 你不需要注销,但是如果它没有立即显示在你的 Dash 中,可能需要这样做。然后在 Nautilus 中寻找一个要打开的文件,右键点击并选择“使用其他应用程序打开...”,然后在底部点击“显示其他应用程序”按钮,在列表中找到Sublime Text 2,选择它并点击“选择”。你的文件应该会在 Sublime Text 2 中打开,从此以后对于该类型的文件,你将看到 Sublime Text 2 已经作为一个选项列出。你也可以通过在 Nautilus 中右键点击,选择“属性”,然后在“打开方式”中点击“设为默认”按钮来将其设置为默认程序,然后高亮显示Sublime Text 2。当然,你也可以在“属性”窗口中使用“添加”来选择Sublime Text 2来打开文件类型。


1没有为Exec键提供完整路径,桌面文件将无法在所有情况下正常工作(尽管大部分时间它确实可以正常工作)。 - Alex L.
谢谢Alex L.! 很高兴知道这个!我对我的sublime-text-2配置非常满意,到目前为止一切都运行得很好。非常失望地看到有人被这篇文章误导了:(。不过现在好像由WebUpd8提供了一个ppa,用户可以通过apt-get进行安装:)。 - Mark Mikofski

在终端中输入以下命令,适用于Sublime Text 2:
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text

对于Sublime Text 3:
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

在Ubuntu上安装Snap

sudo apt install snapd

安装Sublime Text
sudo snap install sublime-text --classic

注意:snapd仅适用于Ubuntu 16.04或更高版本。

在12.04上,sudo apt install snapd不起作用,因为snapd不在12.04默认的软件源中,而且在14.04及更高版本中可以用apt替代apt-get。 - karel
实际上,snapd只适用于Ubuntu 16.04或更高版本,所以对你来说无法使用。 - rhoitjadhav

  1. 官方网站下载deb包。
  2. 通过命令$ sudo dpkg -i 路径/到/文件.deb安装软件包。
  3. /opt/sublime_text/sublime_text启动程序。

如Leonard Kakande所提到的,您可以从官方存储库安装它。不过,它只适用于Sublime Text 3。
在终端中运行以下命令:
(1) 安装GPG密钥:
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -

(2)选择使用的频道:

稳定

echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

开发者

echo "deb https://download.sublimetext.com/ apt/dev/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

(3) 更新apt源并安装Sublime Text
sudo apt-get update
sudo apt-get install sublime-text

我最近为了方便你们做了这个: https://github.com/TCattd/sublime-text-linux-installer 一个Sublime Text 2和Sublime Text 3的bash脚本安装程序。只需下载其中一个脚本,ST2或ST3。
对于ST2是:st2install
将其放在你的主文件夹中。然后从终端(在同一主文件夹中)运行:
sudo bash st2install

那就可以解决所有问题。
如果有新的ST2版本推出,你也可以用相同的脚本进行升级。安装/升级ST3也是一样的道理。
而且,使用这些安装程序安装的两个版本可以和谐共存,不会发生冲突。
希望能对你有所帮助 ;)