Регулярное выражение sed -E не работает должным образом с использованием (.*?)

Это несколько общий ответ об установке более нового программного обеспечения на более старую версию производной Debian.

Во-первых, убедитесь, что вы действительно хотите получить более новую версию. Вопреки распространенному заблуждению, новое не всегда лучше. В более новой версии обычно есть исправления ошибок, но также есть и новые ошибки. В дистрибутивах применяются исправления для основных ошибок и особенно для проблем безопасности, поэтому, если все, что вам нужно, это исправления ошибок в целом, вам следует придерживаться пакета вашего дистрибутива. В вашем случае вам нужна новая фича, поэтому это предупреждение к вам не относится.

Самый простой способ получить более новую версию — это если кто-то уже сделал эту работу за вас. Проверьте, доступен ли пакет backport для вашего дистрибутива. Для Ubuntu бэкпорты перечислены на странице пакета на веб-сайте . Для exim4 нет бэкпорта.

Также проверьте, есть ли у разработчика приложения доступные пакеты. Похоже, это не относится к Exim.

При отсутствии официального пакета проверьте наличие неофициального пакета. С неофициальным пакетом существует больший риск того, что сопровождающий этого пакета не будет делать своевременные обновления для устранения проблем безопасности и серьезных ошибок, поэтому оцените исходный код и решите, хотите ли вы рискнуть. Для Ubuntu, а иногда и для других производных от Debian, проверьте, доступен ли PPA . Для exim с поддержкой rspamd вам наполовину повезло. Существует exim -rspamd PPA , но, похоже, он не поддерживается активно, поэтому, вероятно, к настоящему времени в нем есть дыры в безопасности.

Совершенно другой подход заключается в установке более позднего дистрибутива в среде chroot и запуске программы из этого более позднего дистрибутива. Это требует много дискового пространства и пропускной способности по сравнению с простой установкой одного приложения, но это дешево по сравнению с человеческим трудом, и этот метод очень не требует труда, особенно для производных Debian благодаря schroot . См. мое руководство по использованию schroot в производных Debian . Это хороший метод для приложений «конечных пользователей», но для системных служб, таких как exim4, это может быть не так просто.

Для программного обеспечения на стороне сервера -вы можете найти пакет, подобный chroot -, в виде контейнера Docker . Доступно множество образов Docker с exim . Я понятия не имею об их качестве, надежности и благонадежности.

Для программного обеспечения с открытым исходным кодом всегда возможна установка из исходного кода. Это может быть более или менее болезненно в зависимости от того, от какого другого программного обеспечения (типично библиотек )зависит программа. Для программ с графическим интерфейсом, которые требуют пару десятков библиотек и постоянно обновляют свои минимальные требования, может быть очень сложно идти в ногу.Для такой программы, как exim, у которой очень мало зависимостей, это должно быть довольно просто. Основное ограничение заключается в том, что вы должны следить за обновлениями безопасности и применять их по мере их появления. Это может привести к риску, если разработчик приложения предоставляет обновления безопасности только для последней версии (, которые могут содержать ошибки, затрагивающие вас ). Проверьте, доступна ли долгосрочная -версия -поддержки (для Exim ).

В вашем случае я бы либо выбрал Docker-контейнер, если есть надежный, либо создал свой собственный deb-пакет, начав с работы, проделанной для exim -rspamd PPA.

0
07.05.2020, 22:20
1 ответ

Чтобы сопоставить строку до пробела, используйте [^ ]*Полная команда будет:

ip a |sed -En "{N ; N ; s/^[1-9]: (.*: ).+\n?.+\n? {4}inet \  
([^ ]*).*/\1\2/p}"

Выход:

lo: 127.0.0.1/8    
eno1: 192.168.1.44/24    
wlx68a3c45b2875: 192.168.1.36/24    
0
28.04.2021, 23:15

Теги

Похожие вопросы