V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
laters
V2EX  ›  程序员

有没有什么思路可以实现自动配置开发环境

  •  
  •   laters · 2024-04-03 11:15:53 +08:00 · 11600 次点击
    这是一个创建于 373 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有什么思路可以实现自动配置开发环境

    例如: 自动配置 Node 环境,Flutter 环境,Android 环境

    方式不限... 需要个思路

    104 条回复    2024-04-07 14:48:36 +08:00
    1  2  
    MrGba2z
        1
    MrGba2z  
       2024-04-03 11:29:41 +08:00
    我是写了个 bash script 丢在 gcs 上
    适配常用的 macOS 和 ubuntu 系统

    每台新的机器只要运行一下然后等就行
    bash -c "$(wget -qLO - xxxxx)"
    laters
        2
    laters  
    OP
       2024-04-03 11:32:28 +08:00
    @MrGba2z 那如果是 windows 呢,安装包这种怎么处理, 方便分享一些代码吗, 学习下思路
    LLaMA2
        3
    LLaMA2  
       2024-04-03 11:33:23 +08:00   ❤️ 1
    不要和我扯什么下载安装,配置环境变量,老夫就是 shell script 一把梭,复制粘帖,猛击回车键就是干!
    laters
        4
    laters  
    OP
       2024-04-03 11:35:56 +08:00
    @LLaMA2 需要经常用,所以想搞个自动配置的..
    LLaMA2
        5
    LLaMA2  
       2024-04-03 11:50:14 +08:00
    你需要在什么环境下安装什么那些环境,请详细列出来,热心网友会给你实现,记得上烟!!
    BeautifulSoap
        6
    BeautifulSoap  
       2024-04-03 11:53:59 +08:00
    windows 用 wsl2+wslg ,创建好环境后把 vhdx 复制出来就能到处用了
    sdwgyzyxy
        7
    sdwgyzyxy  
       2024-04-03 11:55:24 +08:00
    用 docker 把基础镜像都构建好呢,到时候 volume 代码进去,直接启动
    hingle
        8
    hingle  
       2024-04-03 11:57:15 +08:00
    nix
    DTCPSS
        9
    DTCPSS  
       2024-04-03 12:00:04 +08:00
    PowerShell + WinGet
    WinGet Configure (我没用过)
    Docker + Dev Container + VSCode
    NessajCN
        11
    NessajCN  
       2024-04-03 12:18:07 +08:00
    @laters Win 的处理方法
    1. 装 linux 虚拟机
    2. 格了 Windows 换 Linux
    rick13
        12
    rick13  
       2024-04-03 12:18:56 +08:00
    nix,全环境直接生成
    twing37
        13
    twing37  
       2024-04-03 12:21:24 +08:00
    scoop install
    laters
        14
    laters  
    OP
       2024-04-03 12:24:53 +08:00
    @LLaMA2 #5 windiws linux 环境都有
    laters
        15
    laters  
    OP
       2024-04-03 12:25:00 +08:00
    windiws linux 环境都需要
    sankooc
        16
    sankooc  
       2024-04-03 12:25:30 +08:00
    dev container
    ShadowPower
        17
    ShadowPower  
       2024-04-03 12:31:57 +08:00
    @laters Windows 同理,winget+chocolatey 装软件,其他逻辑用 powershell 写

    首次安装系统之后需要:
    1. 打开开发者选项的 PowerShell 执行权限
    2. 装 Chocolatey ,就像 macOS 装 homebrew 一样
    ShadowPower
        18
    ShadowPower  
       2024-04-03 12:33:20 +08:00
    @laters 还有另一种情况是用 MSYS2 ,有些环境在这里面更方便,例如 Qt 开发环境
    yituanmaoxian
        19
    yituanmaoxian  
       2024-04-03 12:35:24 +08:00
    windows 可以考虑用 winget scoop 之类的 搞个 powershell 脚本
    auh
        20
    auh  
       2024-04-03 12:36:34 +08:00
    用移动硬盘吧
    daimiaopeng
        21
    daimiaopeng  
       2024-04-03 12:37:30 +08:00
    hyper 虚拟机
    bigtear
        22
    bigtear  
       2024-04-03 12:49:52 +08:00   ❤️ 1
    bigtear
        23
    bigtear  
       2024-04-03 12:51:05 +08:00   ❤️ 1
    win 可以用 vfox
    其它系统可以用 nix
    不过要是想一键搭建 docker 是最方便的
    necodba
        24
    necodba  
       2024-04-03 12:59:03 +08:00
    系统装完了之后,配置完开发环境,做个镜像?然后直接用 PE
    laters
        25
    laters  
    OP
       2024-04-03 13:00:35 +08:00
    @necodba 这样应该不行,有些不是新环境
    necodba
        26
    necodba  
       2024-04-03 13:15:13 +08:00
    @laters 除了 Android 环境之外,另外两个直接获取下载页面链接,打包到 powershell ,但是这里有个问题,有些环境用最新的,你是不是要考虑以下向下兼容的问题
    idontnowhat2say
        27
    idontnowhat2say  
       2024-04-03 13:17:11 +08:00
    vagrant
    zsh2517
        28
    zsh2517  
       2024-04-03 13:24:30 +08:00
    感觉无非两种思路

    1. 提前把配置环境的过程记录下来,每次需要新环境的时候运行脚本。例如 CI/CD 、写 shell 等
    2. 直接打包可用的环境,定期更新。如构建 docker 镜像/VM 模板,需要用的时候项目挂载进去直接用

    ---

    具体来说 ,如果是个人设备(多项目、多环境),推荐 1 ,一键安装常用的东西如各类开发环境、shell 、dot File 等。如果是每个项目一个新环境,2 的话配置完后一般可以做到一键启动
    ladeo
        29
    ladeo  
       2024-04-03 13:52:01 +08:00
    ansible+容器
    clue
        30
    clue  
       2024-04-03 14:00:42 +08:00
    web 的话
    docker + vscode remote
    lilei2023
        31
    lilei2023  
       2024-04-03 14:11:43 +08:00
    @LLaMA2 哈哈,你真是莽夫啊,虽然我也是!
    reeco
        32
    reeco  
       2024-04-03 14:22:42 +08:00
    nixos
    inhzus
        33
    inhzus  
       2024-04-03 14:26:46 +08:00
    你是否在找 mise https://github.com/jdx/mise 及 direnv https://github.com/direnv/direnv
    上述两者可以做到设置 文件夹级别 的开发环境及环境变量
    yifeia
        34
    yifeia  
       2024-04-03 14:44:32 +08:00
    之前组里有 C++,go 等,都有对应的 docker 环境,直接拉到自己的开发机上用就行了
    kirara2024
        35
    kirara2024  
       2024-04-03 14:46:02 +08:00
    devcontainer
    thewangcj
        36
    thewangcj  
       2024-04-03 14:47:05 +08:00
    windows 下 scoop 可以导出安装过的软件列表
    hankli
        37
    hankli  
       2024-04-03 14:55:38 +08:00
    windows 环境的话,除了 docker, 你可以试一下 vfox 哦~

    repo: https://github.com/version-fox/vfox
    docs: https://vfox.lhan.me/

    vfox 会在你进入目录时,根据全局或项目中的.tool-versions 文件进行环境的切换.
    lizy0329
        38
    lizy0329  
       2024-04-03 15:15:06 +08:00
    @hankli 其实就是个 nvm+ 对吗?
    mmdsun
        39
    mmdsun  
       2024-04-03 15:19:18 +08:00
    WSL 2 + ubuntu
    6F321i77Df1W0Zka
        40
    6F321i77Df1W0Zka  
       2024-04-03 15:21:22 +08:00
    vagrant 不就是干这个的吗
    hankli
        41
    hankli  
       2024-04-03 15:28:34 +08:00
    @lizy0329 不太准确, 跟#33 楼说的差不多 ,windows 下的 mise , vfox 主要是针对 asdf 缺点开发的 cli 工具.
    asdf + direnv 的组合可以这么理解吧.
    DokiDokiSophon
        42
    DokiDokiSophon  
       2024-04-03 15:28:34 +08:00
    scoop
    hafuhafu
        43
    hafuhafu  
       2024-04-03 15:33:47 +08:00
    scoop export
    ByteCat
        44
    ByteCat  
       2024-04-03 15:39:57 +08:00
    把系统做成 VHDX ,直接引导就好了,我用的 Ventoy ,很方便
    c2const
        45
    c2const  
       2024-04-03 16:00:14 +08:00
    硬件性能够好,硬盘空间也不紧张,win 开发环境我一般是 VM 虚拟机,直接在里面开发 :)
    coyove
        46
    coyove  
       2024-04-03 16:06:52 +08:00
    用开发机,ssh+vim ,配完了八百年不用改一次
    laters
        47
    laters  
    OP
       2024-04-03 16:08:15 +08:00
    @zsh2517 有好用的工具或者脚本可以借鉴使用吗
    laters
        48
    laters  
    OP
       2024-04-03 16:08:30 +08:00
    @coyove 是给不同的电脑和不同的环境配
    laters
        49
    laters  
    OP
       2024-04-03 16:08:47 +08:00
    @auh 想实现自动化一点的,类似于一键安装那种
    laters
        50
    laters  
    OP
       2024-04-03 16:09:38 +08:00
    @ByteCat 是给不同的电脑和不同的环境配,类似于脚本一键安装那种
    laters
        51
    laters  
    OP
       2024-04-03 16:09:49 +08:00
    @c2const 是给不同的电脑和不同的环境配,类似于脚本一键安装那种
    laters
        52
    laters  
    OP
       2024-04-03 16:10:04 +08:00
    主要场景是给不同的电脑和不同的环境进行配置,类似于脚本一键安装那种
    noahlias
        53
    noahlias  
       2024-04-03 16:30:58 +08:00
    devcontainer 是最方便的咯 按照你的项目实际需求来
    shelken
        54
    shelken  
       2024-04-03 16:55:17 +08:00 via iPhone
    shelken
        55
    shelken  
       2024-04-03 16:57:51 +08:00 via iPhone
    @shelken 前提是先得学习一下 nix ,最好还有有一个畅通无限量的网络,加上宽裕的硬盘容量
    imzcc
        56
    imzcc  
       2024-04-03 17:10:03 +08:00   ❤️ 1
    有一个新出的工具,vfox 跨平台的兼容 linux windows ,刚切过来,感觉还不错
    https://vfox.lhan.me/
    darksword21
        57
    darksword21  
       2024-04-03 17:30:35 +08:00   ❤️ 1
    nix nixos flake direnv+nix direnv
    rockxsj
        58
    rockxsj  
       2024-04-03 17:36:58 +08:00
    @laters #2 那就写成 powershell 脚本,windows 、linux 、mac 都能用
    happyxhw101
        59
    happyxhw101  
       2024-04-03 18:25:58 +08:00
    sudo pacman -S xxxx
    iorilu
        60
    iorilu  
       2024-04-03 19:55:20 +08:00
    搞个 dev container 装好后备份, 下次需要可以重新弄一个
    THESDZ
        61
    THESDZ  
       2024-04-03 22:39:52 +08:00
    laters
        62
    laters  
    OP
       2024-04-03 23:02:24 +08:00
    @DTCPSS WinGet 有可视化工具吗
    laters
        63
    laters  
    OP
       2024-04-03 23:03:29 +08:00
    @xwwsxp 感觉像虚拟机
    laters
        64
    laters  
    OP
       2024-04-03 23:04:07 +08:00
    @rick13 有具体官网地址吗?
    laters
        65
    laters  
    OP
       2024-04-03 23:21:10 +08:00
    @sankooc 这个好像虚拟机
    laters
        66
    laters  
    OP
       2024-04-03 23:25:12 +08:00
    @bigtear #22 好像版本管理,但不是自动话脚本
    laters
        67
    laters  
    OP
       2024-04-03 23:29:01 +08:00
    @reeco windows 用不了吧
    laters
        68
    laters  
    OP
       2024-04-03 23:29:24 +08:00
    @ladeo 没看懂是干吗的
    laters
        69
    laters  
    OP
       2024-04-03 23:32:44 +08:00
    @imzcc 这个好像是版本管理,不能自动安装一些开发工具
    laters
        70
    laters  
    OP
       2024-04-03 23:34:56 +08:00
    @THESDZ 这个好像是版本管理,不能自动安装一些开发工具
    laters
        71
    laters  
    OP
       2024-04-03 23:35:44 +08:00
    @iorilu 这个可以给实体机用吗? 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 跟自己手动装效果一样吗
    laters
        72
    laters  
    OP
       2024-04-03 23:36:01 +08:00
    @noahlias 这个可以给实体机用吗? 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 跟自己手动装效果一样吗
    laters
        73
    laters  
    OP
       2024-04-03 23:37:52 +08:00
    @zsh2517 第一种, 如果是安装包怎么实现下载和安装到指定位置,包括安装过程中的选项, 第二种 ,可以给实体机用吗? 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 跟自己手动装效果一样吗
    laters
        74
    laters  
    OP
       2024-04-03 23:38:20 +08:00
    @bigtear #23 可以给实体机用吗? 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 跟自己手动装效果一样吗
    laters
        75
    laters  
    OP
       2024-04-03 23:38:31 +08:00
    @sdwgyzyxy 可以给实体机用吗? 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 跟自己手动装效果一样吗
    Features
        76
    Features  
       2024-04-04 00:46:19 +08:00
    做个 windows 镜像,拿到机器重装一下系统
    winRain
        77
    winRain  
       2024-04-04 01:10:40 +08:00
    如果公司不大的话,就直接搞一下 powershell 脚本。公司大一些的话,就可以直接买那种自动化装软件的自动工具,一般都是直接给运维部门搞了,这个东西很成熟,搜一下应该能搜出来
    dayeye2006199
        78
    dayeye2006199  
       2024-04-04 04:07:43 +08:00 via Android
    devcontainer, vagrant
    panda1001
        79
    panda1001  
       2024-04-04 06:25:04 +08:00 via Android
    virtualbox + vagrant ,脚本参考 github action 各种 script ,虚拟机镜像可以迁移,也可以在实体机运行
    DTCPSS
        80
    DTCPSS  
       2024-04-04 08:19:50 +08:00
    laters
        81
    laters  
    OP
       2024-04-04 08:27:47 +08:00
    @ShadowPower #17 怎么实现下载和安装到指定位置,包括安装过程中的选项
    laters
        82
    laters  
    OP
       2024-04-04 08:28:56 +08:00
    @dayeye2006199 devcontainer 看起来像虚拟机 ,例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 ,跟自己手动装效果一样吗 怎么实现下载和安装到指定位置,包括安装过程中的选项
    laters
        83
    laters  
    OP
       2024-04-04 08:29:56 +08:00
    @panda1001 例如来了一个员工, 我可以在它电脑上装一套安卓 node 的开发环境 ,跟自己手动装效果一样吗 怎么实现下载和安装到指定位置,包括安装过程中的选项
    bsg1992
        84
    bsg1992  
       2024-04-04 08:50:47 +08:00
    搞一个桌面端软件 类似软件管家那种。需要什么环境直接在里面选就好了。
    无法就是做点脚本处理,安装一下环境
    smilenceX
        85
    smilenceX  
       2024-04-04 08:54:49 +08:00
    用自己的擅长的技术写个程序,应该可以很轻松搞定这件事。
    zbowen66
        86
    zbowen66  
       2024-04-04 10:39:54 +08:00
    我每次都是 TimeMachine 或点对点迁移
    zbowen66
        87
    zbowen66  
       2024-04-04 10:55:45 +08:00
    @zbowen66 #86 我现在的系统还是 6 年前黑苹果上 MacOS 10.13 的备份,现在白苹果换了一个又一个,系统升了一轮又一轮,系统环境还是最初在黑苹果上配置的。之前用 Windows 的时候动不动就重装系统,对比之下,MacOS 真省心,没别的意思,推荐开发者们早日上 Mac
    8E9aYW8oj31rnbOK
        88
    8E9aYW8oj31rnbOK  
       2024-04-04 11:13:52 +08:00
    虚拟机,

    一次操作,到处运行
    laters
        89
    laters  
    OP
       2024-04-04 11:21:35 +08:00
    @Leonkennedy2 有些场景不行吧,例如给客户环境配置开发环境
    loading
        90
    loading  
       2024-04-04 11:24:34 +08:00
    docker+vscode
    laters
        91
    laters  
    OP
       2024-04-04 11:31:35 +08:00
    @loading 请教下如何实现在宿主机可以直接访问 docker 部署的东西, 我想直接给别人的物理机直接用
    menghuan1918
        92
    menghuan1918  
       2024-04-04 12:04:24 +08:00
    微软官方的 winget 应该就可以做到部分,比如安装 nvm:

    winget install --id=CoreyButler.NVMforWindows -e

    有个 winstall 的网站可以查找包然后生成安装指令
    YGHMXFAL
        93
    YGHMXFAL  
       2024-04-04 12:54:17 +08:00 via Android
    你先在虚拟机(或者物理机也行)里全新安装系统,配置好一切环境,打快照①

    然后执行“WINDOWS 通用化”,打快照②

    (如果执行通用化失败,就必须还原到快照①,然后重新开始通用化,直到通用化成功)

    然后使用 DISM 来备份虚拟机里的 systemroot,也就是俗称得“C 盘”,这个备份镜像就是你需要的成品

    来了一个新员工,给 TA 的电脑还原备份镜像,使用 BCDBOOT 重建 ESP

    然后开机,走 OOBE 流程,再更新,再打驱动,一切就绪,统一地开发环境就好了

    当然其中小坑不少,你要是员工规模不是特别大,搞这一套可能大材小用了,你自己看着办
    laters
        94
    laters  
    OP
       2024-04-04 13:55:32 +08:00
    @YGHMXFAL 好的,感谢,但如果有些是旧电脑, 需要在原本旧电脑上安装一些软件和环境,这种方式是不是就不行了
    CrackTC
        95
    CrackTC  
       2024-04-04 17:58:49 +08:00 via Android
    nixos+1
    E790A8
        96
    E790A8  
       2024-04-04 18:00:43 +08:00 via Android
    @daimiaopeng 逮到😉
    YGHMXFAL
        97
    YGHMXFAL  
       2024-04-04 21:06:53 +08:00 via Android
    @laters #94 嗯,如果是在已有环境上修修补补,那确实这一套方案就不合适

    这其实是一套“裸机部署/灾难恢复”方案,会完全覆盖目标电脑的系统+软件+数据
    james122333
        98
    james122333  
       2024-04-04 22:02:49 +08:00 via Android
    想要白嫖思路? 门都没有~~~
    datocp
        99
    datocp  
       2024-04-05 06:15:37 +08:00 via Android
    这种 2014 年前在培训机房用得最多的就是 autoit ,
    像 ncre 考试的软件通过 psexec 进行局域网远程登录批量安装
    像 photoshop/autocad 都是可以根据窗口关键字激活当前窗口,并点击下一步,包括序列号的自动提取,自动录入,自动生成,再次录入到软件,整个过程直到软件激活都是可以完成的。
    laters
        100
    laters  
    OP
       2024-04-05 09:07:30 +08:00
    @CrackTC nixos 没办法自动化安装软件吧
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:51 · PVG 06:51 · LAX 15:51 · JFK 18:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.