当前位置: 首页 > news >正文

Flutter 版本管理工具FVM

FVM是一款非常好用的Flutter版本管理工具。FVM官网:

下面是使用 FVM(Flutter Version Manager)管理 Flutter 版本的整个流程,包括安装、配置环境变量以及基本的使用步骤。

1. 安装 FVM

FVM 可以通过多种方式安装,下面列出了两种常见的安装方法。

1.1 通过 Homebrew 安装 (macOS/Linux)

对于 macOS 或 Linux 用户,最简单的安装方法是使用 Homebrew:

  1. 打开终端,运行以下命令安装 FVM: 

    brew install fvm
  2. 完成后,验证 FVM 是否安装成功:

    fvm --version

    如果安装成功,会输出 FVM 的版本号。

1.2 通过 Dart 的 Pub 安装 (适用于所有平台)
  1. 安装 Dart SDK: 确保你的系统中已安装 Dart SDK。如果未安装,可以参考 Dart 官网 进行安装。

  2. 安装 FVM: 通过 Dart 的 pub 工具安装 FVM。打开终端,运行以下命令:

    dart pub global activate fvm
  3. 配置环境变量: 安装完成后,FVM 会被安装在 Dart 的全局包目录中。需要将该目录添加到 PATH 环境变量中。

    • 对于 macOS/Linux 用户,打开终端并编辑 ~/.bashrc~/.zshrc 文件,添加以下内容:

      export PATH="$PATH:$HOME/.pub-cache/bin"

      然后运行以下命令使配置生效:

      source ~/.bashrc # 或者 source ~/.zshrc
    • 对于 Windows 用户,添加 Dart 的全局包路径(通常为 C:\Users\YourUsername\AppData\Local\Pub\Cache\bin)到 PATH 环境变量中。

  4. 验证安装: 配置完成后,执行以下命令确认 FVM 安装成功:

    fvm --version

2. 使用 FVM 管理 Flutter 版本

FVM 安装完成后,你可以开始使用 FVM 来管理多个 Flutter 版本。以下是一些常见的命令和操作。

2.1 查看可用的 Flutter 版本

使用 fvm releases 命令查看可用的 Flutter 版本:

fvm releases
2.2 安装指定版本的 Flutter

使用 fvm install 命令安装指定的 Flutter 版本:

  • 安装 Flutter 稳定版:

    fvm install stable
  • 安装特定版本:

    fvm install 3.7.0
2.3 列出已安装的 Flutter 版本

使用 fvm list 查看当前已安装的 Flutter 版本:

fvm list
2.4 为项目指定 Flutter 版本

进入项目根目录,使用 fvm use 命令为该项目指定 Flutter 版本。例如,使用 stable 版本:

fvm use stable

或使用特定版本:

fvm use 3.7.0

这将在该项目目录中创建一个 .fvm 文件夹,并记录该项目使用的 Flutter 版本。

2.5 设置全局默认 Flutter 版本

如果你希望设置全局默认的 Flutter 版本,可以使用 fvm global 命令。例如,设置全局版本为 stable

fvm global stable

这样,fvm flutter 命令将使用全局的 Flutter 版本,除非在项目中指定了其他版本。

2.6 运行 Flutter 命令

使用 FVM 管理 Flutter 版本后,所有的 Flutter 命令都应该通过 fvm flutter 来运行。例如,运行 flutter doctor

fvm flutter doctor

这将使用 FVM 设置的 Flutter 版本来执行命令。

2.7 切换 Flutter 版本

如果你已经安装了多个版本的 Flutter,可以随时切换版本。例如,切换到 3.7.0

fvm use 3.7.0

3. 升级 FVM

如果你需要升级 FVM 到最新版本,可以通过以下命令进行升级:

  • 通过 Dart 安装的方式

    dart pub global activate fvm
  • 通过 Homebrew 安装的方式

    brew upgrade fvm

4. FVM 使用示例

假设你有两个项目,一个项目使用 stable 版本的 Flutter,另一个项目使用 beta 版本的 Flutter:

        项目 1 (使用 stable 版本)

        进入项目目录并安装 stable 版本:

fvm use stable

        项目 2 (使用 beta 版本)

        进入项目目录并安装 beta 版本:

fvm use beta

        全局版本设置

        如果希望全局使用某个版本,例如 stable,可以设置:

fvm global stable

通过这种方式,你可以在不同的项目中使用不同的 Flutter 版本,而不会产生冲突。

