我是一名教师,我有几个使用 Ubuntu 的学生,我想给他们一些建议。我想给他们推荐一下他们应该使用什么包管理器。
因为我有一台 Mac 电脑,所以我使用自制一切。
- 在 Ubuntu 上使用是否有意义
brew
或者我应该继续使用apt-get
? - 主要的区别是什么,因为我不明白
答案1
我是 macOS 和 Ubuntu 的用户,并且同时使用 Homebrew(在 macOS 上)和 APT(在 Ubuntu 上)。
这两种工具的用途相似。不同之处在于易于1是 Ubuntu 的原生、必需和完全集成的部分,而自制是第三方添加的。2从用户的角度来看,最重要的区别是他们使用不同的命令语法,尽管任务非常相似。
如果你习惯使用 Homebrew,你能安装于你的Ubuntu。但是,如果有人是纯粹的 Ubuntu 用户,我绝对鼓励他们使用他们的原生工具 – APT。
如果您要使用软件包系统进行教学,您应该首先学习目标工具的正确语法。一开始,您的工作量会稍微大一些3,但之后您可以教授适合目标系统的工具。学生无论如何都应该能够在他们的计算机上操作相应的工具。例如,如果 Ubuntu 用户尝试在线查找建议,他们肯定会被 APT 所吸引。APT 还用于升级操作系统的组件。
如果你不知道如何将某个 Homebrew 命令转换为 APT 语法,请随时问!
1 apt-get
是其一部分,现在您apt
主要可以使用该命令。
2事实上,Homebrew 是 macOS 和 Ubuntu 上的第三方附加组件。
3如果您已经了解包管理器的原理,那么就不需要那么多了。
答案2
在 Ubuntu 上使用 brew 是否有意义,还是我应该继续使用 apt-get?
是的。我最近选择了 Ubuntu / Linuxbrew 组合,主要用于软件开发和科学计算(llvm、gcc、numpy、jupyter 等)。
我一直在使用 macOS/Homebrew(10 多年)和 linux/apt(30 多年,主要是 Ubuntu、Debian 或基于 Debian)。
- 更新的软件版本(软件包不断升级)
- 不需要从稳定系统版本 (Ubuntu LTS) 升级
- 无需添加额外的存储库源
- 更加独立于系统的环境(安装在一个文件夹中)
- 在保持 SW 开发环境完好无损的情况下更改或升级系统
- 可以按原样传递给容器(podman、docker 等)或其他系统
- 避免发行版 ABI 不兼容,例如使用 Ubuntu22.04 构建的程序/库可能无法在 Ubuntu18.04 上运行/链接
- SW 级别可配置性(从源代码构建包)
- 如果需要,编译时可配置额外功能
- macOs 和 Linux 上的软件包接口相同
- 更容易在多台机器上处理同一个项目
请记住在您的 linuxbrew 环境中安装 libc,以避免上面提到的二进制不兼容问题。