为什么用 VirtualBox 呢?还有什么同类型的替代方案吗?

VirtualBox 开源免费。

另外:

  • Vmware Workstation,钱和尊严选一个;
  • Windows 下还有已经被放弃的wsl1和跟虚拟机差不了多少的wsl2(hyper-v,可能会降低电脑性能);
  • ……

一定要装 Debian 吗?

废话,不然这篇文章干啥。

Centos 和 Ubuntu 在网上有更多的教程和资源,貌似更好。


虚拟机安装

前方提示

Linux 镜像下载

官网下载 Debian 镜像的地址。

VirtualBox 下载

官网下载 VirtualBox 以及插件包。

创建虚拟机及配置网络

创建虚拟机

image-20210816153905912

  1. 进入 VirtualBox,点击新建
  2. 设定名称及文件夹类型和版本根据安装的系统来,这边选择Debian(输入电脑名称时会自动更改);
  3. 设定内存大小,可以适当调高一点;
  4. 点击创建——之后弹出窗口只需要更改你希望的硬盘大小就行,然后直接点创建

挂载镜像

选择你刚创建好的虚拟机,进行以下步骤:

image-20210816155116228

在弹出来的界面中选择注册——再选择你下载好的 debian 镜像——最后挂载即可。

设定网卡

设定网络的方法有很多种,我这边使用双网卡的方案,一个网卡实现外网连接,另一个实现与宿主机的互通

有其他方法例如利用windows 网络共享+仅主机以及NAT 的端口转发实现互通以及上网,这里就不做讨论了。

第一块网卡

image-20210816160346134

第二块网卡

image-20210816161337209

接着点击 VirtualBox 选项卡中的管理——主机网络管理器

image-20210816162008894

性能改善(可干可不干)

分配 CPU

image-20210816161629589

固态硬盘

image-20210816161745643

安装 Debian

开启虚拟机!

image-20210816162243949

选第一项回车即可,当然你想硬核干净点就选第二个,不带图形界面的安装;

接着选择中文——中国——汉语,一路默认也没关系;

主网络接口选最前面一个;

主机名域名默认即可;

Root 密码和用户密码也没什么好说的,按照提示来即可;

磁盘相关的也是一路默认,最后问你将改动写入磁盘吗的时候选个即可;

再一路默认到选择并安装软件的选项:

image-20210816163545562

其实桌面环境装不装无所谓,之后打交道最多的肯定是终端

不过对我来说,不装白不装,反正内存大,不在乎。

开机配置

安装完毕之后开机登陆,应该可以直接上网。

但第二个网卡还是要配置静态 ip的,默认网关设定宿主机的仅主机网卡 ip(例如 192.168.137.1),DNS 服务器不设置也可。

设置完之后 ping 一下宿主机是否能 ping 通,能 ping 通就 ok 了。

ping 不通也可能是 windows 防火墙的问题,设置下即可(将仅主机网卡从受保护的网络连接中去掉即可)。


杂七杂八配置

配置 sudo 免密

su
# 输入root密码
apt install sudo
vi /etc/sudoers

vim 下在末尾插入(命令模式下Go用户名 ALL=(ALL) NOPASSWD:ALL

按下 esc 并输入:w!回车,再输入:q退出 vim。

virtualbox 安装 guest addtions

在这边找到并下载适合你 virtualbox 版本的镜像,然后在虚拟机中挂载。

sudo apt install build-essential module-assistant
m-a prepare

挂载的镜像目录下执行sudo sh VBoxLinuxAddtions.run完成后重启即可。

然后那个镜像就没啥利用价值了,可以弹出了。

ssh 免密

windows:

ssh-keygen -t rsa

linux:

mkdir ~/.ssh
vi ~/.ssh/authorized_keys

将宿主机的.ssh/id_rsa.pub文件内容复制到其中,最后在命令模式下:wq回车即可。

如果你想将 linux 运行在后台,可以使用 VirtualBox 的无界面启动,此时 VirtualBox 所有窗口都可以关闭(虚拟机窗口关闭时选择后台运行)。

配置 github 的 ssh

debian:

ssh-keygen -t rsa

~/.ssh/id_rsa.pub内容复制。

安装 oh-my-zsh 及插件

首先安装 zsh:

sudo apt install -y zsh

虚拟机不用在乎oh-my-zsh速度的问题。

如果你很在乎:用zinit

如有需要,vi ~/.wgetrc并加入以下内容:

http_proxy = http://192.168.137.1:7890
https_proxy = http://192.168.137.1:7890
ftp_proxy = http://192.168.137.1:7890

http://192.168.137.1:7890换成你自己的代理服务器地址。

# 没有git先安装git
sudo apt install -y git
# 如要使用.wgetrc中的代理,请在wget后加上-Y on
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装插件:

#以下需要配置github的SSH,没有配置过的话把git clone后面的链接换成https的也可以
# 语法高亮插件
git clone git@github.com:zdharma/fast-syntax-highlighting.git \
  ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
# 自动建议
git clone git@github.com:zsh-users/zsh-autosuggestions.git \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 补全插件
git clone git@github.com:zsh-users/zsh-completions.git \
${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions
# 主题
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

之后 vim ~/.zshrc并改动三个地方:

# 更换主题
ZSH_THEME="powerlevel10k/powerlevel10k"
# 加载插件
plugins=(git fast-syntax-highlighting zsh-autosuggestions zsh-completions)
# 下一行加在最后
autoload -U compinit && compinit

重启 zsh 即可。


开发环境配置

c/c++

终端下运行:

sudo apt install gcc g++ gdb

你就可以快乐的写**C/C++**了!

go

安装

终端下运行:

# 下载,地址来源:https://golang.google.cn/dl/
wget https://golang.google.cn/dl/go1.16.6.linux-amd64.tar.gz
# 解压
sudo tar -C /usr/local -xzf go1.16.6.linux-amd64.tar.gz

export PATH=$PATH:/usr/local/go/bin加入~/.zshrc(要改的配置文件根据你使用的终端环境来,我用的是 zsh)。

换源

终端下运行:

go env -w GOPROXY=https://goproxy.cn,direct

这样使用go mod init XXX生成的项目都会使用七牛云的源了!

node.js

# 没有curl先装curl
sudo apt install curl
# 安装14.x版本的node.js
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt -y install nodejs