5. 总结

FVM 是一个非常有用的工具,特别适合需要在多个 Flutter 版本之间切换的开发者。通过 FVM,你可以:

  • 安装并管理多个 Flutter 版本;
  • 为每个项目指定特定的 Flutter 版本;
  • 快速切换 Flutter 版本;
  • 使用 fvm flutter 命令运行 Flutter 工具。

如果你经常在多个 Flutter 项目之间切换,FVM 是一个非常高效的解决方案,可以大大简化版本管理的工作。

相关文章:

Flutter 版本管理工具FVM

FVM是一款非常好用的Flutter版本管理工具。FVM官网: 下面是使用 FVM(Flutter Version Manager)管理 Flutter 版本的整个流程,包括安装、配置环境变量以及基本的使用步骤。 1. 安装 FVM FVM 可以通过多种方式安装,下…...

图学习GNN笔记

目录 第一部分:预测分析中的图学习4.3 案例研究:图上的学习机器学习生命周期 第二部分:图特征学习特征表示与嵌入为什么难以学习? 第三部分:节点嵌入嵌入节点设置学习节点嵌入浅层编码如何定义节点相似性? …...

装饰器—购物打折

from collections import namedtuple# 定义促销策略列表 promos []# 装饰器函数,用于注册促销策略 def promotion(promo_func):promos.append(promo_func)return promo_func# 促销策略1:忠诚度积分折扣 promotion def fidelity(order):""&quo…...

【Linux---10】本地机器 <=> 服务器 文件互传

文章目录 1. 小文件互传2. 大文件互传 1. 小文件互传 使用sz命令。 说明:sz命令是ZModem文件传输协议的一部分,用于在Linux和Unix系统中,从本地系统发送(send)文件到远程系统。sz命令通常与rz命令(ZModem接…...

Mysql数据库基础篇笔记

目录 sql语句 DDL——数据库定义语言(定义库,表,字段) 数据库操作: 表操作: DML 增删改语句 DQL 语法编写顺序: 条件查询 DCL 用户管理: 权限管理: 函数 常见字符串内置函…...

QT 实现QStackedWidget切换页面右移动画

1.实现效果 以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。 为了方便查看动画特效,设置了每个界面的背景图片。 2.实现思路 首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断…...

RocketMQ rocketmq-tools管理主题

RocketMQ rocketmq-tools管理主题 环境和软件版本增删改查 环境和软件版本 Win10、IDEA、Jdk1.8、rocketmq 5.1.3、rocketmq-tools 5.1.3 引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-tools</artifactId&g…...

Docker 容器隔离关键技术:Seccomp

Docker 容器隔离关键技术&#xff1a;Seccomp 在 Docker 容器中&#xff0c;Seccomp&#xff08;Secure Computing Mode&#xff09; 是一种内核安全机制&#xff0c;用来限制容器内的程序可以调用哪些系统调用&#xff08;Syscalls&#xff09;。通过列清单的方式&#xff0c…...

2024年顶级小型语言模型前15名

本文&#xff0c;我们将深入了解2024年备受瞩目的十五款小型语言模型&#xff08;SLMs&#xff09;&#xff0c;它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称&#xff0c;它们不需要依赖庞大的服务器资源&#xff0c…...

【大模型微调】pdf转markdown

目前市面上大部分都是pdf文档,要想转换成能训练的文本,调研了各种工具。 觉得MinerU确实不错。 参考此链接进行操作 MinerU/docs/README_Ubuntu_CUDA_Acceleration_en_US.md at master opendatalab/MinerU GitHub 需要注意的几个点: 1. 使用root账户安装的,配置文件在…...

【Nacos02】消息队列与微服务之Nacos 单机部署

Nacos 部署 Nacos 部署说明 Nacos 快速开始 Nacos 快速开始 版本选择 当前推荐的稳定版本为2.X Releases alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - Re…...

PROTEUS资源导引

本专栏讲述51、32单片机的仿真设计&#xff0c;且所有文章资源共享&#xff0c;如需哪篇文章&#xff0c;可按ctrlF键搜索查询&#xff0c;点击进入即可。 -----------------------------------------------------------目录------------------------------------------------…...

对力扣77组合优化的剪枝操作的理解

77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg封装

封装就是将 一个h264&#xff0c;和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件&#xff0c;也就是说&#xff0c;我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream&#xff0c;然后 将这两路的 avstream 合并成一…...

http 与 https 汇总

文章目录 http 与 httpsHTTP&#xff08;超文本传输协议&#xff09;介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTPS&#xff08;超文本传输安全协议&#xff09;介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTP协议的工作原理请求阶段响应阶段客户端解析处理 协议的…...

龙蜥 Linux 安装 Nginx

龙蜥 Linux 安装 Nginx 下载编译安装配置编译参数先装依赖编译安装 使用启动检查配置文件重启关闭 503权限问题参考资料 下载 下载地址详情见参考资料&#xff0c;我下的 nginx-1.26.2.tar.gz 到 /home/jerry/ /home/jerry$ curl -O http://nginx.org/download/nginx-1.26.2.…...

8. 一分钟读懂“代理模式”

8.1 模式介绍 代理模式是一种结构型设计模式&#xff0c;它通过提供一个代理对象来替代对另一个对象&#xff08;真实对象&#xff09;的访问。代理对象与真实对象实现相同的接口&#xff0c;并通过代理类对真实对象的访问进行控制&#xff0c;可以在调用前后执行附加操作&…...

分布式搜索引擎Elasticsearch

Elasticsearch是一个基于Lucene库的开源分布式搜索引擎&#xff0c;它被设计用于云计算中&#xff0c;能够实现快速、near-real-time的搜索&#xff0c;并且可以进行大规模的分布式索引。 以下是一个简单的Python代码示例&#xff0c;展示如何使用Elasticsearch的Python客户端…...

完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)

