我按照此在 12.04 上安装了 Sublime Text 2教程。
但是,当我从 Unity 启动器启动程序时,我没有足够的权限。例如,我无法安装软件包,或者当我关闭 Sublime 并重新打开时,如果我将文件夹添加到侧边栏,则该文件夹不再列出。如果我sudo sublime
在终端中运行,则关闭后所有更改都会保留。
我尝试过在 usr/lib 中 chown-ing Sublime Text 2 文件夹,
sudo chown -R mylogin:mylogin /usr/lib/"Sublime Text 2"
但这似乎没有效果。
答案1
通过包管理器(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 <[email protected]>
#
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!"
来源: https://gist.github.com/henriquemoody/3288681
这对我有帮助,我希望它也能帮助其他人!
答案2
基本上,你的问题是你使用错误的冠词:) 如果它是在 SE 网站上,我会给它投反对票。
手动复制不来自 Ubuntu 存储库的内容/usr
是错误的。此目录由 Ubuntu 的包管理器管理,弄乱它会在某些时候给你带来麻烦 - 例如,下次升级系统时,Sublime 可能会被删除而无影无踪。
以 root 身份运行程序更是错误,尤其是对于 SublimeText,它有自己的包管理器,基本上就是从互联网下载东西然后让它在你的电脑上运行。插件中的一个简单拼写错误就可能毁掉你机器上的所有数据。
如果您想在整个系统范围内安装程序,一个合适的解决方案是查找/构建 .deb 文件并安装它 - 这样包管理器就会知道该包。Webupd8 维护一个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
来修复这个问题。
答案3
以下是解决这个问题的方法。
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 中。
sublime.desktop
5)创建一个名为的文件~/.local/share/applications/
并将以下内容粘贴到里面。
[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)完成。
它现在应该安装在您的主目录中,并且您应该不会再有权限问题。
答案4
我认为@Alex L.完全正确。我建议永远不要编辑你的/usr
文件系统,附加商业软件应该安装在/opt
多用户或~/opt
单用户环境中(见Linux 文件系统层次结构尤其/opt
和/home
)。下面再补充几点,使之成为非常好。
您不必将您的应用移至
.local
或/local
;我通常将它们留在~/opt
(NB:波浪号是您的主目录或$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"
在 中创建一个指向 sublime_text 的符号链接
~/bin
,但调用它sublime
;参见步骤 4aAlex L. 的回答多于。user@machine:~$ ln -s ~/opt/Sublime\ Text\ 2/sublime_text ~/bin/sublime
与 Alex L. 的步骤 5 相同,创建一个名为的文件,
sublime.desktop
但~/.local/share/applications/
在字段后面添加,%f
以便您可以从 Nautilus 打开它,如中所述sublime
Exec
这个帖子。另外,不要对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
您不必注销,但如果它没有出现在您的仪表板上,也许您会立即注销。然后在 Nautilus 中查找要打开的文件,右键单击并选择使用其他应用程序打开...然后显示其他应用程序底部的按钮,找到Sublime Text 2在列表中,选择它并点击选择。您的文件应该在 Sublime Text 2 中打开,从现在起,对于该类型的文件,您将看到 Sublime Text 2 已列为选项。您也可以通过右键单击,选择 Nautilus 将其设置为默认设置特性然后打开用最后设为默认突出显示后的按钮Sublime Text 2。当然你也可以使用添加选择Sublime Text 2打开文件类型特性窗口也是如此。