2020年11月

在使用Flutter开发过程中,我们经常会遇到需要切换版本的时候,而且flutter切换channel后需要重新下载大量内容,每个channel切换完成后需要再跑flutter doctor,又会有大量的下载,而且还都是国外服务器,下载非常慢。

于是尝试着寻找一款合适的工具,原则是可以跨平台,最好是Golang开发的,很巧的是发现 https://blog.befovy.com/2019/12/fvm-using-go/ 这位Golang博主已经开发完成了,github链接在此,主要的思路与使用Dart编写的fvm异曲同工。

安装

由于我是使用Mac电脑的,所以直接使用brew安装

brew tap befovy/taps
brew install fvm

fvm支持导入已有的SDK,由于我之前安装的是stable的channel,所以使用如下命令:

fvm import stable

等待几分钟后即可全部导入完成。

环境变量配置

在使用fvm之前,实际上我已经手动安装过Flutter,所以需要重新修改下环境变量地址,fvm的默认安装路径如下:

export FLUTTER_PATH=~/Library/Application\ Support/fvm/current
export PATH=$PATH:$FLUTTER_PATH/bin

需要根据自己的电脑终端情况,把上述代码拷贝到.bash_profile或者.zshrc文件。

安装指定版本

如果之前未安装其他版本,需要先安装,例如我安装“1.17.5”版本:

fvm install 1.17.5
# 或者
fvm install 1.17.5 --repo https://mirrors.tuna.tsinghua.edu.cn/git/flutter-sdk.git

上述带--repo表示指定路径,推荐使用国内清华镜像加速下载,不过我在实际使用中出现过下列问题:

fvm: Command 'git' exited with error: chdir ~/Library/Application Support/fvm/versions/1.17.5: no such file or directory

结果去掉--repo就正常下载了,如果遇到类似的问题,可以带和不带--repo都试下,我遇到的就是不带是OK的。

使用指定版本

安装好指定版本以后,可以直接使用use命令来使用:

fvm use 1.17.4
flutter doctor

secureCRT是一款windows连接Linux的工具,同时内置了SFTP工具,比较方便一边敲命令一边传输文件。

快捷键 alt+P :打开一个SFTP新窗口

需要配置下SFTP本地的路径,如下:

然后就可以通过SFTP往服务器推文件,命令如下:

#进入本机目录
lcd D:/  
#进入主机目录
cd /home/  
#上传本地文件到服务器(文件夹加 -r选项,单个文件去掉)
put -r abc
#下载服务器文件至本地(文件夹加 -r选项,单个文件去掉)
get -r abc 

最近接手一个维护项目由于历史久远,导致原有的程序只能跑在debian 6 系统上,以下作为记录:

1.更换系统源

由于debian官方源已经6和7的源放入存档了,导致安装ca-certificates失败,所以需要更新源。

把原来的源修改为http://archive.debian.org/debian/,我的修改后的如下:

deb http://archive.debian.org/debian/ squeeze main
deb-src http://archive.debian.org/debian/ squeeze main
deb http://archive.debian.org/debian/ squeeze-updates main
deb-src http://archive.debian.org/debian/ squeeze-updates main
deb http://mirrors.ustc.edu.cn/debian-security/ squeeze/updates main
deb-src http://mirrors.ustc.edu.cn/debian-security/ squeeze/updates main

2.安装ca-certificates

只要配置好上述的源以后,就可以直接运行下面的命令,就可以安装好,否则会报404找不到错误。

apt-get install -y ca-certificates

3.安装证书

首先需要下载微信支付证书,链接在此
下载完成后把证书放到 /usr/share/ca-certificates

sudo mv Baltimore_CyberTrust_Root.pem /usr/share/ca-certificates/local/
sudo mv DigiCert_Global_Root_CA.pem /usr/share/ca-certificates/local/

刷新证书

sudo update-ca-certificates --fresh