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. CentOS装机必备-基本设置以及缺失文件

    主要是虚拟机中安装CentOS每次总会做一些设置,记录下来方便以后. 纯粹基本设置,比如本地SecureCRT可以连接虚拟机中的CentOS. 复杂的非基本设置见:Linux  命令集锦 设置网络 自 ...

  2. rook

    https://github.com/rook/rook https://rook.github.io/docs/rook/master/ Rook是在云本地环境中运行的分布式存储系统的开源编排器. ...

  3. Git报错的解决方案汇总

    错误1: error: Your local changes to the following files would be overwritten by merge:Please, commit y ...

  4. KVC(forKey,forKeyPath)

    KVC是Cocoa一个大招,非常牛逼. 利用KVC可以随意修改一个对象的属性或者成员变量(并且私有的也可以修改)  如:Person.m文件中: @implementation Person{    ...

  5. Division of Line Segment

    Division of Line Segment /** */ void Line::EqualDivision(int nCount, QLineF fline, QList<QPointF& ...

  6. 怎样在Windows与Centos下的Linux间共享文件,如果mnt文件夹不显示,可能是mnt缺少共享支持

    mnt中的hgfs文件夹就是Linux系统中挂载共享文件的默认文件夹.有的人按步骤共享之后mnt中没有出现共享的文件,可能是因为你的mnt缺少共享支持. 此时可以在Terminal中输入:sudo m ...

  7. dedecms图片上传函数

    /** * 图片上传类 * @param $file上传图片信息 * @param $ty */ function upload_pic($file, $ty) { if (!is_uploaded_ ...

  8. python pip 代理设置

    pip install --proxy="user:password@server:port" packagename origin url: http://xiuxixiuxi. ...

  9. Mac 安装GCC

    OS X上安装Homebrew和GCC的图文攻略 2016年08月31日 11:21:27 白马负金羁 阅读数:11380 标签: OS XGCCHomebrew 更多 个人分类: 应用技巧   版权 ...

  10. qt学习(三) qt布局

    使用横向与竖向.网格三种布局嵌套使用后可以组合出很复杂的界面. 这里向大家推荐这篇博客 http://www.cnblogs.com/Bonker/p/3454956.html 我这里使用布局做了一个 ...