基本上完全按照手册来的&#xff0c;除了Ubuntu虚拟机使用了22.04 Jammy版本&#xff0c;鸿蒙手册里是20.04 版本&#xff0c;主要是鸿蒙里3年前的手册了&#xff0c;所以就擅自用了高版本。 据此还想到一点&#xff0c;鸿蒙LiteOS&#xff0c;还挺稳定的&#xff0c;3年也没有…...

MySQL 8.0与PostgreSQL 15.8的性能对比

以下是MySQL 8.0与PostgreSQL 15.8的性能对比&#xff1a; MySQL 8.0性能特点&#xff1a; MySQL在处理大量读操作时表现出色&#xff0c;其存储引擎InnoDB提供了行级锁定和高效的事务处理&#xff0c;适用于并发读取的场景。MySQL通过查询缓存来提高读取性能&#xff0c;查询缓…...

hive 行转列

行转列的常规做法是&#xff0c;group bysum(if())【或count(if())】 建表: CREATE TABLE table2 (year INT,month INT,amount DOUBLE );INSERT INTO table2 (year, month, amount) VALUES(1991, 2, 1.2),(1991, 3, 1.3),(1991, 4, 1.4),(1992, 1, 2.1),(1992, 2, 2.2),(1992…...

linux——进程间通信system V消息队列

Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么&#xff1f; 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 ​编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…...

Seatunnel解决ftp读取json文件无法读取数组以及格式化之后的json无法解析的问题

问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name&#xff1a;“zhangsan”&#xff0c; age&#xff1a;25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…...

[Vue Router warn]: No match found for location with path 解决方法

在使用vue3 vue-router4时 当列表A组件使用 加上keep-alive缓存后&#xff0c;跳转至详情页面时出现 [Vue Router warn]: No match found for location with path "/atlas/editDetails" 解决方案&#xff1a; 把 router.push({ path: "/atlas/editDetails&…...

优傲协作机器人 Remote TCP Toolpath URCap(操作记录)

目录 一、新机设置项 1、设置管理员密码 2、设置安全密码 3、设置负载 二、激活 Remote TCP & Toolpath URCap 1、插入U盘 2、打开激活面板 3、导入许可证 4、查看是否激活成功 5、启用功能 三、使用流程&#xff08;官方&#xff09; 步骤一 步骤二 步骤三 …...

使用历史索引监控 Elasticsearch 索引生命周期管理

作者&#xff1a;来自 Elastic Stef Nestor 大家好&#xff01;在之前的一篇博客中&#xff0c;我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后&#xff0c;我们已将这些常见场景添加到我们的 Elasticsearch 文档中&#xff0c;…...

[网络安全]sqli-labs Less-5 解题详析

[网络安全]Less-5 GET - Double Injection - Single quotes - String:双注入GET单引号字符型注入 判断注入类型判断注入点个数查库名&#xff08;爆破&#xff09; left函数抓包查库名&#xff08;双查询注入&#xff09; 原理实例查库名&#xff08;extractvalue函数&#xff…...

