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
image.pngimage.png

2. 下载ubuntu镜像

链接:https://releases.ubuntu.com/
image.png
image.png

3. 安装

安装vmware,并将iso镜像安装完毕,等待完成。

4. 做一些设置

4.1 分辨率设置

按win键输入【resolution】
image.png

4.2 语言下载

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

4.3 输入法设置

按win键输入【language】
image.png
image.png

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通。
image.png

6.2 ssh

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

image.png
然后远程就可以访问了
image.png

7. 本地编译器连接远程服务器

7.1 创建远程部署的配置

以Goland举例
image.png
image.png
image.png
image.png
image.png

7.2 文件同步


image.png
image.png
image.png
每次手动太麻烦了,点击自动同步
image.png
除此之外,可以做一些同步的设置(例如,可以设置如果删除本地文件,也删除远程文件)
image.png
image.png

7.3 远程启动项目

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/65643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL查询本年每月的数据

--一、以一行数据的形式,显示本年的12月的数据,本示例以2017年为例,根据统计日期字段判断,计算总和,查询语句如下:selectsum(case when datepart(month,统计日期)1 then 支付金额 else 0 end) as 1月, sum…

初探---Qt

目录 一、介绍Qt 二、软件安装 三、QT工具介绍 四、Assistant帮助文档的使用 五、设计师界面的介绍 ​编辑 六、QT工程项目各文件初始程序的介绍 1> 配置文件:.pro文件 2> 头文件 3> 源文件 4> 主程序 5> 各文件之间调用方式 七、第一个…

【LeetCode】双指针妙解有效三角形的个数

Problem: 611. 有效三角形的个数 文章目录 题目分析讲解算法原理复杂度Code 题目分析 首先我们来分析一下本题的思路 看到题目中给出的示例 题目的意思很简单,就是将给到的数字去做一个组合,然后看看这三条边是否可以构成三角形。那判断的方法不用我说&a…

【LeetCode75】第四十四题 省份数量

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个二维数组,表示城市之间的连通情况,连在一起的城市为一个省份,问我们一共有多少个省份。 这…

CNN 01(CNN简介)

一、卷积神经网络的发展 convolutional neural network 在计算机视觉领域,通常要做的就是指用机器程序替代人眼对目标图像进行识别等。那么神经网络也好还是卷积神经网络其实都是上个世纪就有的算法,只是近些年来电脑的计算能力已非当年的那种计算水平…

Swift 如何从图片数据(Data)检测原图片类型?

功能需求 如果我们之前把图片对应的数据(Data)保持在内存或数据库中,那么怎么从 Data 对象检测出原来图片的类型呢? 如上图所示:我们将 11 张不同类型的图片转换为 Data 数据,然后从 Data 对象正确检测出了原图片类型。 目前,我们的代码可以检测出 jpeg(jpg), tiff,…

手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)

首先理清我们需要实现什么功能,怎么实现,提供一份整体逻辑:包括主函数和功能函数 主函数逻辑: 1. 读图,两张rgb(cv::imread) 2. 找到两张rgb图中的特征点匹配对 2.1定义所需要的参数:keypoints…

VMware 安装 Centos7 超详细过程

CentOS系统,安装教程可参考以下: 哪些模型需要在Linux下运行,需提前预装Linux系统呢,评论区讨论吧 比如Noah-MP 5.0模型 1.软硬件准备 软件:推荐使用 VMware,我用的是 VMware 12 镜像:CentO…

【python爬虫】10.指挥浏览器自动工作(selenium)

文章目录 前言selenium是什么怎么用设置浏览器引擎获取数据解析与提取数据自动操作浏览器 实操运用确认目标分析过程代码实现 本关总结 前言 上一关,我们认识了cookies和session。 分别学习了它们的用法,以及区别。 还做了一个项目:带着小…

MTK6761/MT6761安卓核心板4G安卓智能模块详细参数性能介绍

MTK6761 安卓核心板采用12nm制程四核Cortex-A53、最高主频2.0GHZ 处理器,板载内存为 1GB8GB(2GB16GB、3GB32GB、4GB64GB),搭载Android 9.0操作系统。 MTK6761(曦力 A22)安卓核心板基本概述 MTK6761安卓核心板 是一款高性能低功耗…

【算法奥义】最大矩形问题

首先建立一个二维数组,这个二维数组,计算出矩阵的每个元素的左边连续 1 的数量,使用二维数组 left记录,其中left[i][j] 为矩阵第 i 行第 j 列元素的左边连续 1 的数量。 也就是从这个元素开始,从右往左边数有多少个连…

Socks5代理 vs. Socks4代理:特点和区别解析

在网络通信中,使用代理服务器可以提供更安全、匿名的连接。其中,Socks5和Socks4是两种常见的代理协议。本文将深入探讨它们之间的特点和区别,帮助您选择适合自己需求的代理类型。 1.特点概述 -Socks5(Socket Secure 5&#xff0…

SpringCloudGateway集成SpringDoc

SpringCloudGateway集成SpringDoc 最近在搞Spring版本升级,按客户要求升级Spring版本,原来用着SpringBoot 2.2.X版本,只需要升级SpringBoot 2.X最新版本也就可以满足客户Spring版本安全要求,可是好像最新的SpringBoot 2.X貌似也不…

【Apollo学习笔记】——规划模块TASK之SPEED_DECIDER

文章目录 前言SPEED_DECIDER功能简介SPEED_DECIDER相关配置SPEED_DECIDER流程MakeObjectDecisionGetSTLocationCheck类函数CheckKeepClearCrossableCheckStopForPedestrianCheckIsFollowCheckKeepClearBlocked Create类函数 前言 在Apollo星火计划学习笔记——Apollo路径规划算…

Java-API简析_java.net.Inet4Address类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/132643590 出自【进步*于辰的博客】 因为我发现目前,我对Java-API的学习意识比较薄弱…

Ansible学习笔记8

group模块: 创建一个group组: [rootlocalhost ~]# ansible group1 -m group -a "nameaaa gid5000" 192.168.17.105 | CHANGED > {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}…

Linux线程控制

目录 一、线程创建 1.1 pthread_create 1.2 线程传入启动函数参数方式 二、线程退出(pthread_exit函数 pthread_cancel函数) 三、线程等待 3.1 为什么要线程等待? 3.2 pthread_join函数 四、线程分离 4.1 pthread_detach() 和 pthread_self() 五、pthread库…

Gteam2.0免授权毛玻璃拟态UI带后台版本修复版

程序使用PHP7版本运行 后台信息/Admin 账号admin 密码123456 后台功能 多管理员、系统日志等等功能

机器学习---决策树的划分依据(熵、信息增益、信息增益率、基尼值和基尼指数)

1. 熵 物理学上,熵 Entropy 是“混乱”程度的量度。 系统越有序,熵值越低;系统越混乱或者分散,熵值越⾼。 1948年⾹农提出了信息熵(Entropy)的概念。 从信息的完整性上进⾏的描述:当系统的有序…

Ansible 自动化运维工具的使用

目录 一、Ansible简介 二、Ansible 的安装和使用 1.下载 2.使用 三、Ansible命令和模块 1.命令格式 2.命令行模块 (1)command 模块 (2)shell 模块 (3)cron 模块 (4)user 模…