Windows 10 配合 Ubuntu Workstation 搭建舒适开发环境不完全指北

背景

Mac OS 一直是极客开发者首选的操作系统,然而在工作中,并不是每个公司都会为极客开发者配备 Mac OS。当然,环境是无法阻止极客开发者的,只是需要多走一步而已~

本文记录了使用 Window 配合远程 Linux workstation 搭建舒畅的开发环境的过程。操作系统配置信息如下:

OS Version CPU core Memory Disk Bandwidth
Windows 10 1809 4 16G 526G(SSD) 50M
Ubuntu 18.04 4 16G 90G 1000M

使用 Samba 使用远程文件共享

Linux 安装 Samba 服务

Samba service Installation

1
> sudo apt-get install -y samba samba-common

创建共享目录

1
> cd ~ && mkdir share

添加账号

1
> sudo smbpasswd -a gbin # gbin 账号必须是系统中存在的账号,如果系统中不存在则先 useradd 添加账号

修改配置

1
> sudo vim /etc/samba/smb.conf

末尾添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[share]
comment = share from ubuntu
browseable = yes
path = /home/gbin/share
create mask = 0700
directory mask = 0700
valid users = gbin
force user = gbin
force group = gbin
public = yes
available = yes
writable = yes

重启 smbd 服务

1
> sudo service smbd restart

Windows 接入共享文件夹

打开资源管理器,输入 \your-ip\your-shared-folder,在弹出的对话框中输入账号密码。输入完成后,即可在 Windows 上开发项目,对项目的更改会实时同步到 Linux 中,修改完成后可直接在 Linux 中编译运行,Web 等项目则可以直接在 Window 中通过浏览器远程访问项目。

[Optional]: 将共享目录映射成一个 Drive
打开资源管理器 -> Network -> Map Network Drive:

[Optional] troubleshooting

Window 无法连接共享文件夹
Window 尝试连接共享文件夹时,报如下错误:

1
You Can’t  Access This Share Folder Because Your Organisation’s Security Policies Block Unauthenticated Guest Access.

can not access shared folder

  • ssh 登录 ubuntu,使用 smbclient 检查 samba 服务的可用性

    1
    2
    > sudo apt-get install -y smbclient
    > smbclient -L \\localhost -U username%your-password

    输出如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    WARNING: The "syslog" option is deprecated

    Sharename Type Comment
    --------- ---- -------
    print$ Disk Printer Drivers
    share Disk share from ubuntu
    IPC$ IPC IPC Service (gbin-dev server (Samba, Ubuntu))
    Reconnecting with SMB1 for workgroup listing.

    Server Comment
    --------- -------

    Workgroup Master
    --------- -------
    WORKGROUP GBIN-DEV

    其中看到 share from ubuntu 的注释代表 smb 服务启动成功

  • 修改 windows 的配置
    按照这个教程 开启 insecure guest logons 选项

其他方案

Windows + WSL + Window Terminal

最近,微软发布了 Windows Terminalpreview 版本,该方案也是值得尝尝新,但是要求 Window 10 的系统版本要 >=1903,因为公司电脑统一升级,我尝试自己升级两次后都失败了,所以放弃了该方案,感兴趣的同学可以自己尝试尝试。

Windows + Virtual Machine

这种方案是使用诸如 VMware Workstation (Player || pro)、Hyper-V、VirtualBox 之类的虚拟机管理软件安装 Linux 虚拟机,然后虚拟机和主机之间通过某些方案(虚拟机的文件夹共享或者 samba 服务)进行文件共享,最后在 Windows 上进行开发,在 VM 上完成编译。

在没有远程 Linux 的情况下可以考虑使用这种方案,但是可能会遇到如下问题:

  • 网络问题

    虚拟机提供多种网络环境,如果要接入外网的话一般会选 BridgeNAT 这两种方案之一。但是,一般来讲公司的内网 IP 会受限制,无法使用 Bridge,而使用 NAT 网络时,VM Player 对端口转发支持并不是很好(Pro 版要收费)。总的来讲,一是折腾起来很麻烦, 二十使用虚拟机本身就很耗费资源,显得臃肿,与极客开发者的性格不相符合。

  • 文件夹共享问题

    使用虚拟机管理软件提供的文件夹共享可以把 Windows 宿主机下的文件夹挂在到 Linux 中,但是这种方式在共享文件夹中使用 npm 会有一些坑,与 symlink 相关,详情可以参考这里

    除了使用虚拟机管理软件提供的文件夹共享方式以外,还可以用 samba 服务把虚拟机里的目录共享到宿主机上,这样可以很方便的在 Windows 上开发,在 Linux 中完成编译运行。

本文标题:Windows 10 配合 Ubuntu Workstation 搭建舒适开发环境不完全指北

文章作者:Syncher

发布时间:2019年07月02日 - 17:07

最后更新:2019年08月02日 - 09:08

原始链接:https://0x400.com/2019-07-02-dev-environment-on-windows-and-linux.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。