教程: 在 macOS 中移除 command line tools 并继续使用 git - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bddxg
V2EX    macOS

教程: 在 macOS 中移除 command line tools 并继续使用 git

  •  
  •   bddxg 2023-09-24 13:06:13 +08:00 4883 次点击
    这是一个创建于 753 天前的主题,其中的信息可能已经有所发展或是发生改变。

    command line tools 苦天下程序猿久已, 现在这破玩意越来越大,从原来的 700MB 已经成长到了3GB

    1695529671494.png

    我只是想用 git 而已, command line tools 居然为了不到 200M 的工具 捆绑 3GB 用不到的垃圾,

    申明一下: 我不写 C++ 不写 xcode 只是写个前端 用 git 管理仓库 对于我用不到的那些东西, command line tools 不应该浪费我的硬盘!

    下面介绍一下如何在移除 command line tools 的同时继续使用 git(目前不太完美)

    第一步: 安装 git

    这一步骤非常简单, 电脑上已经安装了 command line tools 和 git 的人可以省略此步骤,

    如果电脑上没有安装 git 和 command line tools, 请按照传统方法, 安装好 command line tools 和 git

    链接: https://git-scm.com/download/mac

    第二步: 安装 brew 并安装 git

    先不要奇怪第一步已经安装了 git 为什么又要安装一遍, 按照步骤走就行了,问就是为了避免 brew 安装的时候需要 git 而你又没有,陷入死循环

    安装 brew,根据脚本提示选择合适的源,一步步按照脚步提示操作就行

    /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 

    安装 git

    brew install git 

    第三步: 移除 command line tools

    核心步骤来了, 移除 command line tools 需要关闭 MacOS 的 SIP,

    以 mbp14 2021 为例关闭 sip: 关机后,长按开机键不放,出现选项,进去输入登录密码,左上角打开终端,输入 csrutil disable,输入γ,输入密码,等待一会,重启.

    非 apple 芯片请自行百度, 都是烂大街的教程了

    关闭 sip 后,重启进入系统,打开终端 执行命令

    sudo rm -rf /Library/Developer/CommandLineTools/ 

    还有一部分文件看自己想不想删除,我就不复制粘贴了,看这个Command Line Tools for Xcode 怎么彻底卸载? - richking 的回答 - 知乎

    好了, 一切操作完成后, 你会发现占据你 3GB 硬盘空间的 command line tools 已经不见了 ,而且 git 一如既往的好使

    (可选)开启 sip:关机后,长按开机键不放,出现选项,进去输入登录密码,左上角打开终端,输入 csrutil enable,输入γ,输入密码,等待一会,重启

    最后

    这并不是一个完美的脱离 command line tools 的方法, 就目前 2023 年 09 月 24 日 而言 打开 vscode 仍然会弹窗

    1695531777772.png

    选择取消就行, 不需要安装, 不完美的地方在于 每次打开 vscode 都会弹窗,这个小尾巴只能拜托万能的 V 友再研究研究 补充补充了

    第 1 条附言    2023-09-25 11:19:22 +08:00

    搞定了!

    vscode 弹窗下载 git 的解决方案:

    在设置中配置 git 的路径为: /opt/homebrew/bin/git 即可

    还有部分 V 友说 不如一开始买大硬盘, 我觉得买大硬盘和任由捆绑软件占用硬盘是两码事

    我的电脑硬盘是 521GB 的 目前占用不到 50GB

    我喜欢钱学森的那句话

    手中没剑, 和有剑不用, 不是一回事

    我喜欢我的硬盘我做主, 仅此而已

    44 条回复    2023-09-26 15:44:44 +08:00
    flyqie
        1
    flyqie  
       2023-09-24 13:20:40 +08:00   2
    command line tools 里好像不只有 git 会用到吧。。
    shinsekai
        2
    shinsekai  
       2023-09-24 13:33:02 +08:00   2
    /usr/bin/python3 是不是也在 command line tools 里
    kawaiidora
        3
    kawaiidora  
       2023-09-24 14:25:06 +08:00 via Android
    问一下 macports 会需要 command line tools 吗?
    hefish
        4
    hefish  
       2023-09-24 14:32:10 +08:00
    买大点的硬盘嘛。。。或者拿去手机市场,焊两个 1T 的硬盘上去。
    nicaiwss
        5
    nicaiwss  
       2023-09-24 14:51:14 +08:00 via iPhone
    clt 没用,homebrew 安装也依赖,但其实不编译只装 bottle 用不到,我特意把 homebrew 的安装脚本改了把这个依赖检查去掉。其他没有任何影响,xcode 本身完全够用。安装好 xcode 后不安装 clt 在命令行里也能正常调用编译器连接器,完全不明白这个工具做什么用的。
    kawaiidora
        6
    kawaiidora  
       2023-09-24 14:51:16 +08:00 via Android
    @kawaiidora 看了下还是要的
    geminikingfall
        7
    geminikingfall  
       2023-09-24 14:53:38 +08:00
    这玩意体积真大。。。
    shimanooo
        8
    shimanooo  
       2023-09-24 14:54:55 +08:00   1
    正好有个黑果家庭服务器也不需要完整的 CLT.
    试了下安装 CLT, 然后手动删掉一些东西. (我用 brew install ncdu 看哪些大.)

    LLDB.framework
    MacOSX*.sdk // 这玩意有三个不同版本的, 全删掉的话 python3 会报错
    swift*
    clang/llvm*
    234ygg
        9
    234ygg  
       2023-09-24 14:58:27 +08:00
    3GB 而已,怎么就苦天下了。。
    yfwo
        10
    yfwo  
       2023-09-24 15:14:13 +08:00   5
    @234ygg 如果是某个国产电脑/系统,+256GB 需要 1500 元,安装 git 要 3GB 。在这个论坛估计能被喷好几页吧。

    实际上,低配版 256GB ,实际能用不影响系统速度的可用空间就 150 多 GB ,3GB 多就相当于 1/50 了。
    RexSkz
        11
    RexSkz  
       2023-09-24 15:14:19 +08:00
    按照 vscode 的逻辑,它会先获取 which git ,如果是 /usr/bin/git 说明是 clt 自带的,此时就会强制检查 xcode-select -p:

    https://github.com/microsoft/vscode/blob/main/extensions/git/src/git.ts#L80

    你可以看看 which git 的输出,应该就是 /usr/bin/git 了。
    Jirajine
        12
    Jirajine  
       2023-09-24 15:35:24 +08:00 via Android
    @yfwo #10 混淆概念,你在 Windows 装 vs 那一套开发环境 sdk 看看要多少空间,3gb 和 Linux 下装个 base-devel 也差不多少,就是标准的开发工具链的占用。
    工具链里自带 git 和 git 依赖工具链是两回事。
    just1
        13
    just1  
       2023-09-24 15:42:39 +08:00
    @Jirajine #12 为什么要装 vs 开发环境?大部分语言应该用不到
    aerAzLNE
        14
    aerAzLNE  
       2023-09-24 15:46:04 +08:00   1
    @Jirajine 谁家 win 有果子的存储金贵……
    wonderfulcxm
        15
    wonderfulcxm  
       2023-09-24 15:46:30 +08:00 via iPhone
    感觉分享,这个 command line tools 确实离谱
    bddxg
        16
    bddxg  
    OP
       2023-09-24 17:20:04 +08:00
    更新一下修复弹窗小尾巴

    使用软链接将/opt/homebrew/bin/git 链接到/usr/bin/git

    命令: ln -s /opt/homebrew/bin/git /usr/bin/git

    现在打开 vscode 已经不弹窗了, git 各个功能都正常使用(未全面测试)

    现在,我的 MacOS 终于脱离了 command line tools 的束缚了 拯救了 3GB 硬盘空间!!!

    感谢 @RexSkz 感谢自己!
    bddxg
        17
    bddxg  
    OP
       2023-09-24 17:25:18 +08:00
    好像还是不行[笑哭] ..............ε=(ο`*)))唉
    dxk611
        18
    dxk611  
       2023-09-24 17:32:10 +08:00
    有点折腾自己,找罪受。很多软件都需要 Command Line Tool 支持,避不开。何况只是 3GB ,没必要这样省空间
    bddxg
        19
    bddxg  
    OP
       2023-09-24 17:38:55 +08:00
    搞定了!
    vscode 弹窗下载 git 的解决方案:
    在设置中配置 git 的路径为: /opt/homebrew/bin/git 即可

    https://img1.imgtp.com/2023/09/24/Dm9DcUkS.png
    easyEz
        20
    easyEz  
       2023-09-24 18:05:28 +08:00   1
    苹果爹是这样的,3GB 不算大, 就算大也可以加硬盘。
    chendy
        21
    chendy  
       2023-09-24 19:11:36 +08:00
    @234ygg 只能说丐版受害者还是不少
    xtinput
        22
    xtinput  
       2023-09-24 19:31:31 +08:00   1
    然而 brew 并不小,如果只是为了装 git 还是别装 brew 了,而且各种破解版软件可能用到签名,签名就得 command line tools
    xtinput
        23
    xtinput  
       2023-09-24 19:33:47 +08:00
    一个微信就能干掉几十上百 G ,何必为了这 3G 折腾
    xtinput
        24
    xtinput  
       2023-09-24 19:34:14 +08:00
    都做程序员了,还买 256G ?
    dingwen07
        25
    dingwen07  
       2023-09-24 19:47:56 +08:00 via iPhone
    @nicaiwss #5 brew 的 software 。repository 不是基于 git 的吗,不装 clt 没有 git 吧
    weeei
        span class="no">26
    weeei  
       2023-09-24 19:51:17 +08:00
    @kawaiidora command line tools 里面包含的是 MacOS SDK 和工具链,如果你要的工具需要从源码编译,就是必须的。比如 MacOS 14 才出来,预编译好的 ports 还没有,就需要源码编译。
    dingwen07
        27
    dingwen07  
       2023-09-24 19:52:20 +08:00 via iPhone
    顺便提一下,苹果为了兼容性,M1 上所有系统软件都是通用二进制,也就是同时有 x86 和 Arm ,浪费了不少空间
    第三方软件如果用通用二进制也是差不多的情况

    Mac 空间不够用的可以把一些软件的 x86 版本给去掉
    nicaiwss
        28
    nicaiwss  
       2023-09-24 20:01:54 +08:00 via iPhone
    @dingwen07 有的,安装和每次更新 xcode 后打开 xcode 会跳出来一个对话框安装组件,基本上就是把 xcode 里的很深目录映射到/usr/bin ,这个就包括 git 。然后再安装 homebrew 会提示没有 clt ,这时候把安装脚本下载到本地然后把里面检查 clt 的逻辑去掉就可以正常装了。
    nicaiwss
        29
    nicaiwss  
       2023-09-24 20:05:16 +08:00 via iPhone
    @weeei 这些 xcode 里面有,clt 是不安装 xcode 的情况下才有必要装的,和 xcode 功能重复,应该是因为脚本不能直接安装 xcode
    bao3
        30
    bao3  
       2023-09-24 20:13:58 +08:00
    你可以把 command line 当成是 linux 的 build-essential 。如果不 build 任何软件(包括 homebrew/macports ) 那你可以不要,否则还是要留着,要不然 make 时提示找不到就很受伤
    shimanooo
        31
    shimanooo  
       2023-09-24 20:24:42 +08:00
    @xtinput
    brew Formula 已经从 git repo 改成 json API 了. 再把 brew 本体 git repo 改成 shallow clone. 几十 MB 就够了.
    NormanGhost
        32
    NormanGhost  
       2023-09-25 00:06:55 +08:00 via Android
    前端应该会用到 node-gyp ,我没记错的话它依赖于 command line tools
    momocraft
        33
    momocraft  
       2023-09-25 01:23:32 +08:00
    brew 还要用 ruby 吧
    20015jjw
        34
    20015jjw  
       2023-09-25 01:33:53 +08:00 via iPhone
    …吃饭还纠结这 3G…
    uCVqn130hR86WDU8
        35
    uCVqn130hR86WDU8  
       2023-09-25 01:39:46 +08:00
    我之前连 git 都没用到,全在远程,但是 warp 一直跳这玩意儿,想了想装上得了,省得操心
    elementp
        36
    elementp  
       2023-09-25 02:02:37 +08:00
    只是删/Library/Developer/CommandLineTools/里的东西的话不需要关闭 SIP ,深度强迫症要删 Receipts 才需要关掉 SIP 。
    LudwigWS
        37
    LudwigWS  
       2023-09-25 08:18:42 +08:00 via iPhone
    @RexSkz 专业
    shigeyxs
        38
    shigeyxs  
       2023-09-25 09:01:11 +08:00
    @hefish 请教一下大佬。是个方法,目前 m 芯片的笔记本硬盘可以去找人扩大了不
    hefish
        39
    hefish  
       2023-09-25 09:37:25 +08:00
    @shigeyxs 应该早就可以了。 抖音里有很多。
    kawaiidora
        40
    kawaiidora  
       2023-09-25 10:06:11 +08:00
    @just1 需要 msvc abi 的语言需要,例如 rust ( doge )

    同样价格 mac 上占用 3gb ,到 pc 上装个 vs ,换成 10gb 存储还有找零(虽然能装 vs build tools ,但还是直接装 vs 然后选 c++组件简单方便,也不用担心下到 32 位版本)
    supersu
        41
    supersu  
       2023-09-25 11:09:09 +08:00 via Android
    sip 关完操作完之后最好再开一下,不然 mac 上的 kaspersky 和 avast 杀毒软件会在扫描的时候卡住~
    jakes
        42
    jakes  
       2023-09-25 12:05:25 +08:00
    不苦啊,就 3GB 的东西,吃饭的家伙还抠抠搜搜。你卸载了以后迟早也要装回去。
    sinotw
        43
    sinotw  
       2023-09-25 12:14:54 +08:00
    @dingwen07 #27 请问如何去掉 x86 呢
    swordcoming9527
        44
    swordcoming9527  
       2023-09-26 15:44:44 +08:00
    开个玩笑:为了省空间已经不用 vscode 了,内存和存储空间都金贵,我使用 neovim 。
    我的是 512g 空间,macos 没什么游戏可玩,也没有下载什么大的东西,空间富足的很,不安装 clt ,安装大的多的 xcode 。
    不过主力编辑器的确是 neovim ,debug 不方便,下载了一个免费但也占不少空间的 android studio ,里面安装 rust 插件,就可以白嫖 jetbrains 商业版 ide 才支持的 rust debug 功能,不过 rust 插件废弃了,jetbrains 新出了专门的 rust IDE ,处于免费的预览阶段,预览版到明年 9 月,继续白嫖。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1468 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:43 PVG 00:43 LAX 09:43 JFK 12:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86