故事是这样,不管老哥是换了新的工作环境,还是换了一台新的电脑。做的第一件事就是装一堆环境(不管是 java,npm,还是 python,go-lang ),还有各种让自己高效的工具。在这个自己熟悉的环境往往效律加倍。
问题来了,各位老哥分享一下自己都是怎么解决这个问题的?
我想到的有:
a. 人肉装,可能花个半天到两天不等。
b. 可能有个 shell 脚本,适用于 linux 环境,把自己的开发环境脚本化,跑一下脚本,抽根烟,可能就好了吧(此方案的老哥可以继续分享一下经验)
c. 虚拟机方案,开发环境在虚拟机里面,安装好的环境打成镜像,换台新电脑,开发只要装个虚拟机,把镜像一搂完事(可能会存在虚拟机的性能不及本地操作系统)。
d. 还有一种方案就是直接云主机了,可能成本会高些,随时远程连上去,不存在装环境的问题(不知道有没有靠谱的推荐)。
e. 虚拟机方案,还想到一个是 Vagrant,可以脚本标准化环境。但这种对脚本语言 /解析型语言( python/javascript )可能问题不大,但对编译型语言( java )可能会存在问题,ide 装在宿主机还是装在 vagrant 的虚拟机里面,如果装在里面也可能会面临 gui 的性能问题。
各位老哥有什么好的解决方案一起分享探讨。或者有使用上面的某个方案的,你是如何解决上面遇到的一些坑的?
     1 
                    
                    afutureus      2021-09-01 23:24:31 +08:00 via iPhone 
                    
                    timemachine……真的好方便…… 
                 | 
            
     2 
                    
                    heyjei      2021-09-01 23:29:13 +08:00 
                    
                    我刚在安装一台 windows10 的开发环境。开发工具其实只要有一个常用列表,和配置文件备份,弄起来还是挺快的。 
                关键就是有些地方要代理才能配置好,这个就很麻烦  | 
            
     3 
                    
                    chendy      2021-09-01 23:33:54 +08:00 
                    
                    人肉装 
                jdk,idea,vsc,语雀,chrome,完事  | 
            
     4 
                    
                    test523      2021-09-01 23:40:27 +08:00 
                    
                    我有自己常用的配置,vagrant up,docker 启动,环境就好了,整个过程速度取决去网速。 
                虚拟机共享 window 目录,docker 挂载虚拟机目录~  | 
            
     5 
                    
                    OSDI      2021-09-01 23:42:43 +08:00    dotfiles 
                 | 
            
     6 
                    
                    ysicing      2021-09-01 23:55:08 +08:00 
                    
                    虚拟机的话可以考虑 vagrant 
                容器的话可以考虑 vscode 的 devcontainer  | 
            
     7 
                    
                    hallDrawnel      2021-09-02 00:18:16 +08:00    人肉装,享受安装配置过程,感觉像在布置新家一样。 
                 | 
            
     8 
                    
                    rpman      2021-09-02 00:25:01 +08:00 via iPad 
                    
                    工作机只 vscode+ssh 用,配置跟着 vscode 走,openssh config 自己默写 
                环境按项目的来  | 
            
     9 
                    
                    TypeError      2021-09-02 01:14:34 +08:00    ide  
                包管理 git+网盘同步各种代码和配置  | 
            
     10 
                    
                    LotusChuan      2021-09-02 01:26:09 +08:00 
                    
                    dotfile 的话用 dotbot,配合 bash 脚本装好对应的工具,然后挨个 vim 进配置文件用对应的 plugin manager 装插件;命令行里面一些重要的比如 fzf 这种也直接写到 bash 脚本里面,其他的工具需要的时候临时装就行; ide 的话基本用 jetbrain 家的,它家那个 vim 插件装完就能上手开写了。 
                 | 
            
     11 
                    
                    exceldream   OP @guangzhouwuyanzu 如果是编译型语言(像 java )这个工作流怎么做,ide 是在宿主机上吗?如果在宿主机,宿主机上还需要装 jdk 等编译器 
                 | 
            
     12 
                    
                    icy37785      2021-09-02 03:47:48 +08:00 via iPhone 
                    
                    全天刚刚重装了系统,然后人肉装的各种环境,都还挺方便的。 
                 | 
            
     13 
                    
                    oaa      2021-09-02 04:08:33 +08:00 via Android 
                    
                    
                 | 
            
     14 
                    
                    xiaket      2021-09-02 07:11:49 +08:00 
                    
                    脚本, 不太相信第三方工具. 
                 | 
            
     15 
                    
                    locoz      2021-09-02 07:35:43 +08:00 
                    
                    基本靠远程桌面解决问题,但如果只能重新搞环境的话,就人肉装,毕竟脚本容易在碰到一些位置出问题时引起连锁反应、虚拟机方案存在镜像文件大和硬件情况差异的问题,人肉是最稳的选择。反正大致要装的东西的列表是有的,部分安装时状态比较固定的也有现成的命令复制,用不了半天。 
                 | 
            
     16 
                    
                    paranoiddemon      2021-09-02 07:55:20 +08:00 via Android 
                    
                    手动装其实也挺快的,换设备的频率很低 
                 | 
            
     17 
                    
                    dcoder      2021-09-02 08:00:28 +08:00    vagrant/docker/远程桌面 都试验过... 其实都挺难用的... 
                最省心的还是: Mac + Time Machine + NAS 具体操作是: 1. 直接在 Mac 上配置自己的开发环境 app store + home brew + JetBrain IDEs + 简单的 .bash_profile 等等等 2. 自己装个便宜的 NAS in home/office 比如 Synology 2 Bay 2XX 型号 然后你 Mac 不存任何 media 文件 (e.g. 照片, video) NAS 设置为永不休眠 Mac 定时 /手动 备份 Time Machine 到 NAS 3. 可以在 Mac 上随便乱折腾配置了 一旦折腾坏了, 就从 NAS Time Machine 上读档 4. 新装一台 Mac 可以从 NAS 上读个装机用的 Time Machine 存档 然后这台新 Mac 也可以拥有自己的后续存档, 相当于分叉了  | 
            
     18 
                    
                    MengiNo      2021-09-02 08:09:27 +08:00 
                    
                    每次都是抹掉再装,不留备份。全部上云,ECS 运行环境 + Git 、Docker 、iCloud 数据支持 + vscode 客户端。 从抹盘到调通撑死俩小时。 
                 | 
            
     19 
                    
                    joshua7v      2021-09-02 08:36:42 +08:00 
                    
                    早期是直接把开发机硬盘整个复制到新电脑硬盘,后来是直接在新电脑上配置 
                因为用的工具也没有非常多,并没有想象中那么消耗时间  | 
            
     20 
                    
                    yazinnnn      2021-09-02 08:43:18 +08:00 
                    
                    java,npm,python,go-lang 
                好奇什么岗位需要装这些环境...  | 
            
     21 
                    
                    yEhwG10ZJa83067x      2021-09-02 08:46:30 +08:00 
                    
                    Vagrant 吧,ide 当然装在外面,不装虚拟机里面。对编译型语言( java )可能会存在问题,请问会碰到啥问题啊? 
                 | 
            
     22 
                    
                    idragonet      2021-09-02 08:46:34 +08:00 
                    
                    我用 win10 的,带自己的固态硬盘走天下就是了,插入电脑启动系统什么都不用安装了。 
                 | 
            
     23 
                    
                    wangbenjun5      2021-09-02 08:56:19 +08:00 via Android 
                    
                    人肉装,话说重装系统或者换工作,这种情况也不多见,可能 1 年才 1 次。可以稍微整理一个文档出来,这样按部就班省点事 
                 | 
            
     24 
                    
                    anguiao      2021-09-02 08:59:08 +08:00 
                    
                    Windows 可以试试 scoop,JDK 、Node.js 这些都是一条命令就装好了。然后 JetBrains 全家桶一装,就可以干活了。 
                 | 
            
     25 
                    
                    CodeCodeStudy      2021-09-02 09:17:11 +08:00 
                    
                    人肉装,然后记笔记,记录安装步骤、软件版本、注意事项等,下一直接照着笔记安装,软件放在网盘里,这样就避免了下一次安装还要搜索安装教程和下载软件 
                 | 
            
     26 
                    
                    2kCS5c0b0ITXE5k2      2021-09-02 09:18:29 +08:00 
                    
                    docker 吧. 
                 | 
            
     27 
                    
                    balabalaguguji      2021-09-02 09:20:50 +08:00 
                    
                    @idragonet #22 USB 传输速度会不会是瓶颈,这样系统会变慢吧 
                 | 
            
     28 
                    
                    zzyphp111      2021-09-02 09:22:28 +08:00    同 git 流+ shell 流    https://github.com/Darrenzzy/pro-guide/tree/master/config-files 
                根据个人需要随时吧配置文件放到机器对应目录下  | 
            
     29 
                    
                    Tetsuchou      2021-09-02 09:22:45 +08:00 
                    
                    脚本 + Homebrew 
                 | 
            
     30 
                    
                    agagega      2021-09-02 09:45:07 +08:00 via iPhone     | 
            
     31 
                    
                    KaynWASD      2021-09-02 10:29:44 +08:00 
                    
                    主要是频率比较低,就强行人肉装了 -。- 顶多记下坑点,下次别继续踩坑就行了 
                 | 
            
     32 
                    
                    guxingke      2021-09-02 10:31:23 +08:00 
                    
                    1. 梯子,这个基本得手动装 
                2. 配置同步,Mackup 3. 软件安装,Homebrew (brew bundle dump && brew bundle install) --- 新的环境搭建大约需要 2 小时  | 
            
     33 
                    
                    debuggerx      2021-09-02 10:42:34 +08:00    常用配置和脚本集放在 GitHub 私有仓库了,新机器到手先装 Linux,然后 jetbrains toolbox 装全家桶,clone 配置仓库,然后直接 ln -s 软链接搞定……这样我任何一台设备新增了配置和脚本,到其他机器上只要去 pull 一下就可以了 
                 | 
            
     34 
                    
                    exceldream   OP @yazinnnn 举粟子哈。不过这里全栈的大佬应该也不少 
                 | 
            
     35 
                    
                    exceldream   OP @justrand 如果你 ide 装在虚拟机外面,意味你需要在虚拟外面再装个 jdk,或者其他编译环境。而且编译调试什么的,你用的并不是虚拟机内的 jdk,实际运行的时候又是虚拟机内部的 jdk,感觉有点割裂 
                 | 
            
     36 
                    
                    nmap      2021-09-02 11:05:22 +08:00 
                    
                    人肉装就行了,也就半天~1 天时间,再说也是带薪的。。。 
                 | 
            
     37 
                    
                    aodiquan      2021-09-02 11:25:16 +08:00 
                    
                    除了环境还有一堆的绿色软件,我是用移动硬盘装的,大概 300 多 G,fastcopy 同步,环境变量备份成脚本,频繁更改且重要的软件用 git 同步,基本移动硬盘拷贝加 git pull 下来半天就完成了 
                 | 
            
     38 
                    
                    siteshen      2021-09-02 12:07:07 +08:00    去一个自带电脑的公司 [狗头] 
                 | 
            
     40 
                    
                    leafShimple      2021-09-02 12:32:01 +08:00 
                    
                    我自己的笔记本,不喜欢搞环境. 
                 | 
            
     41 
                    
                    darkengine      2021-09-02 12:39:55 +08:00 
                    
                    同自带笔记本,已经两年多没碰过在新电脑上配环境了,需要使用新技术特别是后端技术的时候 docker 搞起。 
                 | 
            
     42 
                    
                    jdhao      2021-09-02 12:42:00 +08:00 via Android 
                    
                    主要用 linux,自己写了配置脚本,一键安装 
                 | 
            
     43 
                    
                    EscYezi      2021-09-02 12:42:37 +08:00 via iPhone 
                    
                    javaer 表示装好 idea 就可以拉代码干活了,构建工具、jdk 、数据库连接工具 idea 里面都有 
                 | 
            
     44 
                    
                    finab      2021-09-02 12:49:40 +08:00    使用 onedrive 或 dropbox 等同步盘 
                使用新软件时,先找到软件的配置文件目录,拷贝到同步盘。 写一个脚本,将自己使用的所有软件配置目录,从同步目录软连接到目标目录。 新设备第一件事,就是运行这个脚本,这样所有软件的目录都链接好了, 之后按需下载软件,打开直接用就可以了  | 
            
     45 
                    
                    finab      2021-09-02 12:57:18 +08:00 
                    
                    @finab 我用这个方式,同步了自己常用的软件和所有的游戏存档,包含各种经典模拟器。 
                总共 3 台 mac 和一台 windows,都能同步游玩 几台 mac 下的环境也一致,其中一台更改了,另外两台也同步更改(例如 1Password 、Alfred 等)  | 
            
     46 
                    
                    jackmod      2021-09-02 13:17:13 +08:00 
                    
                    照着前人留下的手册人肉装,公然摸鱼。 
                 | 
            
     47 
                    
                    GG668v26Fd55CP5W      2021-09-02 13:27:49 +08:00 via iPhone 
                    
                    人肉装吧,除非你是网管,有一堆电脑等着你 
                 | 
            
     48 
                    
                    40EaE5uJO3Xt1VVa      2021-09-02 13:39:27 +08:00 
                    
                    我还真是 vmware 虚拟机 
                 | 
            
     49 
                    
                    idragonet      2021-09-02 14:03:55 +08:00 
                    
                    @balabalaguguji 不是 USB,是打开电脑直接插入主板,启动系统。 
                 | 
            
     50 
                    
                    sakasaka      2021-09-02 14:15:25 +08:00 
                    
                    保持头脑清醒 
                 | 
            
     51 
                    
                    harde      2021-09-02 14:22:43 +08:00 
                    
                    人肉装,再怎么频繁,也不可能天天装环境。 
                能问出这个问题,楼主是干人力外包的?  | 
            
     53 
                    
                    jin7      2021-09-02 14:58:10 +08:00 
                    
                    scoop + 手工 
                 | 
            
     54 
                    
                    ericguo      2021-09-02 15:00:48 +08:00 
                    
                    人肉装啊,用到啥装啥,一天肯定装完了。我还是喜欢所有工具都在本机以原生应用跑的控制感,有人说不同项目用到的组件版本不一样,全部本机不现实(比如不同项目用了不同版本的 pg ),我倒是没这个问题,因为我同时是运维,所以,所有项目组件版本能够保持一致的。 
                装是小头,个人感觉比较费力的是开发机保持所有工具最新版本,不过天天读 change log 也是一种乐趣吧。。  | 
            
     55 
                    
                    arischow      2021-09-02 15:11:11 +08:00 
                    
                     
                https://xkcd.com/1205/  | 
            
     56 
                    
                    james2013      2021-09-02 15:29:24 +08:00 
                    
                    人肉装就挺好,用脚本和虚拟机还要定时更新和保存 
                 | 
            
     57 
                    
                    jabari      2021-09-02 15:29:32 +08:00 
                    
                    direnv + nix 
                 | 
            
     58 
                    
                    neptuno      2021-09-02 15:34:27 +08:00 
                    
                    人肉装吧,很多公司对电脑有要求,不允许很多操作,到最后还是人肉装 
                 | 
            
     59 
                    
                    RRRoger      2021-09-02 16:01:26 +08:00 
                    
                    人肉装 
                 | 
            
     60 
                    
                    lamesbond      2021-09-02 16:14:55 +08:00 
                    
                    不管是写脚本,做虚拟机镜像不都要花时间?有这时间不如手动装,毕竟换机频率不大,一台 macbook 用 2,3 年都算少的吧 
                 | 
            
     61 
                    
                    terranboy      2021-09-02 16:27:08 +08:00 
                    
                    vscode remote 开发 
                 | 
            
     62 
                    
                    hyy1995      2021-09-02 16:31:34 +08:00 via iPhone 
                    
                    人肉装,还能随带更新一下之前万年不更新的工具 
                 | 
            
     63 
                    
                    namelosw      2021-09-02 17:45:09 +08:00 
                    
                    brew + brew cask 基本大部分东西都能一行搞定 
                缺啥装啥,这样比较精简  | 
            
     64 
                    
                    mawerss1      2021-09-02 17:58:09 +08:00 
                    
                    最近从 mac 切换到了 win10,开发环境都装在 wsl2 里,包括 jetbrains 系列 ide,wsl2 系统可以导出导入这个应该是最方便的了,但是 win10 上除了代码还有一些软件,文档资料,感觉如果要换电脑的化只能备份整个系统再还原了 
                 | 
            
     65 
                    
                    ch2      2021-09-02 18:00:44 +08:00 
                    
                    a 和 d 相结合,其它方案都不靠谱 
                 | 
            
     67 
                    
                    sherryqueen      2021-09-02 18:21:02 +08:00 
                    
                    人肉装. 前端开发。vscode 配置同步一份 + nodejs 就可以干活了 
                 | 
            
     68 
                    
                    efaun      2021-09-02 18:37:36 +08:00 
                    
                    虚拟机+docker 
                 | 
            
     69 
                    
                    sophos      2021-09-02 18:50:27 +08:00 
                    
                    必须是 vscode+wsl2 啊 
                vscode 配置都可以同步到云端 wsl2 导出再导入就好了  | 
            
     70 
                    
                    tfdetang      2021-09-02 19:05:31 +08:00 
                    
                    难道不是 dockerfile + git 管理吗? 要开发什么项目直接起什么项目的环境,无论是本地开发还是 remote 开发都可以 
                 | 
            
     71 
                    
                    GiantHard      2021-09-02 19:07:20 +08:00 
                    
                    Linux 系统,先搭出一套自己熟悉的开发环境( DE + IDE + Shell + 各种软件),然后通过 rclone 到新的电脑。我现在使用的系统,最开始是装在一台 Acer ( Intel + NVIDIA )笔记本上的,后来又迁移到 mbp 2015 上面,现在又落在了一台锐龙 PC 上。每次迁移就是准备一块 SSD 通过 rclone 全盘备份,然后通过 USB Live CD 迁移到新机器上,接着用 mhwd 替换一下硬件驱动就成(是的,我用 Manjaro ) 
                 | 
            
     72 
                    
                    7gugu      2021-09-02 19:32:35 +08:00 via iPhone 
                    
                    人肉装,因为有很多工具是会随着自己的技能发展出现变更的,以前可能高效的软件,放到现在可能会有更好的选择。核心几大件几乎是不变的,附属软件慢慢调就好了。 
                 | 
            
     73 
                    
                    abc8678      2021-09-03 00:43:26 +08:00 via Android 
                    
                    把 Windows 装在 vhd 映像里,可以拷到别的地方继续用。或者 Windows to go 
                 | 
            
     74 
                    
                    dcoder      2021-09-03 02:41:16 +08:00 
                    
                    @Hurriance   新旧设备硬件不一致, 可能是有风险差异的. 我一般这样用的时候, 都是两台 Mac 硬件型号相同的情况下. 
                 | 
            
     75 
                    
                    exceldream   OP @emeab 大佬,docker 流怎么操作? 
                 | 
            
     76 
                    
                    exceldream   OP @EscYezi 主要是在公司有现成中间件可以连。假如在家里,可能有一堆中间件需要连 mysql,zk,mq etc.挺麻烦的 
                 | 
            
     77 
                    
                    exceldream   OP @mawerss1 jetbrains 装在 wsl2 里面都能 gui 啦? 
                 | 
            
     78 
                    
                    wangxin13g      2021-09-04 16:46:34 +08:00 
                    
                    用 php 那会是用 docker-compose up 就完事了 
                现在主要是写 java 直接用 idea 配置多 jdk  | 
            
     79 
                    
                    mawerss1      2021-09-06 12:06:15 +08:00 via iPhone 
                    
                    @exceldream 用 x410 这个 app win 上的 
                 | 
            
     80 
                    
                    exceldream   OP @exceldream win11 可以。微软出了个 wslg 项目,可以直接把 wsl 中的 gui 跑到 win 桌面上👍 
                 | 
            
     81 
                    
                    shilianmlxg      2021-09-08 11:35:53 +08:00 
                    
                    @TypeError 老哥  怎么同步配置呢,你的哪些配置是需要同步的呢 。我以为能同步的只有 zshrc 
                 | 
            
     82 
                    
                    TypeError      2021-09-08 11:58:33 +08:00 via Android 
                    
                    @shilianmlxg 还有 ide 配置、vscode 配置这些吧 
                 |