Я хочу попробовать новейшее sed
утилита на Сервере Ubuntu 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 <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Clint Adams <clint@debian.org>
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:~#
Примечание: последняя версия 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
параметр к 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
В этом случае я рекомендую подписаться на список рассылки информационной гну для получения объявлений о новых выпусках, которые могут содержать важные исправления ошибок.
sed
приложение не является всесторонним, таким образом, Вы можете
получите версию 4.5 из Ubuntu 18.10 (космический) репозиторий.
Обычно этот метод не рекомендуется, но можно продолжить двигаться, если Вы будете уверены (то Вы не доберетесь, обновления системы защиты для этого пакета установили этот путь):
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
Поскольку результат, который это упаковывает, будет перечислен, как локально установлено.