vmware虚拟机(ubuntu)远程开发golang、python环境安装

news2024/11/28 6:46:49

目录

  • 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.coloradmin.cn/o/968345.html

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

相关文章

2023 AZ900备考

文章目录 如何学习最近准备考AZ900考试,找了一圈文档,结果发现看那么多文档,不如直接看官方的教程https://learn.microsoft.com/zh-cn/certifications/exams/az-900/ ,简单直接,突然想到纳瓦尔宝典中提到多花时间进行思…

JUC并发编程--------CAS、Atomic原子操作

什么是原子操作?如何实现原子操作? 什么是原子性? 事务的一大特性就是原子性(事务具有ACID四大特性),一个事务包含多个操作,这些操作要么全部执行,要么全都不执行 并发里的原子性…

Java8新特性Lambda表达式详细

Comparator&#xff1a;此接口中只包含一个方法 int compare(T A,T B) 如果A>B&#xff0c;返回正数 如果AB&#xff0c;返回0 入伙A<B&#xff0c;返回负数Lambda表达式 函数式重点&#xff1a;只需要关注参数列表和方法体 看参数ctrlp 需求分析 我们在创建线程并启动…

Python常用IDE选择与安装

1、IDE简介 选择一款高效而又顺手的IDE学习或使用Python&#xff0c;可以让你的开发之路充满激情和动力&#xff0c;让你真正投入其中。 常见的Python的IDE工具有&#xff1a; PyCharm 由JetBrains开发的Python IDE&#xff0c;功能强大&#xff0c;支持调试、代码自动完成、…

Java应用CPU占用过高故障排除

一、背景 最近测试反馈测试环境接口偶现有访问超时&#xff0c;然后APP提示是网络失败&#xff0c;看了一下测试环境的应用完全没啥问题&#xff0c;一直以为是网络问题。 今天测试有反馈了&#xff0c;赶紧看了一下测试服务器&#xff0c;这次终于有症状了&#xff0c;CPU直…

【FPGA项目】沙盘演练——基础版报文收发

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 第1个虚拟项目 前言 点灯开启了我们的FPGA之路&#xff0c;那么我们来继续沙盘演练。 用一个虚拟项目&#xff0c;来入门练习&#xff0c;以此步入数字逻辑的…

《C++ primer plus》精炼(OOP部分)——对象和类(1)

聪明在于学习&#xff0c;天才在于积累。所谓天才&#xff0c;实际上是依靠学习。 文章目录 概述正文面向对象编程和面向过程编程类和对象类的组成公共接口 类声明访问控制封装 类和结构体类定义 概述 C是门包罗万象的语言&#xff0c;它将各门类的编程思想杂糅&#xff0c;最…

Parallels Desktop 19新功能解析,助力跨平台工作流程提升!

对于许多Mac用户来说&#xff0c;运行Windows应用程序是必不可少的。也许你的雇主使用的软件只适用于Windows&#xff0c;或者需要使用依赖于某些Windows技术的网站。或者你想在Mac上玩Windows游戏。或者&#xff0c;你可能需要在其他操作系统上测试应用程序和服务——你可以在…

系统vcomp120.dll丢失怎么办?要怎样修复呢?三个修复方法分享

我要和大家分享一个关于系统丢失vcomp120.dll文件的问题。这个问题可能会困扰很多使用电脑的朋友&#xff0c;特别是在运行某些软件时&#xff0c;可能会出现“找不到vcomp120.dll”的错误提示。那么&#xff0c;遇到这样的问题&#xff0c;我们应该如何解决呢&#xff1f;接下…

用 ChatGPT 写代码太省时间了

几个月前&#xff0c;我们聊过陶哲轩使用 ChatGPT 辅助解决数学问题。当时&#xff0c;他觉得虽然测试结果不太令人满意&#xff0c;但也并没有对 ChatGPT 持完全否定的态度。他觉得&#xff0c;像 ChatGPT 这类大型语言模型在数学中可以用来做一些半成品的语义搜索工作&#x…

【leetcode 力扣刷题】汇总区间//合并区间//插入区间

一些关于区间的力扣题目 228. 汇总区间56. 合并区间57. 插入区间 228. 汇总区间 题目链接&#xff1a;228.汇总区间 题目内容&#xff1a; 看题目真是没懂这个题到底是要干啥……实际上题目要求的恰好覆盖数组中所有数字的最小有序区间范围列表&#xff0c;这个最小是指一个区…

QT 设置应用程序图标

1.下载xx.ico图标&#xff1a;ico网址 2.在线PNG转换ICO&#xff1a;png在线转换ico 3.添加图标资源 1&#xff09;新建文件路径 2&#xff09;添加图片资源 3&#xff09;在 .pro文件里面添加图片 4&#xff09;将xx.ico放到工程目录&#xff0c;编译完可以看到xx.exe的图标…

【LeetCode】515.在每个树行中找最大值

题目 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2&#xff1a; 输入: root [1,2,3] 输出: [1,3]提示&#xff1a; 二叉树的节点个数的范围是 [0,10^4]-2^31 < No…

无涯教程-JavaScript - CUBERANKEDMEMBER函数

描述 CUBERANKEDMEMBER函数返回集合中的第n个或排序的成员。 使用此功能可返回一组中的一个或多个元素,如销售业绩最好的人或前十名的学生。 语法 CUBERANKEDMEMBER (connection, set_expression, rank, [caption])争论 Argument描述Required/OptionalconnectionThe name …

Linux--进程--创建子进程一般目的

父进程创建子进程的目的&#xff1a;简单来说&#xff1a;给特定的输入&#xff0c;给出特定的输出 父进程希望复制自己&#xff0c;使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达&#xff0c;父进程调用fork&…

FPGA 学习笔记:Vivado 工程管理技巧

前言 当前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 开发利器 Vivado 的工程管理方法 这里初步列举一些实际 Xilinx FPGA 开发基于 Vivado 的项目使用到的工程的管理技巧 代码管理 做过嵌入式软件或者其他软件开发的工程技术人员,都会想到使用代码管理工具,如 SVN 、…

架构师成长之路Redis第一篇|Redis 安装介绍以及内存分配器jemalloc

安装 Redis官网:https://redis.io/download/ 下载安装二进制文件 可下载安装最新版Redis7.2.0,或者可选版本6.x 我这里下载6.2.13和7.2最新版本,后面我们都是安装6.2.13版本的信息进行讲解 二进制文件安装步骤 安装前期准备: 安装gcc yum install gcc 压缩文件 tar -xzf re…

SpringCloud(34):Nacos服务发现

1 从单体架构到微服务 1.1单体架构 Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能模块使用同一个数据库,同时,它还提供API或者UI访问的web模块等。 尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用,这…

Linux:内核解压缩过程简析

文章目录 1. 前言2. 背景3. zImage 的构建过程4. 内核引导过程5. 内核解压缩过程6. 内核加压缩过程小结7. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. 背景 本文基于 ARM32架构 …

【德哥说库系列】-ASM管理Oracle 19C单实例部署

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…