• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chaleaochexist
V2EX  ›  程序员

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

  •  
  •   chaleaochexist · Jan 23, 2019 · 10983 views
    This topic created in 2845 days ago, the information mentioned may be changed or developed.

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

    想问一下如何解决.

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

    ssh 远程调试的问题

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

    本人 python 程序员.

    Supplement 1  ·  Jan 23, 2019
    被喷死了.
    不好意思是我母语没学好.

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

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

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

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

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

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

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

    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 也能做到就是别扭了点。
    Trim21
    Trim21
    Jan 24, 2019 via Android
    64
    pycharm 远程调试运行基本跟本机体验一样啊,虽然本质上还是 ssh …
    Trim21
    Trim21
    Jan 24, 2019 via Android
    65
    顺便我记得如果有对应文件的写权限 pycharm 是可以直接改 pip 安装的第三方库的(用转到定义功能,跳到对应文件之后)
    msg7086
    msg7086
    Jan 24, 2019❤️1
    66
    关于主题的问题上面说了很多了我就不多说了。

    我只想问,上面那么多层楼是怎么脑补出“服务器”这三个字的,或者“生产服务器”这五个字的?
    jorneyr
    jorneyr
    Jan 24, 2019
    67
    如果只是代码同步的话非常简单,搭建一个 git 私服,自己再写一个简单的 Socket 通讯程序,再创建几个 alias 命令,修改代码后执行命令:git 提交 push 到服务器,然后 Socket 通知编译运行端更新代码,编译端实时收到消息后执行 git 命令下载代码,执行编译命令,然后运行程序。
    dychenyi
    dychenyi
    Jan 24, 2019
    68
    楼主估计不熟悉 vim。
    不熟 vim 的话那么笔记本配置好就装 vm+gui linux。 或者自己带电脑装 gui linux。 解了。
    ClutchBear
    ClutchBear
    Jan 24, 2019❤️1
    69
    vagrant 不是同步代码的,
    win 系统下就不安装 python.
    所有开发都在 vagrant 里面,
    哪里来的第三方库同步的问题.
    XxxxD
    XxxxD
    Jan 24, 2019
    70
    1,在来个电脑装 linux
    2,window 上再装个 linux,我记得 win10 好像支持这个
    rebackhua
    rebackhua
    Jan 24, 2019
    71
    linux samba 共享,windows mount 直接 gui 编辑,运行用 ssh
    yoshiyuki
    yoshiyuki
    Jan 24, 2019
    72
    @neoblackcap 并没有文字说楼主公司提供的机器就是生产环境
    qiukun
    qiukun
    Jan 24, 2019
    73
    同步很麻烦,不过如果加一个约束,一次复制到本地,然后只在本地编辑,单向上传到服务器,就还行,textmate jetbrains' IDEs 都有相关功能。远程调试问题倒不大。
    libook
    libook
    Jan 24, 2019
    74
    如果 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 上取画面。
    tourist2018
    tourist2018
    Jan 24, 2019
    75
    macOS or 虚拟机
    fy
    fy
    Jan 24, 2019
    76
    把自己笔记本安装成 Linux,完事
    chaleaochexist
    chaleaochexist
    OP
    Feb 28, 2019
    77
    @ClutchBear 你好,所以,
    1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗?
    windows 宿主机里面什么都不需要了.
    2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行?
    chaleaochexist
    chaleaochexist
    OP
    Feb 28, 2019
    78
    @mason961125
    @king2014
    @mason961125

    你好,所以,
    1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗?
    windows 宿主机里面什么都不需要了.
    2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行?
    ClutchBear
    ClutchBear
    Feb 28, 2019❤️1
    79
    @chaleaochexist #77
    1: windows 宿主机只有一个 pycharm ide 而已, 当然代码也存到 windows 硬盘里面
    2: 只要是项目代码里面有的都可以修改, 你说 python 目录里面 lib 的肯定需要 ssh 进入虚拟机修改
    impressioncr
    impressioncr
    Mar 26, 2019
    80
    https://github.com/codercom/code-server
    服务器上运行 vs code
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1459 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 129ms · UTC 05:07 · PVG 13:07 · LAX 21:07 · JFK 00:07
    ♥ Do have faith in what you're doing.