故事是这样,不管老哥是换了新的工作环境,还是换了一台新的电脑。做的第一件事就是装一堆环境(不管是 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 wasd6267016 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 配置这些吧 |