![如何安装流行的 CLI 应用程序(nano、htop、tmux 和 lnav)的上游版本?](https://linux22.com/image/1191545/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85%E6%B5%81%E8%A1%8C%E7%9A%84%20CLI%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%88nano%E3%80%81htop%E3%80%81tmux%20%E5%92%8C%20lnav%EF%BC%89%E7%9A%84%E4%B8%8A%E6%B8%B8%E7%89%88%E6%9C%AC%EF%BC%9F.png)
在 Ubuntu LTS 中,应用程序被锁定为发布日期固定的版本。对于 Ubuntu 22.04“Jammy”,这些是:
我想在我的家庭服务器上安装这些应用程序的最新版本。
我怎样才能简单而可靠地做到这一点?
答案1
这至少可以通过两种方式实现(捕捉方式和Debian 方式) - 但我更喜欢 Debian 方法。您也可以根据自己的喜好进行混合搭配,使用 Snap 安装一些应用程序,使用 Debian 软件包安装一些应用程序。
请注意,这两种方法都不建议用于生产,但都非常适合家庭使用。
Snap 方式
这种方法将为您提供应用程序的更新版本,前提是有一个 Snap 维护者定期更新软件包。不幸的是,情况并非总是如此。另一个好处是应用程序会自动更新新版本。
一些流行的命令行应用程序以 Snap 包的形式提供。
每个应用程序都可以通过命令行安装:
纳米:(目前不推荐,因为该 snap 似乎已被废弃)
sudo snap install nano --classic
htop:
sudo snap install htop sudo snap connect htop:mount-observe sudo snap connect htop:network-control
tmux:
sudo snap install tmux-non-dead --classic
导航:
sudo snap install lnav
如果您选择这样做,请删除相应的 Debian 软件包:
sudo apt remove nano htop tmux lnav
我自己对这些 Snap 软件包的体验有些复杂,这就是我选择下面描述的 Debian 方法的原因。我遇到的问题示例:
- nano 突然停止工作
- tmux 突然“更新”到一年半以前的版本(v 2.7)
- htop 手册页完全缺失
快照的另一个常见问题是手册页不易获得 - 甚至需要进行肮脏的破解才能使它们正常工作。
Debian 方式
这种方法将为您提供应用程序的更新版本,前提是 Debian 维护者会定期更新软件包。通常情况如此。在这种情况下,您必须手动更新每个新版本的软件包。此外,由于 Debian 和 Ubuntu 不是 1:1 二进制兼容的,因此在极少数情况下,这种方法可能会出现问题。请务必先在虚拟机上尝试!
使用这种方法,您可以直接从 Debian 测试或不稳定分支安装更新版本。这在某种程度上是实验性的,但对于家庭使用来说仍然是安全的 - 并且无论如何都很容易回滚到以前的版本。我已经这样做了 2 年多,没有任何问题。唯一的缺点是您必须手动更新以这种方式安装的应用程序。
首先,找到 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
最后,从这些文件安装软件包(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
现在您已安装这些应用程序的最新上游版本。每次升级后,请仔细检查配置文件,因为语法等方面的变化可能需要修复。
对于高级用户,您可以创建一个脚本来监视这些 Debian 软件包的新版本,并在出现这种情况时向您发送警报。
答案2
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
[...]
要安装它们:
$ brew install nano htop tmux lnav
它们将安装到一个单独的目录中,您必须将其添加到 PATH 的开头。在我的 Ubuntu 系统上,它是/home/linuxbrew/.linuxbrew/bin
。安装程序将引导您到那里。
答案3
还有一个额外的选项我自己还没有探索过 - 但对于一些用户来说它可能很有趣。
Pacstall 方式
请注意,这可能被视为实验性的 - 适用通常的免责声明 - 永远不要运行任何您不信任的东西。
存在一个名为“帕克斯托尔”- 它对应于 Arch 用户存储库,通过为更新的 Ubuntu 软件包制作易于运行的安装脚本。
安装方法可能有所不同 - 可以是编译、.deb
包和其他安装方法。
Pacstall 通过运行其安装脚本来安装:
sudo bash -c "$(wget -q https://git.io/JsADh -O -)"
这将安装应用程序本身。您可能需要其他二进制文件进行编译:
sudo apt install build-essential
完成此操作后,您可以使用pacstall
命令安装支持的应用程序。从问题中列出的应用程序中,目前可用的应用程序如下:
每个应用程序的安装脚本都使用以下pacstall
命令执行,即:
pacstall -I <package-name>
这将是简单的安装正确的二进制文件或从源代码编译支持的应用程序的方法。