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

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

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

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

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

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

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

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

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

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

    ---

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

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

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

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

    winget install --id=CoreyButler.NVMforWindows -e

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

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

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

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

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

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

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

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