贪心算法入门(一)

第1题 礼物 查看测评数据信息 国庆马上要到了。小明喜欢的礼物有n种分别是&#xff1a;公仔、电子手表、漫画书等。 每种礼物有一件&#xff0c;每种礼物价钱都不一样。小明手头上有 m 元。 小明最多可以买多少件礼物&#xff1f; 输入格式 第一行&#xff0c;两个整数&…...

HTTP 探秘之旅:从入门到未来

文章目录 导言&#xff1a;目录&#xff1a;第一篇&#xff1a;HTTP&#xff0c;互联网的“快递员”第二篇&#xff1a;从点开网页到看到内容&#xff0c;HTTP 究竟做了什么&#xff1f;第三篇&#xff1a;HTTP 的烦恼与进化史第四篇&#xff1a;HTTP 的铠甲——HTTPS 的故事第…...

网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)

虚拟专用网络&#xff08;VPN&#xff09;详细介绍 虚拟专用网络&#xff08;VPN&#xff09;通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密&#xff1a; 隧道协议&#xff1a;使用协议如PPTP、L2TP/IP…...

人工智能中的深度学习:原理与实践

什么是深度学习&#xff1f; 深度学习&#xff08;Deep Learning&#xff09;是机器学习的一个分支&#xff0c;旨在通过模拟人脑的神经网络结构来解决复杂的任务。深度学习通过多层神经网络&#xff0c;自动从数据中学习特征&#xff0c;避免了传统机器学习中手动特征工程的繁…...

复现SMPLify-X: Ubuntu22.04, Cuda-11.3, GPU=3090Ti

Env: 3090Ti CUDA 最低支持版本需要>cuda-11.1 Ubuntu 22.04 Installation: Installing CUDA11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run …...

qt QGraphicsScale详解

1、概述 QGraphicsScale是Qt框架中提供的一个类&#xff0c;它提供了一种简单而灵活的方式在QGraphicsView框架中实现缩放变换。通过设置水平和垂直缩放因子、缩放中心点&#xff0c;可以创建各种缩放效果&#xff0c;提升用户界面的交互性和视觉吸引力。结合QPropertyAnimati…...

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 php7.4及以上 / mysql5.6 / 伪静态&#xff1a;thinkphp / 运行目录&#xff1a;/public / 修改数据库&#xff1a;/config/database.php /后台&#xff1a;/admin 账号密码 admin q2821706481 …...

ubuntu 根分区逻辑卷扩容

1、虚拟机关机通过管理界面给磁盘扩容。 rootcurtis:/home/curtis/git_code# pvdisplay--- Physical volume ---PV Name /dev/vda3VG Name ubuntu-vgPV Size <239.00 GiB / not usable 0Allocatable yes (but full)PE…...

Word分栏后出现空白页解决方法

Word分栏后出现空白页解决方法 只需要在后面的空白页设置相同的页面布局(分栏格式)&#xff0c;然后按Ctrl backspace即可删除该空白页。 参考文章&#xff1a;Word分栏出现空白怎么解决。...

Ansible自动化运维-Ansible安装与主机列表

目录 1.Ansilble的功能及优点 2.Ansible架构 3.Ansible执行流程 4.Ansible安装 5.Ansible配置文件 6.Ansible主机列表 1.Ansilble的功能及优点 &#xff08;1&#xff09;远程执行 批量执行远程命令&#xff0c;可以对多台主机进行远程操作。 &#xff08;2&#xff0…...

大模型使用-提示学习-基础提示

一、基础提示简介 1、常用提示方法 上下文学习&#xff1a;ICL&#xff08;In-context Learning&#xff09;任务描述与问答示例以自然语言形式加入到提示中思维链提示&#xff1a;CoT&#xff08;Chain-of-Thought&#xff09;&#xff0c;是一种增强技术&#xff0c;将思维…...

【Java基础面试题004】封装、继承、重载、多态、接口和抽象类是什么?

目录 回答重点 封装 继承 重载 多态 接口 抽象类 扩展知识 继承的优缺点 编译时多态&运行时多态 编译时多态 运行时多态 重写&重载区别 为什么Java不支持多继承&#xff1f; 为什么Java支持接口多实现&#xff1f; 接口的成员 抽象类的注意事项 接口&…...

AI、VR与空间计算:教育和文旅领域的数字转型力量

