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

请问 Mac 命令行终端有没有办法创建虚拟环境?

  •  
  •   nnegier · 2024-03-11 19:19:44 +08:00 · 2754 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如创建一个虚拟环境,在这个环境中安装特定的 radis 、mysql ,这个环境启动的时候,这些生效,关闭的时候,就不生效。

    为什么不直接开个 linux 或 windows 的虚拟机,而要命令行?因为虚拟机感觉太重了,若实在没办法,就只好考虑那样做了。为什么想到这个,因为之前学 AI 相关的知识的时候,发现 python 有 mkvirtualenv ,然后 workOn 。

    27 条回复    2024-03-13 11:07:39 +08:00
    mooyo
        1
    mooyo  
       2024-03-11 19:22:05 +08:00
    虚拟机重的话,为啥不用 docker
    L1shen
        2
    L1shen  
       2024-03-11 19:32:50 +08:00
    直接用 dev-container 呗
    ecnelises
        3
    ecnelises  
       2024-03-11 19:34:42 +08:00
    Unix 有一个通用的工具叫 chroot ,顾名思义就是在某个环境中把某个目录映射为 root ,理论上可以实现虚拟环境的功能。但 macOS 上这么折腾的毕竟少,要实现你的目的可能坑多。
    yangg
        4
    yangg  
       2024-03-11 21:46:27 +08:00 via iPhone
    orbstack+docker run --rm
    oxygenbytes
        5
    oxygenbytes  
       2024-03-11 21:55:49 +08:00
    orbstack
    cosette
        6
    cosette  
       2024-03-11 22:51:34 +08:00
    推荐一个工具 [Mise]( https://github.com/jdx/mise) ,可以部分实现你要的功能。
    zed1018
        7
    zed1018  
       2024-03-11 23:08:12 +08:00
    楼上说 docker orbstack 不还是虚拟机么。
    ysc3839
        8
    ysc3839  
       2024-03-11 23:33:45 +08:00 via Android
    @ecnelises macOS 大概非常麻烦,即使有 chroot ,估计也比较难构造出一个能用的 rootfs 。而且很多程序会依赖 POSIX API 之外的上层 macOS API ,这些 API 在 chroot 环境下不一定能正常使用。
    AoEiuV020JP
        9
    AoEiuV020JP  
       2024-03-12 01:53:38 +08:00 via Android
    我在用 utm 虚拟机可以有个纯命令行的显示设备代替虚拟显示器,
    效果就是用着像个普通命令行终端一样,复制粘贴什么也是直接 OK 的,
    加上 utm 可以直接下载安装好的 arch ubuntu 之类现成的系统,
    虽然还是虚拟机,但比普通虚拟机方案要方便很多,
    GeruzoniAnsasu
        10
    GeruzoniAnsasu  
       2024-03-12 04:15:34 +08:00
    > 在这个环境中安装特定的 radis 、mysql ,这个环境启动的时候,这些生效,关闭的时候,就不生效。


    这除了 docker 哪还有其它方案? compose 还不够用的吗




    另外我依稀记得之前用 orbstack 出过什么问题最后还是用回 docker desktop 了,反正也不常驻,不用了直接 compose down 退出整个 desktop 就行,命令行环境下也几乎感觉不到是个虚拟机
    AssassinLOVE
        11
    AssassinLOVE  
       2024-03-12 07:09:10 +08:00
    没看明白 后台开个 linux 虚拟机也可以命令行启停啊 干净又卫生
    layxy
        12
    layxy  
       2024-03-12 08:27:28 +08:00
    multipass
    niubee1
        13
    niubee1  
       2024-03-12 08:33:05 +08:00
    以前用过 vargrant ,和你的需求很贴合。现在用 docker ,podman 之类的
    Jirajine
        14
    Jirajine  
       2024-03-12 08:43:03 +08:00
    @GeruzoniAnsasu #10 nix 是支持 macos 的,nix-shell (无论是否使用 flake )都完美符合这种需求,并且无需 VM 。
    dode
        15
    dode  
       2024-03-12 08:57:43 +08:00
    加设备
    lostberryzz
        16
    lostberryzz  
       2024-03-12 09:03:40 +08:00
    首先,虚拟机并不重
    paynezhuang
        17
    paynezhuang  
       2024-03-12 09:09:53 +08:00
    orbstack
    tedzhou1221
        18
    tedzhou1221  
       2024-03-12 09:18:00 +08:00
    orbstack +10086 orbstack 使用 docker , 你喜欢的话在 orbstack 再开个虚拟机都行
    vczyh
        19
    vczyh  
       2024-03-12 09:51:01 +08:00
    zhengwenk
        20
    zhengwenk  
       2024-03-12 11:24:05 +08:00
    docker 这么轻量的方案还有人嫌弃么
    jianyang
        21
    jianyang  
       2024-03-12 14:06:01 +08:00
    这说的不就是 docker 吗
    ZedRover
        22
    ZedRover  
       2024-03-12 15:32:29 +08:00
    nix
    ZedRover
        23
    ZedRover  
       2024-03-12 15:33:15 +08:00
    @ZedRover https://grass.show/post/create-environment-with-nix-and-direnv/
    gitreny
        25
    gitreny  
       2024-03-12 16:40:08 +08:00
    docker
    liuhailiang
        26
    liuhailiang  
       2024-03-13 11:06:12 +08:00
    nebulabox
        27
    nebulabox  
       2024-03-13 11:07:39 +08:00
    orbstack
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:54 · PVG 03:54 · LAX 12:54 · JFK 15:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.