如何在 Ubuntu Server 18.04 上将 sed 升级到 4.5?

如何在 Ubuntu Server 18.04 上将 sed 升级到 4.5?

我想sed在 Ubuntu Server 18.04 上试用最新的实用程序。我尝试了以下命令,但仍然无法升级它。我该怎么做?

root@u1804:~# apt update
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Get:2 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB]
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Fetched 311 kB in 7s (47.3 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
97 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@u1804:~# 
root@u1804:~# apt show sed
Package: sed
Version: 4.4-2
Priority: required
Essential: yes
Section: utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Clint Adams <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 328 kB
Pre-Depends: libc6 (>= 2.14), libselinux1 (>= 1.32)
Homepage: https://www.gnu.org/software/sed/
Task: minimal
Supported: 5y
Download-Size: 182 kB
APT-Manual-Installed: yes
APT-Sources: http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Description: GNU stream editor for filtering/transforming text
 sed reads the specified files or the standard input if no
 files are specified, makes editing changes according to a
 list of commands, and writes the results to the standard
 output.
root@u1804:~#
root@u1804:~# apt install --only-upgrade sed
Reading package lists... Done
Building dependency tree
Reading state information... Done
sed is already the newest version (4.4-2).
0 upgraded, 0 newly installed, 0 to remove and 97 not upgraded.
root@u1804:~#

答案1

注意:撰写本文时,GNU sed 的最新版本是 4.7,而不是 4.5。

这里有一个替代选项:直接从源 tarball 进行编译,使用 GNU 源包的两个非常有用的功能。

  • 您可以用您sed想要的任何其他名称安装新版本,这样它就不会干扰您当前的sed;在这个答案中我将使用sed47
  • make uninstall命令受支持,如果您不再需要它,可以干净地卸载它。

首先安装所有构建依赖项

sudo apt-get build-dep sed

获取源代码并提取

cd
wget ftp://ftp.gnu.org/gnu/sed/sed-4.7.tar.xz
tar xf sed-4.7.tar.xz
rm sed-4.7.tar.xz    # optional
cd sed-4.7

配置、构建和安装。请注意--program-suffix参数 to configure,它告诉构建系统将其附加47到所有可执行文件的名称中。

./configure --program-suffix=47
make
sudo make install

现在,您可以使用命令来使用新的 sed sed47,使用 查阅其手册页man sed47等。当/如果您想卸载它,请执行

cd ~/sed-4.7
sudo make uninstall

如果您删除了该sed-4.7目录,您可以通过重复上述安装说明来重新创建它(至少最多make)。

如果您想将其用作 sed 的“主要”版本,您可以创建一个别名:

alias sed=sed47

在这种情况下,我建议订阅info-gnu 邮件列表获取有关新版本的公告,其中可能包含重要的错误修复。

答案2

sed应用程序并不全面,因此您可以
从 Ubuntu 18.10 获取版本 4.5 (宇宙的存储库。

通常不推荐这种方法,但如果您确定的话可以继续(您将无法通过这种方式安装此软件包的安全更新):

wget http://mirrors.kernel.org/ubuntu/pool/main/s/sed/sed_4.5-1_amd64.deb
sudo apt-get install ./sed_4.5-1_amd64.deb

因此,这些包将被列为本地安装。

相关内容