如何安装流行 CLI 应用程序的上游版本(nano、htop、tmux 和 lnav)?

Art*_*ild 6 server package-management command-line

在 Ubuntu LTS 中,应用程序被锁定到发布日期固定的版本。对于 Ubuntu 22.04“Jammy”,这些是:

我想在我的家庭服务器上安装这些应用程序的最新上游版本。

我怎样才能以简单可靠的方式做到这一点?

Art*_*ild 5

这至少可以通过两种方式来完成(Snap 方式Debian 方式)——但我非常喜欢 Debian 方法。还可以混合搭配您喜欢的应用程序,并使用 Snap 安装一些应用程序,使用 Debian 软件包安装一些应用程序。

请注意,这两种方法都不建议用于生产用途,但两者都应该非常适合家庭使用。

快速方式

如果有定期更新软件包的 Snap 维护者,此方法将为您提供应用程序的更新版本。不幸的是,情况并非总是如此。另一个好处是应用程序会自动更新新版本。

一些流行的命令行应用程序以 Snap 包的形式提供。

  • nano(自 2021 年 6 月以来似乎已被废弃)
  • htop(已维护,2022 年 6 月更新)
  • tmux(最后更新于 2022 年 2 月)
  • lnav(最后更新于 2021 年 11 月)

这些应用程序中的每一个都可以从命令行安装:

如果您选择这样做,请删除相应的 Debian 软件包:

sudo apt remove nano htop tmux lnav
Run Code Online (Sandbox Code Playgroud)

我自己对这些 Snap 软件包的体验有些复杂,这就是我选择下面描述的 Debian 方法的原因。我遇到的问题示例:

  • 纳米突然停止工作
  • tmux 突然“更新”到超过 1.5 年前的版本(v 2.7)
  • htop 手册页完全丢失

快照的另一个普遍问题是联机帮助页不容易获得 - 它需要一个肮脏的黑客才能让它们工作。

Debian 方式

如果有定期更新软件包的 Debian 维护者,此方法将为您提供应用程序的更新版本。通常情况就是这样。在这种情况下,您必须手动更新每个新版本的软件包。此外,由于 Debian 和 Ubuntu 不是 1:1 二进制兼容,因此这种方法在极少数情况下可能会出现问题。始终先在虚拟机上尝试!

使用此方法,您可以直接从 Debian 测试或不稳定分支安装更新版本。这在某种程度上是实验性的,但对于家庭使用来说仍然应该是安全的 - 并且在任何情况下都相当容易回滚到以前的版本。我已经这样做了两年多,没有任何问题。唯一的缺点是您必须手动更新以这种方式安装的应用程序。

首先,在 Debian Sid 分支中找到应用程序(通常有最新的软件包):

然后,对于每个包检查依赖项是否实际上与您的 Ubuntu 版本兼容。通常是这样 - 但在 Ubuntu LTS 周期的最后阶段,可能会出现 Debian 使用比 Ubuntu 更新版本的库的情况 - 请注意这一点。

现在,创建一个目录,并下载每个包的正确版本(此处针对amd64架构,版本为 2022.12.20):

wget \ 
http://ftp.de.debian.org/debian/pool/main/n/nano/nano_7.1-1_amd64.deb \
http://ftp.de.debian.org/debian/pool/main/h/htop/htop_3.2.1-1_amd64.deb \
http://ftp.de.debian.org/debian/pool/main/t/tmux/tmux_3.3a-3_amd64.deb \
http://ftp.de.debian.org/debian/pool/main/l/lnav/lnav_0.11.1-1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

最后,从这些文件安装软件包(2022.12.20 版本):(我通常先在虚拟机上测试安装,然后再在物理服务器上安装)

sudo apt install \ 
./nano_7.1-1_amd64.deb \
./htop_3.2.1-1_amd64.deb \
./tmux_3.3a-3_amd64.deb \
./lnav_0.11.1-1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

现在您已经安装了这些应用程序的最新上游版本。每次升级后请仔细检查配置文件,因为语法等可能会发生变化,需要修复。

对于高级用户,您可以创建一个脚本来监视这些 Debian 软件包的新版本,并在出现这种情况时向您发送警报。

  • 有人询问了一种“安全”的方式。Debian 方式当然不是安全的方式。原则上,Debian 和 Ubuntu 不兼容二进制。因此,安装不适合 Ubuntu 系统的二进制文件是一个偶然事件,据称对于这些小型实用程序来说,命中的机会比错过的机会更大。编译源代码将是安全的方法,但这并不能满足“简单”的要求。但是,如果在安装 deb 期间“需要修复问题”,情况也是如此。 (2认同)

gle*_*man 5

自制方式

安装Homebrew——它通常被称为 MacOS 的软件包安装程序,但它在 Linux 上运行得很好。

这些工具可用的版本:

$ brew info nano htop tmux lnav
==> nano: stable 7.1 (bottled)
[...]
==> htop: stable 3.2.1 (bottled), HEAD
[...]
==> tmux: stable 3.3a (bottled), HEAD
[...]
==> lnav: stable 0.11.1 (bottled), HEAD
[...]
Run Code Online (Sandbox Code Playgroud)

要安装它们:

$ brew install nano htop tmux lnav
Run Code Online (Sandbox Code Playgroud)

它们将安装到一个单独的目录中,您必须将其添加到 PATH 的开头。在我的 Ubuntu 系统上,它是/home/linuxbrew/.linuxbrew/bin. 安装程序将引导您到达那里。