https://blog.csdn.net/jyfu2_12/article/details/86667132

安装时的错误提示如下:

Error installing Package Control: HTTPS error encountered, falling back to HTTP – <urlopen error="" [errno="" 60]="" operation="" timed="" out="">Error installing Package Control: HTTP error encountered, giving up –</urlopen> <urlopen error="" [errno="" 60]="" operation="" timed="" out="">error: An error occurred installing Package Control</urlopen>

Please check the Console for details

Visit https://packagecontrol.io/installation for manual instructions

那我们就 顺着 https://packagecontrol.io/installation 向下来。先给本页面代理,并替换安装地址,最终代理后的地址如下: http://www.miaoqiyuan.cn/products/proxy.php/https://packagecontrol.io/installation

1. 直接访问上面提到的安装地址,获取安装代码

程序会自动替换安装脚本的网络路径,已我已经部署好的地址为例,安装代码为:

 
image
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://www.miaoqiyuan.cn/products/proxy.php/http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

2. 打开Sublime Text 控制台,复制代码安装

打开 Sublime Text,在 View 菜单下,找到 Show Console。在底部控制台复制上面的代码后,按回车,很快就会安装完毕(和官方安装方法一致)。

 
image

安装完毕后,别忘了参考上面的教程更改 channels,请参考文章:http://www.miaoqiyuan.cn/p/package-control-error

项目已经在 Gitee.com 开源,可以直接去 https://gitee.com/mqycn/Proxy-for-Chinese-programmer/下载。

已经实现:

1、支持自动更新 虽然之前可以使用,但是因为 是手工保存到服务器静态文件,只能使用老的插件。现在设置的每两小时更新一次

2、在官网出现故障时仍能访问 在自动和官网同步时,会 判断 官网是否返回正确的代码

3、一套最好能支持多个代理 借用 PHP 的PATH_INFO,可以非常方面的传入任何 URL,可以对全网实现代理。当然,本程序也提供了白名单。

当然代理是有前提的:

1、对于被墙的代理,必须将域名放到 境外服务器

2、对于Sublime Text,服务器必须支持 IPv6

 

今天 Sublime Text 安装 插件是,提示错误:

Package Control
There are no packages available for installation
Please see https://packagecontrol.io/docs/troubleshooting for help

控制台提示:

Package Control: Attempting to use Urllib downloader due to WinINet error: Error downloading channel. Connection refused (errno 12029) during HTTP write phase of downloading https://packagecontrol.io/channel_v3.json.
Package Control: Error downloading channel. URL error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 downloading https://packagecontrol.io/channel_v3.json.

也考虑过最简单的方法,将channel_v3.json 保存到自己的服务器上,修改 Sublime Text 的配置文件。这种缺点也很明显,会和官方插件不同步(虽然新出的插件页用不到),编写了一个小代理脚本,会两个小时自动同步一次,完美的解决了这个问题。当然,官网服务器加入出现故障时,本脚本不会更新,仍使用本地缓存。

Package Control 不能使用?

使用方法如下(以我我已经部署好的地址为例,如果不放心我,可以在页面底部下载源码自行部署):
1. 打开 Settings User

打开 Sublime Text,选择 references -> Package Setting -> Package Control -> Settings User

2. 输入配置信息 打开配置文件后,输入 channels 信息(请参考页面顶部路径说明 ,以线上地址为例):

这里输入代码

3. 保存后,Package Control 已经可以正常使用了

Package Control 不能安装?

Package Control 可以安装插件了,在备用机例发现 Package Control 现在竟然无法安装成功,这个有点繁琐,还在用同一个脚本也解决了。

安装时的错误提示如下:

Error installing Package Control: HTTPS error encountered, falling back to HTTP – 
Error installing Package Control: HTTP error encountered, giving up – 
error: An error occurred installing Package Control

Please check the Console for details

Visit https://packagecontrol.io/installation for manual instructions

那我们就 顺着 https://packagecontrol.io/installation 向下来。先给本页面代理,并替换安装地址,最终代理后的地址如下: http://www.miaoqiyuan.cn/products/proxy.php/https://packagecontrol.io/installation

1. 直接访问上面提到的安装地址,获取安装代码

程序会自动替换安装脚本的网络路径,已我已经部署好的地址为例,安装代码为:

