如何配置dart的pub/flutter代理和镜像

dart默认是使用pub.dev作为pub包管理器的仓库。当你从dart的包仓库获取一个包时,你可能会遇到一直在等待下载的状态

5 min read
By myfreax
如何配置dart的pub/flutter代理和镜像

dart默认是使用pub.dev作为pub包管理器的仓库。当你从dart的包仓库获取一个包时,你可能会遇到一直在等待下载的状态,当然如果你发布一个包也会是同样的情况。在这种情况下你也可以使用第三方镜像源作为pub包管理器的仓库。

在本教程中,将说明如何配置dart包管理器pub代理以及配置第三方镜像源作为pub的镜像。包括使用v2ray作为pub代理,配置Shaodowsocks作为pub代理,Linux/macOS/Windows配置pub代理,使用清华大学镜像配置pub第三方镜像源。

前提条件

你必须有一台shadowsocks/v2ray服务器。这里就不详细说明shadowsocks/v2ray安装过程。

v2ray作为pub代理

如果你使用的是Qv2ray作为客户端。默认情况Qv2ray会创建HTTP的入站方式并监听端口8889。Qv2ray还会配置系统代理和环境变量https_proxy等。你可以在终端运行以下env命令并通过grep命令过滤输出来验证环境变量https_proxy是否正确设置:

env | grep http

输出将如下所示:

HTTPS_PROXY=http://127.0.0.1:8889/
https_proxy=http://127.0.0.1:8889/
HTTP_PROXY=http://127.0.0.1:8889/
http_proxy=http://127.0.0.1:8889/
ftp_proxy=http://127.0.0.1:8889/
FTP_PROXY=http://127.0.0.1:8889/

Shaodowsocks作为pub代理

Polipo是一个Web缓存代理,它支持从sock5协议中获取返回数据,而且还支持其它类型的科学上网工具工具作为后端,并且可以缓存数据来加速网页打开速度。我们需要使用它来转换shadowsocks的sock5协议为HTTP代理。

为了完成这个步骤,我们必须先安装Polipo软件包,如果你使用的是基于Ubuntu/Debian系发行版,可以使用apt包管理器安装Polipo软件包。基于Redhat/CentOS发行版可以使用yum包管理器安装Polipo软件包。命令如下所示:

安装Polipo

Ubuntu/Debian:

sudo apt-get install polipo -y

Redhat/Centos:

sudo yum install polipo -y

配置polipo

以下命令使用root用户启动一个新的子shell执行echo命令echo "socksParentProxy = localhost:1080" >> /etc/polipo/config,将会追加行socksParentProxy = localhost:1080/etc/polipo/config文件中。以配置Polipo使用shadowsocks作为后端获取数据的方式。

sudo sh -c  'echo "socksParentProxy = localhost:1080" >> /etc/polipo/config'
1080是shadowsocks默认使用端口,如更改自行更改端口

然后重启polipo服务,以配置生效:

sudo service polipo restart

验证polipo配置

正常情况下,天朝里的网络是不能访问Google.com的,因此我们使用curl获取www.google.com页面,即可验证是否使用了代理。你将运行以下curl命令进行验证:

http_proxy=http://localhost:8123 curl www.google.com

输出将打印google的搜索页面的源码。

Linux/macOS配置pub代理

export https_proxy=localhost:8123

Windows CMD配置pub代理

export https_proxy=localhost:8123

Windows PowerShell配置pub代理

 $Env:https_proxy="hostname:port"

如果你为你代理设置了验证保护,请使用以下方式配置pub代理。在各个平台下配置设置了验证保护的代理与上述各平台命令类似,只需要简单更改即可:

export https_proxy=username:[email protected]:port

持久化pub代理设置

上述步骤pub代理设置的环境变量都是仅在当前会话中可用,一旦退出后,就需要重新设置。可以将环境变量写入shell启动配置文件中,例如全局的shell配置文件/etc/profile,基于用户的配置文件~/.bashrc~/.zshrc等。

Linux/MacOS

如果你是Linux/MacOS用户,运行以下echo命令并使用重定向操作符>>追加行export https_proxy=hostname:port~/.bashrc文件中:

 echo "export https_proxy=hostname:port" >> ~/.bashrc

如果你使用的是zsh,则将~/.bashrc改为~/.zshrc。要将新添加的环境变量加载到当前shell会话中,请使用以下source命令:

source ~/.bashrc

如果你使用的是zsh,请source你的~/.zshrc文件。

Windows

我的电脑上右击鼠标,在弹出菜单中选择属性。在系统界面选择高级系统设置,打开系统属性,从而进行系统属性配置。在系统属性界面,选择高级,在高级界面选择环境变量,即可打开变量配置界面。可以添加基于用户的环境变量或者系统环境变量,你随意选择一种即可。

配置pub第三方镜像源

这里我们将使用清华大学的dart镜像作为pub的第三方镜像源。如果你不想使用清华大学镜像,只需要替换命令行URL链接即可。

Linux/macOS配置pub镜像源

追加行export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/到~/.bashrc文件中,然后使用source命令让环境变量PUB_HOSTED_URL 在当前shell会话中可用。运行以下命令以设置环境变量PUB_HOSTED_URL

echo 'export PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"' >> ~/.bashrc
source ~/.bashrc

Windows CMD配置pub镜像源

如需要将环境变量PUB_HOSTED_URL

set PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"

Windows PowerShell配置pub镜像源

 $Env:PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub/"

结论

至此,你已经知道如何在window/Linux/MacOS配置pub代理的环境变量。如你有任何疑问,请在下面进行反馈。