无法在 Sublime text 2 中安装包控件
Posted
技术标签:
【中文标题】无法在 Sublime text 2 中安装包控件【英文标题】:Can't install package control in Sublime text 2 【发布时间】:2012-08-30 08:00:54 【问题描述】:我使用的是 ubuntu 12.04。我按照网站上所说的做了,但我收到了这个错误:
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));
open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
Traceback (most recent call last):
File "<string>", line 1, in <module>
IOError: [Errno 13] Permiso denegado: u'/home/housepc/.config/sublime-text-2/Installed Packages/Package Control.sublime-package'
permiso denegado : "permission denied"
我可以做些什么来安装它?
【问题讨论】:
【参考方案1】:只需打开终端并执行此行:
sudo chmod -R 777 "/home/youruser/.config/sublime-text-2/Installed Packages/"
并尝试再次安装包控件。
【讨论】:
对于所有权限问题,chown 的答案难道不会比旧的 777 解决方案更干净吗? 是的,我想是的,但是很多用户仍然使用 chmod 777。两者的目的都是阻止/允许权限。 在安装后续包时,用户可能必须对 /Packages/ 和 /Installed Packages/ 执行相同的操作,这对某些人来说可能很明显,但我花了 30 分钟的挫折才最终弄明白. @SoldierCorp 正如 mattsheperd 指出的那样,一些用户将需要使用“sudo chmod -R 777”/home/youruser/.config/sublime-text-2/Packages/”。请添加它对你的回答 这不是一个很好的解决方案。正如所评论的,chown
方法更好,或者将权限设置为 755 而不是 777。此外,将chown
应用于sublime-text-2
文件夹会更好,因为它可以解决与其中其他文件夹中的写访问权限相关的问题。基本上,@Goddard 的回答总体上更好。【参考方案2】:
最简单的方法就是使用 sudo privalges 运行 sublime text。
我只是用 ctrl+alt+t
打开一个终端确保您是目录的所有者,而不是 root
sudo chown -R youruser:youruser "/home/youruser/.config/sublime-text-2"
sudo sublime
然后用 ctrl+` 打开 sublime 文本控制台并输入
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
初始安装后就可以正常运行sublime text了。
【讨论】:
这个问题是你每次都需要使用 sudo 权限运行 sublime,否则你将无法使用包控制 检查您的包文件夹并确保它具有正确的权限 @TechyTimo,我成功使用了这个方法,不需要 sublime 就可以用 sudo 运行。 不,这对我有用。它需要以运行权限再次运行,之后一切正常。 ^ 就这么简单,sudo subl
只是以 root 身份运行 sublime text,然后在 root 的位置运行命令。谢谢。然后你可以chown
和所有的东西,但首先,让我安装包控制!【参考方案3】:
最简单的方法是让 sublime-text 文件夹可写:
sudo chmod -R 777 "/home/youruser/.config/sublime-text-2/
或者对于崇高文本 3:
sudo chmod -R 777 "/home/youruser/.config/sublime-text-3/
然后尝试再次安装包控制。
【讨论】:
【参考方案4】:我不相信chmod -R 777
-ing 是解决这个问题的最佳方法。当然,它可以让您安装软件包,但我认为任何人都不应该养成在写访问被拒绝时只打开权限闸门的习惯。在这种情况下,这真的没什么大不了的。我不认为你的 sublime-text 包文件夹是一个高优先级,但仍然养成允许每个人写访问的习惯可能会在以后导致问题,特别是如果最终用户是新的 *nix用户并且不知道为什么他们要更改权限。
(请注意:我正在运行 sublime-text-3,但这无关紧要,因为这是权限问题,而不是 sublime-text 本身的问题)
就我而言,我遇到了两个问题。
Sublime-Text 已安装到正确的目录,但归 root 所有。第一个显而易见的解决方案是 sudo chown -R username:username /home/username/.config/sublime-text-3
。这将目录的控制权交还给了我。
不知何故,我的安装权限被设置为一些奇怪的东西。(在某些时候,我一定是做了错误的设置。那会是什么,或者什么时候让我忘记了,但是众所周知,我在期末考试期间睡眠不足时会做一些愚蠢的事情)
解决这个问题也很简单。 chmod -R 755 /home/username/.config/sublime-text-3/
。允许您写入目录,但不允许其他不应该已经准备好的人在那里写入。除非您有意授予每个人对某个目录的写入权限,否则您最多应该授予775
,它允许同一组中的其他用户写入该目录。
就像我之前说的,如果您系统上的任何用户都可以写入您的 sublime-text 包文件夹,这不一定会成为问题。我看不出它本身有什么真正的问题,但是如果你不知道你的行为的后果,养成使某些东西完全可写的习惯可能会导致一个错误,使你的系统容易受到漏洞的影响。
进一步参考:http://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
【讨论】:
我遇到了第一个问题【参考方案5】:安装 sublime text 后尝试:
sudo /usr/bin/subl
这适用于 Ubuntu 12.04 上的 sublime text 3
【讨论】:
【参考方案6】:另外,请检查您是否不在代理网络上。我只能在切换到非代理网络后安装 Package Control。
【讨论】:
以上是关于无法在 Sublime text 2 中安装包控件的主要内容,如果未能解决你的问题,请参考以下文章
由于从 `https://pypi.python.org/simple/` 返回的“永久移动”错误,`pip` 无法在 Docker 容器中安装包