学不会vim,那么就用samba+vscode搭建便捷的linux开发环境

  • Post author:
  • Post category:linux


工作在windows机器上,却总是需要开发一些在linux 上面跑的应用。这样就面临两个问题:

  • 两台机器之间需要频繁地同步代码
  • 开发环境与测试环境不一致

之前有人提到过使用windows的WSL,但有时候测试机器并不是ubuntu,所以还是很麻烦。

在下定决心去学习vim或者emacs之类高端大气IDE之前,我还想继续挣扎一下。

这个从一个小兄弟那里学到的samba+vscode的套路是这样的:

  1. 在linux机器上用samba把一个目录共享出来
  2. 在windows上面创建一个网络驱动器映射
  3. 使用vscode编辑这个映射目录里面的源文件,编译脚本什么的。  // 如果windows装了mingw,甚至可以试试在windows上面编译和调试。
  4. 在 linux上面,编译,调试,操作git。

因为之前没有用过samba,所踩了相当多的坑。

  1. sudo apt-get insall samba
  2. vim /etc/samba/smb.conf
  3. pdbedit -a root
  4. /etc/init.d/smbd restart

以下的这些点可能对你有帮助:

  1. service smb start 可能会报告什么services not found之类的错误。解决办法是使用下面的命令

    /etc/init.d/smbd restart
    /etc/init.d/smbd start
    
  2. samba配置文件有可能设置不对 ,里面的共享路径可能不存在,或者是从网上哪里拷贝来的配置文件里面有加了不必要的字段,这个可能需要研究一下官方文档(我没有)。总之花了九牛二虎之力才把这里的问题排除掉:

    vim /etc/samba/smb.conf
    
    [lee_share]
       comment = lee edit
       path = /home/lee/share
       browseable = yes
       writable = yes
       guest ok = yes
       public = yes
       # valid users = root # 怀疑这个是多余的
       public = yes
       available = yes
    

    有一个以不变应万变的debug的方法是去看samba 的日志,不同访问机器有自己单独的日志文件:

    lee@lee-virtual-machine:/var/log/samba$ ls
    cores  log.  log.192.168.80.1  log.192.168.80.146  log.desktop  log.lee-virtual-machine  log.nmbd  log.smbd

    之前因为共享路径不存在而导致的问题就是这样排除掉的。

  3. pdbedit -L 显示samba账户信息,pdbedit -a添加账户。

  4. 有时候从windows上已经连上了网络驱动器,但是点不开,这说明登录设置都已经正确了,只是这个登录账号没有该文件夹的访问权限。那就改权限好了

  5. 防火墙和selinux捣乱。有空再研究好了,先关掉。

  6. 最坑的是,windows可能还需要相应配置来打开smb服务:

    Windows无法访问\\ 请检查名称的拼写

    控制面板——>程序——>启用关闭windows服务

  7. 连接的时候还要注意把这个使用其他凭据勾选上:

    如果还有其他的问题,回2 3 4 5。

搞好之后用起来就很愉快了。

希望永远不要被迫去记忆超过5个以上的vim快捷键。



版权声明:本文为qq_39597358原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。