目前主要在 macOS 下工作学习,brew 用着很爽,管理各种软件装起来也方便
之后要迁移到 linux ,看了下最近 brew 的 linux core 也移动到主分支了一起维护了
感觉似乎可以用了?

homebrew 能比 aur 还好用吗...

在 Linux 上用过很短一段时间 brew ,后来回到了 dnf 。
Linux 有 dnf 或者 apt ,想不出用 brew 的理由。

brew 的好处。是可以 cask ,也可以 history 。 二进制包,还可实时编译+参数。没事还可以自己 edit 下 Formula ,实现自定义安装。大部分运维软件可以。用 dump 列表+appstore 列表,谢谢脚本,比较简单就可以在新的电脑实现自动化配置。

apt 我觉得挺难的。使用不同的 history ,自定义软件就很难整。

大部分运维软件可以 还有 services 可以建议控制

可以用。只用来装 portable CLI 程序,以防止拉一大堆依赖下来。

你的这个需求比较适合用 gentoo……
archlinux 的 aur 也符合你的需求,只不过作为主力的 pacman 在“再自定义安装”这方面好像有点弱,不过我不太肯定。

Homebrew on Linux 的特点,文档里已经列的很清楚了:

  1. 统一 macOS 和 Linux (含 WSL) 依赖管理,对已经熟悉用 brew 的 macOS 用户管理 Linux 依赖友好。不过 portable package management 这方面还有其他选择,例如 Nix 或者 pkgsrc 。
  2. 装包不需要 root 权限,以及包可以放在家目录。不过这个也有其他解决方案,Gentoo Prefix 、Nix 之类都行。
  3. 获得最新版的软件。可以说是 Homebrew 最大的优点 /缺点,因为 Homebrew 只需要在乎最近三个版本的 macOS 和通用 Linux 二进制,包更新速度通常比 Arch 都要快。但缺点是没有针对发行版的优化和补丁。

    history 是指什么? Binary? "appstore 列表" 来自 mas-cli ,不是 Homebrew 自有功能。

“自定义安装”和“运维软件可以 还有 services 可以建议控制”就不吐槽了,Homebrew 越俎代庖干得多烂都有数。

这有官方的吗?

醒醒吧,Linux 上不没有 cask

注意不需要 root 的话要非默认路径,很多 packages 需要重新编译

我之前服务器上面没有权限 root 安装的时候用的是 anaconda 安装一些常用软件,再之前 brew 也短暂试过倒没什么特别的印象

history 是指 yum history 这样的功能吗?印象中就只有 rpm 系的包管理有类似功能?别的似乎都没有。

history 有什么用吗?
很多要重新打包,太麻烦了。

+1

history 指定旧版本
我说的是在 mac 上的 brew ,有点文不对题了 哈哈哈。

Linux 最大的槽点就是在这了,没有一个类似 macos brew 的东西,能完整覆盖所有应用的安装配置。

Linux 也在用,大多数是预发布、生产环境在用 Docker 。

开发环境的话,还是 Mac 来的舒服。

我的很多时候只希望有一个渠道,可以方便快捷统一的配置。

Linux 我一直都在用,实际上没有好用能覆盖需求的,很多时候得自己写专门的脚本去做一些 build 的工作,一些 UI 层级的软件,不能完全覆盖到。

cask 的好处是,大部分带 UI 的应用 因为协议无法上架 AppStore 的,可以通过这个快捷安装,没有的软件,可以自己提交 pr ,合并更新前可以用自己的 github 做 tap 。可惜 linux 应该是没有的了

history 指定旧版本,好的 Formula ,在指定旧版本,发现相关依赖已经升级到最新版后,会自动进行下载源码跑一遍编译。Linux ,想啥呢,自己写 build 脚本去。

现在做 App 的发布环境和自动化测试,如果用的 Mac mini 去做的,装系统+执行配置脚本,大概 2 小时能跑完一台 mini 。原来做的话,发布环境还得单独搞个虚拟化去做 IOS 的发布 ,麻烦的很。整个脚本维护起来费时费劲

用 apt 啊,lts 版 ubuntu ,配置好国内 mirror ,不用半个小时全部装好,除了 firefox 这类软件,各个软件一般不会更新大版本了,只有 bug 修复和安全更新,最新版和最老版之间一般兼容

我有时直接 tar 备份好文件,复制到新机器,解压一下,再修复一下 grub 就完事了,目标机器都不用联网

能用。
个人体会比较适合用在 Debian 这类发行版,官方源缺少某些软件或版本过于落后,用 Linuxbrew 可以安装到最新的版本(这个需求用 nix 也可以)。
但是在 Arch 上就完全不如 Pacman + AUR 的组合。

缺点是只支持 x86 架构,linuxbrew 没有 arm 的二进制包。

没有 cask 的 Homebrew 还不如 Gentoo prefix ,最起码 Gentoo prefix 是专门针对 Linux 的,而且因为大多数 Gentoo prefix 用户都是为了在没有 root 权限的情况下摆脱 CentOS6 那可怕的 glibc 和 libstdc++版本,专门支持从古董内核 bootstrap 。

  1. Linuxbrew 没有 Caskroom 支持
  2. 好像支持了为安装包生成 systemd 文件
  3. Linuxbrew 不使用系统依赖,完全从头构造依赖。
  4. Homebrew 2019 年砍掉了 core 仓库(常见包) options 支持,后来 brew 工具里对于 options 支持也砍得差不多了。你的 ffmpeg 想开 nonfree 需要自己做个 Tap 修改 formula 。
  5. 出于安全考虑,homebrew-core 中依赖封闭,core 中包只能依赖其他 core 中包。比如你自己安装了其他 JDK ,但你依然需要安装 core 中 homebrew 编译的 openjdk 。
  6. Homebrew 的开源协议洁癖使得很多 core 仓库移除了 MongoDB ,Elasticsearch 等包。尽管这些包依然开源,且支持被分发。

每次安装或是搜索都会反应很久 没有 Arch apt 丝滑
不知道是我自己的是这样还是原本就是这样

Linux 不是有 yum apt 吗

Arch 和 macOS 都用过,没感觉 brew 哪里比 pacman+aur 好用。举个简单的例子,我发现我需要一个二进制文件 /头文件 /库文件,用 pacman -F 可以轻松找到,但 brew 就是不行。

我遇到过一种场景,就是系统是只读的,只有 home 目录是可写的,这时候如果熟悉 Mac 下的 brew 的话可以直接在 home 里装 brew ,而且可以配置成使用现成的二进制包,没有二进制可用的时候才会编译;不过安装手册比较奇怪,按照手册安装会有问题,得自己折腾,感觉 linux 下用这个的少。

Debian ,CentOS 等默认源缺少软件,有的往往也好老,而且 brew 通过 link 切换版本也蛮方便习惯了

brew 是因为 macOS 没有好用的包管理才出现的吧,都 Linux 了当然用原配

linux 还需要这玩意吗???