homebrew 如何优雅地留在 10.13.6,不求新 feature,能否让软件包都冻结在一个能正常使用的时刻,类似于 Linux 包管理可以指定系统版本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liemehoc
V2EX    macOS

homebrew 如何优雅地留在 10.13.6,不求新 feature,能否让软件包都冻结在一个能正常使用的时刻,类似于 Linux 包管理可以指定系统版本

  •  
  •   liemehoc 2021-06-29 20:11:53 +08:00 4011 次点击
    这是一个创建于 1631 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2021-07-03 18:10:21 +08:00
    CEBBCAT
        1
    CEBBCAT  
       2021-06-29 21:40:46 +08:00 via Android
    什么意思?不升级不就行了吗?
    FurN1
        2
    FurN1  
       2021-06-29 21:55:17 +08:00   4
    两个方法:
    1 把包 pin 在某个版本
    2 自己维护 tap

    第一种办法省事但是不优雅,因为你 pin 只能保存在你安装时候的当前版本,即使安装的时候使用 @ 某个版本这种方法,也不能保证有些 formulae/casks 的过往版本 archive 了,安装不了。

    第二种办法优雅,需要你到 Homebrew 的 GitHub repo 里面找到并修改需要的 formula/cask 对应的 rb 文件的历史版本,然后传到自己的 GitHub repo 里面。使用的时候加一下自己的 tap,然后记住给自己的包起一个带后缀的名字防止名字和官方 tap 冲突。官网都有教程很简单的,repo 结构可以参考我的 tap:
    https://github.com/g6ai/homebrew-ale
    FurN1
        3
    FurN1  
       2021-06-29 22:06:12 +08:00
    需要补充一点,Homebrew 安装 binary 的时候,会安装对应于你系统版本的 bottle 。这个 bottle 对应的包版本的也是由上面我说的 rb 文件控制的,作者会保证使用当前系统兼容的最新包版本,如果不兼容就不会给这个系统版本上更新的包版本,结果是一般老版本的系统用 brew 软件也不会出问题。

    所以基于这种情况,楼主不妨说一下自己是哪个包使用出了问题,因为就算你维护自己的 tap 也是有的放矢。
    wowbaby
        4
    wowbaby  
       2021-06-30 09:07:56 +08:00
    除非你不升级,并且不装新的软件,有的软件新版本强制升级依赖,不解锁不给装。
    brew 虽然方便,但对我来讲无数次的不愉快,一大堆的依赖,稍微隔久点没更新,更新就出问题,浪费大量的时间去弄,弄一下半天没了。我宁愿包大一点,每个程序的依赖都在本程序依赖目录下,保证程序不出问题。
    比如,很多程序都依赖 openssl,brew 可以锁住 pin openssl,但是你安装软件的时候强制要你 unpin,自动升级 openssl 后, 之前软件依赖 openssl 有可能出问题,或者是版本不匹配,还有就是 brew 会强制下架一些旧版本,但是你开发环境又需要旧版本,还得 tap 其他资源。

    brew 可以禁用自动更新,这种情况你不能安装新的软件包,总的来讲给我的感觉体验不好,下次换电脑,打算都手动编译,省心。
    liemehoc
        5
    liemehoc  
    OP
       2021-06-30 09:24:41 +08:00
    @IgniteWhite 谢谢
    装 ffmpeg 的时候依赖 rust,10.13.6 不提供 bottle 了,编译又编译不过
    macos 对老版本的支持真的不太行啊,没法安心留在老版本,想念 linux
    liemehoc
        6
    liemehoc  
    OP
       2021-06-30 09:28:53 +08:00
    @wowbaby 有更好的包管理推荐吗,我也是一直被 brew 折磨
    wowbaby
        7
    wowbaby  
       2021-06-30 09:49:12 +08:00
    @liemehoc 目前没有发现更好的,用 brew 的一般都是装各种开发环境,你如果更新系统,brew 也可能会出问题,很多得重装,挺烦的。旧版 brew switch <formula> <version> 还可以切换版本,能应急,新版也砍了。
    目前只有自己手动编译软件了,虽然首次比较麻烦,但是后续不会出问题。
    我最开始没有用 brew 从没出过问题。
    ZeoKarl
        8
    ZeoKarl  
       2021-06-30 09:56:23 +08:00 via iPhone
    Homebrew 可以强制指定从源码构建
    MrKrabs
        9
    MrKrabs  
       2021-06-30 13:31:10 +08:00
    禁止 brew 自动更新,禁用 bottle
    Liampor
        10
    Liampor  
       2021-06-30 13:49:40 +08:00
    开发环境不知道,但是那个 cask 可以使用 homebrew-cask-upgrade,然后 brew cu 更新 brew cu pin 这种固定版本
    findex
        11
    findex  
       2021-06-30 23:44:40 +08:00
    (说句题外话,目测楼主黑苹果+N 卡驱动?)
    liemehoc
        12
    liemehoc  
    OP
       2021-07-01 11:27:58 +08:00
    @findex 2012 mid mac pro
    正在犹豫要不要转 linux
    findex
        13
    findex  
       2021-07-01 22:04:06 +08:00
    @liemehoc 哦。其实可以转 Linux 。很好用。现在苹果已经放弃支持 10.13 系统了。或者可以通过奇怪方式( opencore 仿冒)装上最新系统也许会卡。我有台黑果+1060 显卡无奈只能停留 10.13 ,只用核心显卡倒是能支持 macos 11/12 。通过目前苹果的路子可以看出,未来苹果是贴心走 ARM 了,用 Linux 很好不会被绑架。(再说句题外话:我一般是 Mac+虚拟机 Linux 做开发的,MacOS 用于看报表什么的)
    typetraits
        14
    typetraits  
       2021-07-03 09:50:10 +08:00   1
    @liemehoc #5 homebrew 里的 ffmpeg 依赖太多了,建议从 https://evermeet.cx/ffmpeg/ 下载编译好的 binary
    YsHaNg
        15
    YsHaNg  
       2021-07-03 18:10:21 +08:00 via iPhone
    @liemehoc 你这种情况试试 macports homebrew 更像是 linux 滚动版
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5138 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 09:12 PVG 17:12 LAX 01:12 JFK 04:12
    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