首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉勾
V2EX  ›  程序员

小讨论,公司不提供带 GUI 的 Linux .但是我想在 Linux 环境下敲代码.

  •  
  •   chaleaochexist · 55 天前 · 6013 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为 lz 本份工作和上一份工作都遇到了这个问题.相信论坛上一定也有遇到类似情况的同志.

    想问一下如何解决.

    1. windows 10 的 sublinux, 理论上还是 ssh 远程调试.
    2. ssh 远程调试
    3. docker 远程调试
    4. 虚拟机
    5. ???

    ssh 远程调试的问题

    1. 嫌麻烦.同步不好容易出问题.
    2. 想临时修改第三方插件的话,同步代码有点费劲. 总之嫌麻烦. 多谢各位.

    本人 python 程序员.

    第 1 条附言  ·  55 天前
    被喷死了.
    不好意思是我母语没学好.

    简单来说,我就是想用一台本地的带 GUI 的 linux 桌面版做开发.

    但是手里只有一台 windows 笔记本和任意台 cmd linux 服务器.

    楼下各位 说的 vagrant 和 sftp 之类 都是远程调试方式.缺点是,代码同步容易出问题,还有就是 pip install 的三方插件不能及时修改(不能同步),当然手动配置可以的. -- 但是楼主感觉好麻烦.
    79 回复  |  直到 2019-02-28 20:39:16 +08:00
        1
    neoblackcap   55 天前 via iPhone
    为什么你们修改代码不用进版本库?不用经过部署流程就发布?生产环境 hotfix ?有点厉害啊!
        2
    tomczhen   55 天前   ♥ 1
    换家小公司。

    当个开发+运维+客服全干工程师,别说服务器装个 GUI 跑下 IDE 调试,直接锁了服务器跑路都行。
        3
    chungzhao   55 天前   ♥ 5
    https://spencerwoo.com/dowww/ - 在 Windows 上用 WSL 优雅开发
    也可以考虑一下
        4
    luckychenhaha   55 天前
    vim 一把梭
        5
    www5070504   55 天前
    虚拟机呗 带界面的 ubuntu 不好用吗 直接在共享目录里调试 调试完了就可以从 windows 上传
        6
    zjsxwc   55 天前
    关键字:idea+sftp
        7
    realkenshinji   55 天前
    不带 GUI,那就 vim+tmux 咯
        8
    yidinghe   55 天前
    自己电脑上装个 Linux 桌面不就是了,公司提供的到底是什么?
        9
    CallMeReznov   55 天前   ♥ 1
        10
    axeojpwt   55 天前
    emacs 可以。
        11
    bumz   55 天前
    @CallMeReznov #9 不过为啥链接发的是过时的 fork 而不是原项目。。。
        12
    tomychen   55 天前
    大把的方法啊
    win+ IDE -> push 到 linux
    win+ editor-> push 到 linux
    win+ VM-> push 到 Linux
    Linux Desktop -> push 到 Linux

    还有终极 vim 大法
        13
    CallMeReznov   55 天前
    @bumz #11 噢 我之前直接 fork 的 随便点进去忘记找原连接给你了 不好意思
    https://github.com/Hello-Linux/Ansible-VIM-IDE
        14
    jmc891205   55 天前
    vim/emacs 呀
        15
    chinvo   55 天前 via iPhone
    你这意思是大公司就提供带 gui 的 Linux 服务器了?

    要开发在本地开发,别乱搞服务器
        16
    quinoa42   55 天前
    ssh blabla -t tmux
        17
    likuku   55 天前 via iPhone
    学一下 vim/Emacs 不碍事,如学会骑自行车 /游泳,
    一劳永逸,终身受益,还可以参与 /围观 vim vs Emacs 永不完结的互殴
        18
    Chingim   55 天前 via Android
    卧槽。。。想直接搞服务器
        19
    privil   55 天前   ♥ 2
    运维听了想打人……服务器装 gui
        20
    ClutchBear   55 天前   ♥ 1
    vagrant 了解一下
    pychram 里面直接支持 vagrant 远程调试的.
    启动 vagrant 后,
    pycharm 里面 python 解释器设置到 vagrant, 就可以了.
    vagrant 是操作的宿主 windows 的目录.
        21
    fyibmsd   55 天前
    Xming 了解一下
        22
    liprais   55 天前   ♥ 1
    wsl 那垃圾磁盘性能,能用?
        23
    sonyxperia   55 天前
    公司给你什么你就用什么
    除非自己开公司
        24
    expy   55 天前
    是我阅读理解做不出来么?楼主哪里提到服务器上直接操作了?
        25
    pkookp8   55 天前 via Android
    世界上有三种编辑器。你说选哪种
    vim
    emacs
    其他
        26
    vissssa   55 天前
    @chinvo 又说到大小公司么、、、可能他做的是 DL 方面的 依赖于服务器的硬件 所以不能本地开发
        27
    chinafeng   55 天前
    是我理解有问题吗,线上生产环境服务器一把梭?
        28
    boris1993   55 天前 via Android
    直接操服务器???这么牛逼的吗???
    肯定是本地真机或者虚拟机装 Linux 啊
    如果给你配的开发机没有 GUI 那就找领导、IT 啥的反映一波吧
        29
    daviswei   55 天前
    办公机的硬盘上划个三五十 G 空间,自己装个 linux,然后 grub 配一下,双系统不就皆大欢喜了
        30
    mason961125   55 天前
    python...这不 vagrant 一把梭就完事了?
        31
    yulgang   55 天前
    没太明白,服务器不装 GUI ?我们的也都不装 GUI,要调试在集成环境调。
    如果确实需要在生产环境服务器上使用 GUI,可以在本地电脑上装个 x server,然后将它转发到服务器上就可以启动服务器上的图型界面的程序了,窗口出现在本地电脑上。
        32
    xpresslink   55 天前
    这个问题都要问还敢说是 Python 程序猿
        33
    xia0pia0   55 天前
    pycharm 配置远程环境运行及部署吧,应该能满足你的需求,自动 Push 代码以及运行、断点调式功能都可以的
        34
    ihainan   55 天前
    @chungzhao WSL 的坑太多了…
        35
    ducklyl   55 天前
    服务器装 gui? gui 会占用服务器的性能,不可能这样干。
        36
    jetyang   55 天前
    ssh 登录到 Linux,Windows 上 ssh client 一大把,然后使用 vim 或 emacs 编程
        37
    xiaohanliang   55 天前
    Goland/IntelliJ/Clion -> Settings -> Build,Execution,Deployment -> Deployment -> 点击`+` 添加 SFTP server
        38
    ivechan   55 天前
    vim 大法好~
        39
    chaleaochexist   55 天前
    @yidinghe windows 10 笔记本 和 linux 云主机.
        40
    lithiumii   55 天前
    python 啊,试试用 jupyter lab 敲代码,ssh 把 web ui 转发到本地
        41
    zzzhbooo   55 天前
    找个 sftp gui 客户端如 FileZilla,cyberduck,在本地使用顺手的编辑器打开 linux 服务器的文件
        42
    hovenrech   55 天前
    我是这么玩的:vscode,默认 terminal 用 WSL ;需要 Linux 编译就切换到 terminal 下敲命令,需要 windows 编译就用 vscode 的 recipe (这个我只用过 latex 默认的)
        43
    zzzhbooo   55 天前
    sftp 用到现在没遇到过代码同步错误的问题,即使公司服务器在美国,慢的时候 ssh 延迟好几秒。
    使用 virtualenv 加 requirement.txt 来同步包有什么麻烦的
        44
    ranwu   55 天前
    你的笔记本操作系统换成 linux 不就行了?
        45
    jdhao   55 天前
    笨办法,在 Windows 上配置和服务器一样的环境,Windows 写代码,然后传到 Linux 上。

    或者直接在 Linux 上把环境配好,使用 Vim 来写代码,不过需要好好配置一番,否则写代码还是不如 IDE 那么方便。
    Python 开发的话,可以参考我的配置 https://jdhao.github.io/2018/09/05/centos_nvim_install_use_guide/ ,我也是在 Linux 服务器上写代码(无 GUI,深度学习模型,必须用有 GPU 的服务器)。
        46
    king2014   55 天前
    vagrant 代码同步有什么问题?
        47
    tabris17   55 天前
    顺路问问,VSCode 的 Language Server 远程调试究竟怎么用?
        48
    66beta   55 天前 via Android
    那么你的 Windows 电脑为什么不能装 Linux 呢?
        49
    chaleaochexist   55 天前
    @zzzhbooo 偶尔会改包里面的源码.
        50
    xfspace   55 天前 via Android
    选择题
    上 Linux
    换 MacOS
        51
    chaleaochexist   55 天前
    @king2014 vagrant 本质还是一个 virtualbox.我拍脑袋猜也是 ssh 方式 调试吧?
        52
    zzzhbooo   55 天前
    @chaleaochexist 如果改了源码那这个包就相当于是你自己的包了,需要自己进行管理维护,和 pip 没有联系了
        53
    baicheng10   55 天前
    1 再买一台笔记本装 linux
    2 手中笔记本搞个双系统
    3 手中笔记本干掉 WIN 装 LINUX
        54
    Asan   54 天前 via Android
    公司不配 Mac,我想在 Mac 上敲代码,然后我就用了自己的 Mac。这事儿有那么难吗?你自己在本儿上装个有 GUI 的 Linux 妥妥的。
        55
    youngxu   54 天前 via Android
    自己的需求,自己买电脑
        56
    weyou   54 天前 via Android
    服务器上安装 samba,共享目录映射到本地磁盘,跟在本地开发没啥两样
        57
    mason961125   54 天前 via iPhone
    @chaleaochexist vagrant 是直接把你本地的目录映射过去的,所以哪里有复制的问题?
        58
    xydche   54 天前 via Android
    hyper-v?
        59
    sunzongzheng   54 天前
    给你的笔记本不是随便你自己装系统?
        60
    FrankHB   54 天前
    @Asan 有的有保密要求,不能用自己的设备,疼得 1b ……虽然 LZ 大概也没这问题了。
        61
    king2014   54 天前 via Android
    @chaleaochexist 有文件共享映射,wondows 下直接调试 windows 下文件代码,浏览器直接显示效果,不需要进 ssh 到系统
        62
    scriptB0y   54 天前
    我只用 TUI 哈哈,我所有的开发工具都是 TUI 的。
        63
    sinxccc   54 天前
    呃,方法多的是啊…

    1. 如果你能习惯 TUI 的话,ssh/mosh 到服务器上,然后 tmux/screen 外加 VIM/Emacs 随便你组合

    2. 如果你能习惯开发工具在 Windows 上的移植版本的话,可以考虑 Emacs + tramp、share nfs/samba 分区的方式

    3. 如果你就是想用 Linux 上的 GUI 工具,但是不纠结 WM 的话,可以 ssh X forwarding 或者 NoMachine

    4. 如果你就是想用 Linux 上的 GUI 工具,而且希望连 WM 一起用的话,可以 VNC/NoMachine,ssh X forwarding 也能做到就是别扭了点。
        64
    Trim21   54 天前 via Android
    pycharm 远程调试运行基本跟本机体验一样啊,虽然本质上还是 ssh …
        65
    Trim21   54 天前 via Android
    顺便我记得如果有对应文件的写权限 pycharm 是可以直接改 pip 安装的第三方库的(用转到定义功能,跳到对应文件之后)
        66
    msg7086   54 天前   ♥ 1
    关于主题的问题上面说了很多了我就不多说了。

    我只想问,上面那么多层楼是怎么脑补出“服务器”这三个字的,或者“生产服务器”这五个字的?
        67
    jorneyr   54 天前
    如果只是代码同步的话非常简单,搭建一个 git 私服,自己再写一个简单的 Socket 通讯程序,再创建几个 alias 命令,修改代码后执行命令:git 提交 push 到服务器,然后 Socket 通知编译运行端更新代码,编译端实时收到消息后执行 git 命令下载代码,执行编译命令,然后运行程序。
        68
    dychenyi   54 天前
    楼主估计不熟悉 vim。
    不熟 vim 的话那么笔记本配置好就装 vm+gui linux。 或者自己带电脑装 gui linux。 解了。
        69
    ClutchBear   54 天前   ♥ 1
    vagrant 不是同步代码的,
    win 系统下就不安装 python.
    所有开发都在 vagrant 里面,
    哪里来的第三方库同步的问题.
        70
    XxxxD   54 天前
    1,在来个电脑装 linux
    2,window 上再装个 linux,我记得 win10 好像支持这个
        71
    rebackhua   54 天前
    linux samba 共享,windows mount 直接 gui 编辑,运行用 ssh
        72
    yoshiyuki   54 天前
    @neoblackcap 并没有文字说楼主公司提供的机器就是生产环境
        73
    qiukun   54 天前
    同步很麻烦,不过如果加一个约束,一次复制到本地,然后只在本地编辑,单向上传到服务器,就还行,textmate jetbrains' IDEs 都有相关功能。远程调试问题倒不大。
        74
    libook   54 天前
    如果 windows 机器是台式机,可以装虚拟机,免疫各种驱动问题。我曾经有一年多的时间是 Win10+VirtualBox+Arch,上班时间全屏办公,下班时间暂停虚拟机打游戏。。。

    Windows 上可以用 Cygwin 装 XServer,我现在用 XServer 跑 WSL 的 GUI,不过不用于工作,只用于日常使用一些小工具,因为 WSL 的性能不是很好,跑重型 IDE 可能压力会比较大(我没试过)。

    X 是可以在网络上用的,也就是说,你有一台 Linux 机器,可以直接把 GUI 传输到 Windows 机器上的 XServer 上展示,理论上可行,性能可能会比 WSL 好很多。https://askubuntu.com/questions/203173/run-application-on-local-machine-and-show-gui-on-remote-display
    或者 VNC 也可以,简单方便,就是得找个顺手的 VNC 客户端。
    X 和 VNC 原理不一样,X 是直接把 GUI 对象传递到 XService 上,由 XServer 来决定如何布局和展示; VNC 是先在本地渲染好界面,再投屏到远程客户端上; X 是 Linux 机主动推送到 Windows 机上,VNC 是 Windows 机主动去 Linux 上取画面。
        75
    tourist2018   54 天前
    macOS or 虚拟机
        76
    fy   54 天前
    把自己笔记本安装成 Linux,完事
        77
    chaleaochexist   19 天前
    @ClutchBear 你好,所以,
    1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗?
    windows 宿主机里面什么都不需要了.
    2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行?
        78
    chaleaochexist   19 天前
    @mason961125
    @king2014
    @mason961125

    你好,所以,
    1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗?
    windows 宿主机里面什么都不需要了.
    2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行?
        79
    ClutchBear   18 天前   ♥ 1
    @chaleaochexist #77
    1: windows 宿主机只有一个 pycharm ide 而已, 当然代码也存到 windows 硬盘里面
    2: 只要是项目代码里面有的都可以修改, 你说 python 目录里面 lib 的肯定需要 ssh 进入虚拟机修改
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3126 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1