问题描述
根据这个tutorial,我在12.04安装了Sublime Text 2。
但是,从Unity启动程序启动程序时,我没有足够的权限。例如,我无法安装软件包,或者如果我在关闭Sublime并重新打开时向侧栏添加文件夹,则不再列出该文件夹。如果我在终端中运行sudo sublime
,关闭后所有更改都将保留。
我试过chown-ing在usr /lib sudo chown -R mylogin:mylogin /usr/lib/"Sublime Text 2"
中的Sublime Text 2文件夹,但是这似乎没有效果。
最佳解决思路
通过软件包管理器(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
通过终端手动安装:
从崇高网站下载:
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!"
来源:https://gist.github.com/henriquemoody/3288681
这对我有帮助,我希望它能帮助其他人!
次佳解决思路
基本上,你的问题是你正在使用一个错误的文章:)如果它是在SE网站上,我会down-vote它。
将不是来自Ubuntu存储库的东西手动复制到/usr
中是错误的。这个目录由Ubuntu的软件包管理器管理,并且在这个目录下搞乱它会给你带来麻烦 – 例如,下次你升级你的系统时,Sublime可能会被删除而没有任何痕迹。
以超级用户身份运行程序甚至更加笨拙,特别是在SublimeText的情况下,它有自己的包管理器,它基本上从互联网上下载东西并让它在你的计算机上运行。插件中的简单拼写错误可能会破坏机器上的所有数据。
一个合适的解决方案,如果你想安装程序system-wide,将找到/建立一个.deb文件并安装它 – 这样包管理器会知道这个包。 Webupd8维护一个PPA for SublimeText2,所以你可以使用它。
但是,我个人使用的解决方案非常简单 – 只需在您的主目录中的某个位置解压缩SublimeText,在您的主目录中创建bin
目录,然后将sublime_text
可执行文件链接到该目录中即可:
mkdir ~/bin
ln -s ~/wherever/sublime/is/sublime_text ~/bin
之后,您可以从任何目录在控制台中输入sublime_text
来运行Sublime Text。这根本不需要root权限,编辑器运行得很好。
这篇文章还做了一些shell集成,比如注册sublime_text作为默认编辑器并添加一个图标,我懒得这样做 – 但是,我确信它可以在不破坏system-wide设置的情况下完成。
但是,这并不能解释您所拥有的权限问题 – SublimeText无论如何都将其所有设置存储在您的主文件夹中,因此即使您安装了它,system-wide也不会有问题。可能发生的情况是,您第一次以超级用户权限(即来自sudo shell)启动它,因此编辑器的配置目录(在~/.config/sublime-text-2
中)现在由root
拥有。你需要做类似的事情
sudo chown -R yourusername:yourusername /home/yourusername/.config/sublime-text-2
解决这个问题。
第三种解决思路
这是如何解决这个问题。
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)获取你想要的崇高版本,并将其提取到当前目录。
3)在bash cd
到您提取崇高的目录
4)mv Sublime\ Text\ 2 ~/.local
4a)如果你想能够从命令行运行崇高,然后运行mkdir -p ~/bin && ln -s ~/.local/Sublime\ Text\ 2/sublime_text ~/bin/sublime
。下次您的shell启动时,默认.bashrc
会将〜/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)完成。
它现在应该在本地安装在您的主目录中,并且您不应该再有权限问题。
第四种思路
您也可以从the sublime website下载适用于您特定体系结构的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
在我的情况下,这是崇高的文字3,你也可以获得崇高的文字2
第五种思路
在终端中键入以下命令,以获得Sublime Text 2:
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text
对于崇高的文字3:
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer
第六种思路
我认为@Alex L.是完全正确的。我建议绝对不要编辑您的/usr
fs,add-on商业软件应安装在/opt
中,用于multi-user或~/opt
,适用于单用户(请参阅Linux Filesystem Hierarchy特别是/opt
和/home
)。这里只是一些补充,使它非常好。
-
您无需将您的应用移至
.local
或/local
;我通常只是将它们留在~/opt
(n.b .:代字符是您的主目录或$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"
-
在
~/bin
中创建符号链接sublime_text,但将其称为sublime
;请参阅上述Alex L.’s answer中的步骤4a。user@machine:~$ ln -s ~/opt/Sublime\ Text\ 2/sublime_text ~/bin/sublime
-
与Alex L.的步骤5相同,在
~/.local/share/applications/
中创建一个名为sublime.desktop
的文件,但在Exec
字段中的sublime
后面添加%f
,以便您可以从this post中描述的Nautilus中打开它。也不要为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,right-click中打开的文件,然后选择打开其他应用程序…,然后在底部显示其他应用程序按钮,在列表中找到Sublime Text 2,选择它并点击选择。您的文件应该在Sublime Text 2中打开,从现在开始,对于该类型的文件,您将看到Sublime Text 2已经列为选项。您也可以将它设置为Nautilus的默认值right-clicking,选择属性,然后选择打开方式,最后在突出显示Sublime Text 2后设置为默认按钮。当然,您可以使用Add来选择Sublime Text 2以从属性中打开文件类型窗口以及。
第七种思路
我最近为了方便您做了这个:https://github.com/TCattd/sublime-text-linux-installer
Sublime Text 2和Sublime Text 3 bash脚本安装程序。只需下载其中一个脚本ST2或ST2即可。
对于ST2是:st2install
把红外线放在你的家庭文件夹中然后形成一个终端(并在同一个主文件夹中)运行:
sudo bash st2install
这将会照顾所有人。
如果弹出新的ST2版本,您也可以使用该脚本进行升级。同样适用于安装/升级ST3。
使用这些安装程序的两个版本都可以在一起生活而不会发生冲突。
希望能帮助到你 😉
第八种思路
我遇到了同样的问题,并没有成功地遵循上述提供的解决方案。对我来说是什么是以下solution。
主要有:
-
关闭所有的sublime应用程序实例
-
打开崇高的桌面文件
sudo gedit /usr/share/applications/sublime-text-2.desktop
-
通过替换来编辑文件
Exec=/usr/bin/subl %F
同
Exec=env UBUNTU_MENUPROXY=0 /usr/bin/subl %F
-
删除崇高的配置文件配置文件夹
rm -fR ~/.config/sublime-text-2
-
从顶部菜单或快捷方式开始崇高
第九种思路
-
从official site下载deb包。
-
通过
$sudo dpkg -i path_to_the_file.deb
安装软件包 -
从
/opt/sublime_text/sublime_text
启动程序