工作在windows机器上,却总是需要开发一些在linux 上面跑的应用。这样就面临两个问题:
- 两台机器之间需要频繁地同步代码
- 开发环境与测试环境不一致
之前有人提到过使用windows的WSL,但有时候测试机器并不是ubuntu,所以还是很麻烦。
在下定决心去学习vim或者emacs之类高端大气IDE之前,我还想继续挣扎一下。
这个从一个小兄弟那里学到的samba+vscode的套路是这样的:
- 在linux机器上用samba把一个目录共享出来
- 在windows上面创建一个网络驱动器映射
- 使用vscode编辑这个映射目录里面的源文件,编译脚本什么的。 // 如果windows装了mingw,甚至可以试试在windows上面编译和调试。
- 在 linux上面,编译,调试,操作git。
因为之前没有用过samba,所踩了相当多的坑。
- sudo apt-get insall samba
- vim /etc/samba/smb.conf
- pdbedit -a root
- /etc/init.d/smbd restart
以下的这些点可能对你有帮助:
-
service smb start 可能会报告什么services not found之类的错误。解决办法是使用下面的命令
/etc/init.d/smbd restart /etc/init.d/smbd start
-
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
之前因为共享路径不存在而导致的问题就是这样排除掉的。
-
pdbedit -L 显示samba账户信息,pdbedit -a添加账户。
-
有时候从windows上已经连上了网络驱动器,但是点不开,这说明登录设置都已经正确了,只是这个登录账号没有该文件夹的访问权限。那就改权限好了
-
防火墙和selinux捣乱。有空再研究好了,先关掉。
-
最坑的是,windows可能还需要相应配置来打开smb服务:
Windows无法访问\\ 请检查名称的拼写
控制面板——>程序——>启用关闭windows服务
-
连接的时候还要注意把这个使用其他凭据勾选上:
如果还有其他的问题,回2 3 4 5。
搞好之后用起来就很愉快了。
希望永远不要被迫去记忆超过5个以上的vim快捷键。