vmware虚拟机(ubuntu)远程开发golang、python环境安装
目录
- 1. 下载vmware
- 2. 下载ubuntu镜像
- 3. 安装
- 4. 做一些设置
- 4.1 分辨率设置
- 4.2 语言下载
- 4.3 输入法设置
- 4.4 时区设置
- 5. 直接切换管理员权限
- 6. 网络
- 6.1 看ip
- 6.2 ssh
- 7. 本地编译器连接远程服务器
- 7.1 创建远程部署的配置
- 7.2 文件同步
- 7.3 远程启动项目
- 8. ubuntu安装golang环境
- 8.1 安装golang
- 8.2 启动golang项目
- 9. 使用docker部署
- 9.1 Dockerfile
- 9.2 执行的命令
- 9.3 一些参考的命令
- 10. 安装python虚拟环境
- 10.1 安装虚拟环境与生成requirements.txt
- 10.2 部署flask项目bug解决
参考鱼皮的视频:服务器很贵?搞台虚拟机玩玩!保姆级 Linux 远程开发教程_哔哩哔哩_bilibili
1. 下载vmware
链接:https://www.vmware.com/cn/products/workstation-player.html


2. 下载ubuntu镜像
链接:https://releases.ubuntu.com/


3. 安装
安装vmware,并将iso镜像安装完毕,等待完成。
4. 做一些设置
4.1 分辨率设置
按win键输入【resolution】

4.2 语言下载
按win键输入【language】,按照如下过程安装完毕之后,可以注销登录,重新登录系统就生效了。




4.3 输入法设置
按win键输入【language】


4.4 时区设置
按win键输入【time】

5. 直接切换管理员权限
sudo su - root
6. 网络
安装命令
# 更新安装包信息
sudo apt update# 比如如果使用ifconfig命令,可以先安装
apt install net-tools# 安装vim
apt install vim# 试试安装docker
apt install docker.io
docker -v
docker run hello-world# 安装java8环境
apt install openjdk-8-jdk
java -version
# 安装maven
apt install maven
mvn -v
6.1 看ip
如果win本地想连接虚拟机,先使用ifconfig查看ip,然后本地看看能不能ping通。

6.2 ssh
# 安装ssh
sudo apt-get install openssh-server# 使用命令查看ssh服务是否已经开启
ps -ef | grep ssh

然后远程就可以访问了

7. 本地编译器连接远程服务器
7.1 创建远程部署的配置
以Goland举例





7.2 文件同步




每次手动太麻烦了,点击自动同步

除此之外,可以做一些同步的设置(例如,可以设置如果删除本地文件,也删除远程文件)


7.3 远程启动项目
在本地编译器新建一个远程的终端,就可以直接用命令行启动项目了(注意:服务器需要安装响应的环境才行)