1
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://www.miaoqiyuan.cn/products/proxy.php/http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

2. 打开Sublime Text 控制台,复制代码安装

打开 Sublime Text,在 View 菜单下,找到 Show Console。在底部控制台复制上面的代码后,按回车,很快就会安装完毕(和官方安装方法一致)。

安装完毕后,别忘了参考上面的教程更改 channels

问题解决,吹吹牛

这样处理后已经能用了,趁现在心情好,顺便吹吹牛,煽煽情:

最为一个中国的开发者,吃饭的家伙经常 因为 墙 的问题 没法使用。

虽然 阿里、网易 的镜像能解决大部分问题,但是对于小众的软件就只没办法了(比如 神器 Sublime Text),每次出问题都把自己折腾的焦头烂额,影响工作进度。比如 Sublime Text,之前从同行的博客分享中找到了 channel_v3.json,他的站点因为备案问题,今天也不能访问了。。。

我的目标是这样项目把所有 小工具因墙出现的问题 都解决了,让中国程序员不怕断网、不怕被墙,开开心心快快乐乐的编码。(不管能不能实现,这个牛先吹着)

代理脚本也很简单,只有60行代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
 
    define('CACHE', './proxy/cache/');
    define('CONFIG', './proxy/conf/');
 
    $url = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
    $url = substr($url, 1);
    $url = preg_replace('/(https|http):\//', '$1://', $url);
 
    //验证请求是否合法
    $white = json_decode(file_get_contents(CONFIG . 'white.json'), true);
    $matched = false;
    $verify = false;
    foreach ($white as $item) {
        if (preg_match($item['pattern'], $url)) {
            $matched = true;
            $verify = $item['verify'];
            break;
        }
    }
    if (!matched) {
        header('404 Not Found');
        die("
<h2>Only whitelisted links are allowed</h2>
 
");
    }
 
    //根据请求获取MIME
    $mimes = json_decode(file_get_contents(CONFIG . 'mime-lite.json'), true);
    $ext = explode(".", $url);
    $ext = $ext[count($ext) - 1];
    $ext = '.' . $ext;
    if (empty($mimes[$ext])) {
        $ext = '.html';
    }
    $mime = $mimes[$ext];
 
    //缓存文件,两小时更新一次
    $cache_file = CACHE . md5($cache) . $ext;
    if (!is_file($cache_file)) {
        $will_refrech = true;
    } elseif (time() - filemtime($cache_file) > 7200) {
        $will_refrech = true;
    } else {
        $will_refrech = false;
    }
 
    if ($will_refrech) {
        $body = file_get_contents($url);
        if (empty($verify) || preg_match($verify, $body)) {
            file_put_contents($cache_file, $body);
        }
    }
 
    //输出结果
    if (is_file($cache_file)) {
        header("Content-Type: ${mime}");
        header("Last-Modified:" . gmdate("D, d M Y H:i:s", filemtime($cache_file)) . " GMT");
        header("Content-Length:" . filesize($cache_file));
        echo file_get_contents($cache_file);
    } else {
        header('404 Not Found');
        die("
<h2>Server Error!</h2>
 
");
    }

项目已经在 Gitee.com 开源,可以直接去 https://gitee.com/mqycn/Proxy-for-Chinese-programmer/ 下载。

已经实现:

1、支持自动更新 虽然之前可以使用,但是因为 是手工保存到服务器静态文件,只能使用老的插件。现在设置的每两小时更新一次

2、在官网出现故障时仍能访问 在自动和官网同步时,会 判断 官网是否返回正确的代码

3、一套最好能支持多个代理 借用 PHP 的PATH_INFO,可以非常方面的传入任何 URL,可以对全网实现代理。当然,本程序也提供了白名单。

当然代理是有前提的:

1、对于被墙的代理,必须将域名放到 境外服务器

2、对于Sublime Text,服务器必须支持 IPv6

白名单设置说明
配置文件在: proxy/conf/white.json

1
2
3
4
5
6
7
8
9
10
[
  {
    "pattern": "/https\\:\\/\\/packagecontrol\\.io\\/channel_v3\\.json/",
    "verify": "/\"repositories\"/"
  },
  {
    "pattern": "网址正则正则表达式,只有在列表中匹配到的url才可以访问",
    "verify": "内容正则正则表达式,只有返回的内容能匹配本规则,才会写入缓存。也可以为false,不判断直接写入缓存"
  },
]

本条目发布于二月 11, 2019。属于PHP分类。

作者:那猫小帅
链接:https://www.jianshu.com/p/02665121caf9
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

sublime package control失败的更多相关文章

  1. sublime Text 2 安装Sublime Package Control

    Sublime Text 2 安装 Sublime Package Control,通过 Sublime Package Control,安装.升级和卸载 Package. 安装 Package Co ...

  2. 解决sublime package control 出现There are no packages available for installation

    昨天在安装了一下Sublime Text 3,在安装插件的过程中出现了一些问题,现在记录一下,也给遇到同样问题的朋友一些帮助.在安装插件的时候,需要先安装一下Package Control. 安装Pa ...

  3. 安装 sublime package control

    import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_p ...

  4. 通过 Sublime Package Control 安装插件后不能用的解决办法

    最近使用 Sublime 写 SASS 的时候需要使用高亮功能,通过 Package Control 安装了相关插件,但是安装之后没有反应,再次打开 Package Control 的时候,已经搜索不 ...

  5. sublime package control INSTALLATION

    Simple The simplest method of installation is through the Sublime Text console. The console is acces ...

  6. Sublime package control错误:There are no packages available for installation

    查了很多资料都没有解决. 改host---无效 复制一个文件的什么的,我看到版本比我的旧,就没有用 终于最后一个解决了.最终解决方案 解决: 更新下Package Control就好了: prefer ...

  7. sublime package control以及常用插件

    一.package Control安装 1.sublime 3 import urllib.request,os; pf = 'Package Control.sublime-package'; ip ...

  8. sublime Text 3安装 Sublime Package Control(这个可以用于安装各种插件)时显示默认安装的c盘内存不够的解决方案

    首先先关闭st3 之后在安装的路径下创建Data文件夹,然后打开st3(sublime Text 3简写)CTRL+`打开命令行输入以下内容,直接回车,等待下载完成就可以了import urllib. ...

  9. sublime Package Control 设备

    sublime  插件的官方网站 https://sublime.wbond.net/ 点击Installation watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5u ...

随机推荐

  1. inotify监测实例

    /************************************************************************* > File Name: inotify.c ...

  2. HashMap,Hash优化与高效散列

    OverView Hash table based implementation of the Map interface. This implementation provides all of t ...

  3. eclipse里启动tomcat无法通过127.0.0.1访问

    在eclipse里面添加tomcat,再发布一个web项目进去,然后启动tomcat,日志显示tomcat在eclipse里面正常启动,hosts里面配置了ip跟域名的对应关系. 通过域名访问可以正常 ...

  4. Linux学习---linux的svn的配置与安装

    1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion   3.检查是否安装成 ...

  5. myeclipse10安装了activiti插件后创建BPMN 文件时报错,

    以上错误需要,下载一个补丁. 补丁地址:http://www.shareyx.com/blog/2 补丁的安装可以参考: http://jingyan.baidu.com/article/dca1fa ...

  6. 搭建双系统win10+ubuntu17.10

    0. 序言 这里采用先装win10,再装ubuntu的顺序.这样可以避免后面系统启动项设置的问题.都采用UEFI引导方式,且使用usb2.0的u盘来引导(3.0的话,要准备好3.0的驱动).另外注意的 ...

  7. 265. Paint House II 房子涂色K种选择的版本

    [抄题]: There are a row of n houses, each house can be painted with one of the k colors. The cost of p ...

  8. win7 python2.7安装PIL库

    一.前言 遇到客户给了一个需求,需要拼接多个图片,上网找到一个解决方式,不过是需要安装PIL的,相信安装过这个库的应该都遇到很多问题,接下来说说怎么解决. 我的环境是: 操作系统:win10 64bi ...

  9. Windows Python 2.7环境搭建

    一.安装及修改环境变量 我安装的版本是python-2.7.15.amd64,因为2.7.9之后的版本都会安装好pip.将Python执行文件所在文件夹加入path路径,C:\Python27.将pi ...

  10. Golang之struct

    1.用来定义复杂数据结构 2.struct里面可以包含多个字段(属性) 3.struct类型可以定义方法,注意和函数的区分. 4.struct类型是值类型 5.struct类型可以嵌套 6.Go语言没 ...