在这个数字技术高速发展的时代&#xff0c;AI、VR技术及大空间计算技术&#xff0c;已成为推动多个行业革新的强劲动力。近日&#xff0c;世优科技推出了最新研发的VR大空间产品《山海经》&#xff0c;这一全新的沉浸式体验项目不仅重新定义了观展方式&#xff0c;还为文化旅游…...

【CC2530开发基础篇】光敏和热敏传感器

一、前言 1.1 开发背景 本实验通过CC2530单片机接入光敏传感器和热敏传感器&#xff0c;进行数据采集与检测&#xff0c;并将检测结果通过串口终端输出。光敏传感器和热敏传感器是常见的环境感知设备&#xff0c;分别用于测量光强和温度。在实际应用中&#xff0c;这些传感器…...

Android8.1初始化RGB屏

初始化文件类似如下 #define HSW 8 #define HBD 160 #define HFD 140 #define VSW 8 #define VBD 20 #define VFD 20#frame rate60Hz #Pixel Clk25Mhz #MIPI_CLK300Mbps(MIPI通道速率)SPI_RES1; Delay(20); //延迟20ms SPI_RES0; Delay(50); //延迟50ms SPI_RES1; Delay(120);…...

Qwen2-VL视觉大模型微调实战:LaTex公式OCR识别任务(完整代码)

《SwanLab机器学习实战教程》是一个主打「开箱即用」的AI训练系列教程&#xff0c;我们致力于提供完善的数据集、源代码、实验记录以及环境安装方式&#xff0c;手把手帮助你跑起训练&#xff0c;解决问题。 Qwen2-VL是通义千问团队最近开源的大语言模型&#xff0c;由阿里云通…...

ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词

1.将用户访问记录表数据同步到ES&#xff0c;并且分词&#xff0c;获取用户访问最多前十条词语。 Elasticsearch、Easy-es 快速入门 SearchAfterPage分页 若依前后端分离 Ruoyi-Vue SpringBoot 使用结巴分词器 <!-- 分词器--><dependency><groupId>com.hua…...

400G智算网络助力知名自动驾驶企业算力训练提效

根据Gartner的最新趋势预测&#xff0c;自动驾驶技术正迅速发展&#xff0c;预计在未来几年内将带来显著的商业效益&#xff0c;特别是在决策智能和边缘人工智能领域。目前&#xff0c;一家领军企业正积极拥抱基于大模型的数字化转型之路&#xff0c;作为自动驾驶领域的佼佼者&…...

替代FTP最佳跨网文件传输解决方案——FileLink

在传统的企业文件传输中&#xff0c;FTP&#xff08;文件传输协议&#xff09;曾因其便捷性和高效性被广泛应用。然而&#xff0c;其固有的安全漏洞、对大文件传输支持的局限性、易受网络攻击等问题&#xff0c;已逐渐暴露出FTP在现代企业环境下的不足。针对这一问题&#xff0…...

冒泡排序算法介绍以及java实现

冒泡排序是一种简单的排序算法&#xff0c;它重复地走访过要排序的元素列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。重复地进行这个操作直到整个序列都是有序的。 冒泡排序算法的基本思想是&#xff1a;比较相邻的两个元素&#xff0c;如…...

echarts的双X轴,父级居中的相关配置

前言&#xff1a;折腾了一个星期&#xff0c;在最后一天中午&#xff0c;都快要放弃了&#xff0c;后来坚持下来&#xff0c;才有下面结果。 这个效果就相当是复合表头&#xff0c;第一行是子级&#xff0c;第二行是父级。 子级是奇数个时&#xff0c;父级label居中很简单&…...

模拟实现单链表 —— SingleLinkedList

模拟实现 java 中单链表的实现&#xff0c;方便后续对 java 中的 LInkedList 进行理解。 MySingleList类&#xff1a; public class MySingleList {/*** 定义节点类*/static class ListNode {// 节点值private int val; // 下一个节点的引用private ListNode next; public Lis…...

【NoSQL数据库】MongoDB数据库——文档的查询操作(多条件查询、聚合aggregate、管道)

往期文章&#xff1a; ​​​​​​【NoSQL数据库】MongoDB数据库的安装与卸载-CSDN博客 【NoSQL数据库】MongoDB数据库——集合和文档的基本操作&#xff08;创建、删除、更新、查询&#xff09;-CSDN博客 目录 一、MongoDB文档查询原理 1、使用 find() 方法进行文档基本…...