8. ubuntu安装golang环境
8.1 安装golang
golang安装的包都存在【$HOME/go/pkg】目录下.
# 先更新一下
sudo apt update# 方式1:安装golang,这种方式安装的版本太老了
sudo apt install golang
# 方式2:可以用这种方式,安装指定版本
wget https://golang.org/dl/go1.19.linux-amd64.tar.gz # 这个连接失败,用下面这个
wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz
tar -xvf go*.tar.gz
sudo mv go /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
source ~/.profile# 查看版本
go version# 设置代理(重要,不然go get 的时候总是失败)
go env -w GOPROXY=https://goproxy.io,direct# 卸载golang
sudo apt remove golang
sudo apt purge golang-go
8.2 启动golang项目
# build
go build liuyaohui.lyh/remoteProject# 运行
./remoteProject
9. 使用docker部署
9.1 Dockerfile
项目根目录下新建Dockerfile
# 使用官方的 Golang 镜像作为基础镜像
FROM golang:1.19# 镜像作者
MAINTAINER tdfxlyh# 设置工作目录
# 容器内创建 myproject 文件夹
ENV APP_HOME=/home/lyh/code/remoteProject
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME# 给golang设置代理
RUN go env -w GOPROXY=https://goproxy.io,direct# 将当前目录加入到工作目录中(. 表示当前目录)
ADD . $APP_HOME# 安装 MySQL 客户端
# RUN apt-get update && apt-get install -y mysql-client# 构建 Go 项目
RUN go build -o main# 暴露一个端口(如果你的应用需要)
EXPOSE 8080# 启动应用程序
CMD ["./remoteProject"]
9.2 执行的命令
# 1.进入项目根目录
# 2.打包成镜像
docker build -t remote-project-test .
# 3.登录dockerhub
docker login -u tdfxlyh
# 4.新建一个tag,名字必须跟你注册账号一样
docker tag remote-project-test tdfxlyh/remote-project-test:latest
# 5.推上去
docker push tdfxlyh/remote-project-test:latest# 远程服务器拉取
docker pull tdfxlyh/remote-project-test:latest
docker run -d -p 8080:8080 tdfxlyh/remote-project-test:latest
9.3 一些参考的命令
# 1.列出本地的镜像
docker images [OPTIONS]
# 2.删除某个镜像
docker rmi [-f] 镜像名字
# 3.查看容器
docker ps -n 15
# 4.启动已经停止运行的容器
docker start 容器ID(容器名)
# 5.重启容器
docker restart 容器ID(容器名)
# 6.停止容器
docker stop 容器ID(容器名)
# 7.强制停止容器
docker kill 容器ID(容器名)
# 8.删除已停止的容器
docker rm [-f] 容器ID(容器名)
10. 安装python虚拟环境
10.1 安装虚拟环境与生成requirements.txt
sudo apt update
# 安装环境
sudo apt install python3
# 安装pip
sudo apt install python3-pip
# 安装虚拟环境
sudo apt install python3-venv# 创建一个虚拟环境并激活 (尽量在项目的根目录下执行下面的命令)
sudo python3 -m venv venv
source venv/bin/activate
# 在有管理员权限的地方执行
pip install -r requirements.txt# 项目生成requirements.txt文件
# 方式一:在有git和虚拟环境的命令行下执行
pip freeze > requirements.txt
# 方式二:推荐使用这个,需要在虚拟环境下执行
pip install pipreqs
pipreqs . --encoding=utf8 --force
10.2 部署flask项目bug解决
问题:使用 flask run运行项目之后,项目在虚拟机上可以访问,但是在windows上不能访问。
解决:使用如下命令进行启动,指定host为"0.0.0.0",而不是默认的"127.0.0.1".
flask run --host=0.0.0.0 --port=5000
相关文章:
vmware虚拟机(ubuntu)远程开发golang、python环境安装
目录 1. 下载vmware2. 下载ubuntu镜像3. 安装4. 做一些设置4.1 分辨率设置4.2 语言下载4.3 输入法设置4.4 时区设置 5. 直接切换管理员权限6. 网络6.1 看ip6.2 ssh 7. 本地编译器连接远程服务器7.1 创建远程部署的配置7.2 文件同步7.3 远程启动项目 8. ubuntu安装golang环境8.1…...
Elasticsearch文档多个输入字段组成ID实现方法
1、场景描述: 使用Elasticsearch时,有时会需要指定文档id的场景,当文档id需要多个字段组成时,这种业务怎么处理呢? 2、问题描述: 现有一个ElasticSearch文档,假设文档id由userid、 eventTime…...
编译链接实战(15)rdynamic选项的用途
文章目录 rdynamic作用栈回溯 rdynamic作用 看下gcc man手册的解释: Pass the flag -export-dynamic to the ELF linker, on targets that support it. This instructs the linker to add all symbols, not onlyused ones, to the dynamic symbol table. This opti…...
前端:js实现提示框(自动消失)
效果: 代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&q…...
powerpc架构的前世今生
文章目录 Powerpc架构的前世今生什么是powerpc?PowerPC和ARM有什么区别呢? Powerpc架构的前世 PowerPC架构是一种基于精简指令集计算机(RISC)的处理器架构。它最初由IBM、Motorola和Apple共同开发,旨在为个人电脑、工…...
SQL-存储过程、流程控制、游标
存储过程 存储过程概述 1.产生背景 开发过程总,经常会遇到重复使用某一功能的情况 2.解决办法 MySQL引人了存储过程(Stored Procedure)这一技术 3.存储过程 存储过程就是一条或多条SQL语句的集合存储过程可将一系列复杂操作封装成一个代码块,以便…...
JavaScript的数组和字典的用法
JavaScript 中的数组是一种用于存储多个值的数据结构,它可以容纳不同类型的数据(例如数字、字符串、对象等)。以下是 JavaScript 数组的常见用法: 创建数组 // 创建一个空数组 let emptyArray [];// 创建一个包含元素的数组 le…...
中断和异常
1.什么是中断 CPU上会运行两种程序,一种是内核程序,一种是应用程序。在正常的情况,CPU上面会主动运行应用程序,中断就是操作系统内核夺回CPU执行权的唯一途径,也就是用户态——>内核态。 2.内中断和外中断 2.1内…...
【python】实现积分
借助sympy.integrate() 符号运算库,所以里面的exp(),sin()等都要使用sympy库中的函数,如果使用numpy库中的函数时没用的。 import sympy as sp import numpy as np x sp.symbols("x") print(sp.integrate(sp.exp(-x**2), (x, -s…...
微信仿H5支付
仿H5支付是指一种模拟原生H5支付流程的非官方支付方式。这种支付方式通常是由第三方支付服务提供商开发和维护的,目的是为了绕过官方支付渠道的限制,如费率、审核等问题。然而,由于仿H5支付并非官方授权和认可的支付方式,其安全性…...
数据结构——栈
栈 栈的理解 咱们先不管栈的数据结构什么,先了解栈是什么,栈就像一个桶一样,你先放进去的东西,被后放进的的东西压着,那么就需要把后放进行的东西拿出才能拿出来先放进去的东西,如图1,就像图1中…...
组件化开发之如何封装组件-react
组件化开发之如何封装组件-react 什么是组件为什么需要封装组件组件的分类函数组件(Functional Components):展示型组件:容器型组件:知道组件分类的意义是? 如何拆分组件,需要遵循什么原则1.保证…...
大数据HBase学习圣经:一本书实现HBase学习自由
学习目标:三栖合一架构师 本文是《大数据HBase学习圣经》 V1版本,是 《尼恩 大数据 面试宝典》姊妹篇。 这里特别说明一下:《尼恩 大数据 面试宝典》5个专题 PDF 自首次发布以来, 已经汇集了 好几百题,大量的大厂面试…...
Leetcode110. 平衡二叉树
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 题解ÿ…...
Swift的NSClassFromString转换
在swift 中使用NSClassFromString 从string 转换到 对象,报了Segmentation fault: 11 错误。 let ctrlClass: AnyClass NSClassFromString("HomeViewController")! let ctrl: UIViewController ctrlClass.init() as UIViewController 正确的写法&…...
linux上vim编辑器设置
linux上vim编辑器设置 减少tab缩进、显示行号等 在vimrc(一般在/etc/vim/vimrc中)末尾添加 set helplangcn "中文帮助文档(前提是下了中文包) syntax enable syntax on " 自动语法高亮 set number"显示行号 colorscheme desert" 设…...
SpringCloudAlibaba OpenFeign整合及详解
SpringCloudAlibaba OpenFeign 在前面,我们使用Nacos服务注册发现后,服务远程调用可以使用RestTemplateRibbon或者OpenFeign调用。实际开发中很少使用RestTemplate这种方式进行调用服务,每次调用需要填写地址,还要配置各种的参数&…...
Mysql--技术文档--MVCC(Multi-Version Concurrency Control | 多版本并发控制)
MVCC到底是什么 MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于解决并发访问数据库时的数据一致性和隔离性问题。MVCC允许多个事务同时读取数据库的同一数据,而不会相互干扰或导致冲突。 在传统的并发控制机制中…...
全网都在用的nnUNet V2版本改进了啥,怎么安装?(一)
nnUNet,这个医学领域的分割巨无霸!在论文和比赛中随处可见他的身影。大家对于nnUNet v1版本的教程都赞不绝口,因为它简单易懂、详细全面,让很多朋友都轻松掌握了使用方法。 最近,我也抽出时间仔细研究了nnUNet v2,并全…...
iOS开发Swift-4-IBAction,group,音乐播放器-木琴App
1.使用素材创建木琴App的UI。 2.连接IBAction。 其余按钮直接拖拽到play里边。 当鼠标置于1处时2处显示如图,表示成功。当用户按下任一按钮都会触发play中的内容。 3.将7个按钮的View中的Tag值分别调为1、2、3、4、5、6、7. 4.将音频文件拖入项目文件中。 Create gr…...
除了ulimit -c unlimited:深入理解Linux core dump机制与高级配置指南
深入Linux核心转储:从基础配置到生产环境实战指南当服务器上的关键应用突然崩溃时,系统管理员最需要的就是一份完整的"事故现场记录"。Linux的core dump机制正是为此而生,它能保存程序崩溃时的内存状态、寄存器值和调用堆栈&#x…...
基于XGBoost与SHAP的分子气味预测:从特征工程到可解释性分析
1. 项目概述与核心价值在香水设计、食品风味工业乃至环境监测领域,一个核心且持久的挑战是:如何从分子的化学结构出发,准确预测其气味?这不仅仅是化学家或调香师的直觉游戏,更是一个复杂的、高维度的模式识别问题。传统…...
ARM PMU外部接口与性能监控寄存器详解
1. ARM性能监控寄存器外部接口深度解析性能监控单元(PMU)是现代处理器架构中用于硬件性能分析的核心模块,它通过一组可编程计数器实时捕获处理器微架构层面的各类事件。在ARMv8/v9架构中,PMU不仅可以通过系统寄存器访问,还提供了标准化的外部…...
HFSS仿真结果怎么看?一文读懂S参数与电场图,让你的T型波导分析不再迷茫
HFSS仿真结果深度解析:从S参数到电场图的工程实践指南面对HFSS仿真生成的复杂数据图表,许多工程师常陷入"看得见数据却读不懂含义"的困境。本文将带您穿透数据表象,掌握T型波导性能分析的核心方法论。1. S参数:波导性能…...
森优时铁锌维发根养黑用三个月真实效果实测:内服营养养黑的客观测评
"森优时铁锌维发根养黑用三个月真实效果实测显示,针对压力、熬夜引发的早白问题,通过内服补充毛囊所需营养的方式,多数使用者能感受到发根韧性提升、新生发色素沉淀改善,整体改善效果因人而异,合规的营养补充是目…...
量子软件测试的挑战与优化策略
1. 量子软件测试的挑战与机遇量子计算正在从实验室走向实际应用,随之而来的是对可靠量子软件的需求激增。与传统软件不同,量子程序面临三大独特挑战:首先,量子态的叠加性和纠缠性使得测试变得异常复杂。一个n量子比特系统可以同时…...
工业云脑:06 现在就能干:树莓派边缘盒子+PLC,10分钟缺陷检测小案例
06 现在就能干:树莓派边缘盒子+PLC,10分钟缺陷检测小案例 今天第九篇06小节——现在就能干:树莓派边缘盒子+PLC,10分钟缺陷检测小案例。新手照着做10分钟就能跑起来,老手一看就知道这玩意儿省了多少钱。以前想上AI检测,得花几万块买专业边缘盒子;现在?树莓派5(RPi 5)…...
Hermes Agent工具如何自定义接入Taotoken提供商
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Hermes Agent工具如何自定义接入Taotoken提供商 Hermes Agent 是一款功能强大的AI智能体开发框架,它支持通过自定义提供…...
如何快速解锁加密音乐文件:3个简单步骤让音乐自由播放
如何快速解锁加密音乐文件:3个简单步骤让音乐自由播放 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https…...
Unity动态植被系统:实时天气与自然现象耦合方案
1. 这不是“贴图堆砌”,而是一套可交互的自然系统你有没有试过在Unity里拖进几棵树、铺点草地,结果运行起来——风一吹,所有树叶像被钉在空中一样纹丝不动;下雨时,雨滴垂直砸进地面,连个水花都没有…...
