Наши любимые замены Linux устаревшим инструментам с открытым исходным кодом
Мы спросили наше сообщество участников, какие инструменты с открытым исходным кодом они используют вместо тех, которые кажутся устаревшими или устаревшими.
Здесь, на Opensource.com, мы подумали, что было бы интересно опросить некоторых наших авторов, чтобы понять, какие инструменты они считают устаревшими (но, возможно, все еще полезными!) и что они думают об утилитах-заменителях. Далее следует серия ответов и немного веселья.
Мы разослали следующее приглашение:
- Вы обнаружили, что некоторые из ваших любимых инструментов устарели или устарели? Или, может быть, вы просто заменили его на что-то новое?
- Что вы используете сейчас? Расскажите нам немного о том, насколько, по вашему мнению, полезен переход.
Брандмауэры
Для меня очень важным является iptables. Я кровью потел, изучая, как использовать iptables, ebtables и arptables, как манипулировать MAC-адресами и многое другое. Я построил десятки межсетевых экранов на основе сценариев для настройки наборов правил, и в конце концов у меня это неплохо получилось. Теперь nftables делает все это устаревшим. Веселье никогда не прекращается. Я все еще думаю, что кто-то с маркетинговым влиянием мог бы заставить работать программно-определяемые границы.
—Грег Скотт
+1 к iptables
Я использую iptables с тех пор, как впервые изучил Linux более 25 лет назад. Новейшим инструментом является firewalld, но он и все другие инструменты брандмауэра, которые я видел для дистрибутивов на основе Red Hat, по-прежнему основаны на модулях netfilter уровня ядра и охватывают их. Я обнаружил, что инструмент firewalld создает огромные наборы правил, которые не делают для меня ничего большего, чем старые iptables. Я уверен, что некоторым крупным средам нужны эти сложные наборы правил, но их также можно реализовать с помощью iptables или сценариев, подобных сценарию Грега.
Мне нравится nmcli
, но мне нужно время, чтобы его изучить. На самом деле я предпочитаю их старым командам ifcfg
и ip
. Он кажется более интегрированным в систему, чем предыдущие версии. Но мне нравятся старые файлы конфигурации интерфейса ifcfg-
. Их легко создать и понять. Им не требуется формат INI, требующий заголовков разделов. Фактически, файлы старого стиля даже не чувствительны к последовательности.
—Дэвид Оба
ipchains?
Чтобы еще больше подчеркнуть этот пример, уверены ли вы, что тогда не использовали ipchains? (IPchains, преемник ipfirewall и ipfwadm, не был вытеснен iptables примерно до 2001 года.)
— Джереми Стэнли
^^В ответ Джереми
Моим самым первым брандмауэром был ipchains, примерно в конце 1999 года. Все, что было после этого, было iptables. Тогда мне пришлось собрать собственное ядро, чтобы получить все необходимые мне модули netfilter. Современные удобства, такие как плоские мониторы и DSL, в те времена были научной фантастикой. И даже не думайте о клетчатке. Мне приходилось каждый день ездить на лошади в гору сквозь метели, чтобы навестить клиентов. А потом и дома тоже было в гору.
—Грег Скотт
Редактирование текста
Я просто должен спросить — кто все еще использует troff (groff) и кто перешел на… хм, скажем, LibreOffice или AsciiDoctor или…?
У меня есть дорогой друг, который продолжает работать с продуктом на основе troff на своем Sun SPARCStation V.
—Крис Хермансен
[Связанное чтение Техническое письмо старой школы с Гроффом]
Редактирование man-страниц
^^В ответ Крису
Любой, кто поддерживает справочные страницы! Хотя в наши дни многие люди, вероятно, генерируют их из другой разметки. Некоторые люди (например, я) до сих пор вместо этого создают или редактируют файлы troff напрямую.
— Джереми Стэнли
Стеки разметки
Всегда есть люди, которые используют старые вещи, но в наши дни есть более совершенные инструменты. Я бы не стал использовать LibreOffice для тех задач, для которых вы используете troff/groff — если вы пишете на этом уровне, вы, вероятно, зависите от хорошо знакомого вам текстового редактора, системы контроля версий для управления входными данными, и вы комфортно работать с языками разметки.
Это означает, что вы хотите использовать стек разметки. Их много, в том числе:
- Sphinx + ReST + Действия GitHub + Страницы GitHub
- MkDocs + Markdown + GitLab CI + GitLab Pages
- Никола + Jupyter Notebooks + Jenkins + (AWS S3 + CloudFront)
Общим для всех стеков является:
- штука, которая объединяет разные входные файлы в одно единое целое (Sphinx/MkDocs/Nikola).
- Язык текстовой разметки достаточно высокого уровня (ReST/Markdown/MD, встроенный в Jupyter Notebooks).
- Конвейер CI для преобразования их в выходной формат (обычно дерево файлов HTML, но иногда PDF или что-то в этом роде)
- Место, где люди могут загрузить опубликованную версию (страницы GitHub, страницы GitLab, AWS S3 + CloudFront).
Отмечу, что это в значительной степени ортогональные варианты. Любой разумный генератор может принимать любые входные данные (даже MkDocs, для которого это наименее верно, имеет плагин mkdocs-gen-files, поэтому вы можете использовать Pandoc для преобразования данных в Markdown). Любой разумный CI может запустить любой генератор и отправить запрос на любую цель.
Таким образом, даже учитывая приведенный выше список, доступен 81 стек.
(Sphinx/MkDocs/Nikola) x (ReST/Markdown/Jupyter Notebooks) x (GHA/GitLab CI/Jenkins) x (GHP/GLP/S3+CF)
Поскольку Pandoc понимает troff (ms/man), вы можете подключить troff+ms или troff+man в слот «разметки», если вам действительно этого хочется. Вероятно, вы можете установить Jenkins на Sun SPARCStation V и продолжать использовать ту же машину и формат. Но почему? :)
Вероятно, там есть статья для Opensource.com: «Как я преобразовал документы troff в современный стек с помощью mkdocs+mkdocs-gen-files и GitLab CI».
—Моше Задка
Другие примеры гроффов
На самом деле, я сейчас пишу статью о «старой школе технического письма с помощью groff» (часть более крупной серии, которую я пишу об инструментах технического письма). Я не использую groff для серьезных технических писаний, но он есть в моем арсенале вещей, которые я узнал и, вероятно, никогда не забуду. И я рассматриваю Грофф, когда преподаю «Письмо с использованием цифровых технологий».
Во время написания статьи я вспомнил, что, когда я установил Linux в 1993 году, на Linux не было никаких приложений для написания программ. Никаких текстовых процессоров, только groff и LaTeX. Я использовал LaTeX для написания отчетов по физическим лабораторным работам (потому что с ним можно было легко выполнять математические вычисления) и groff для написания статей для других классов (потому что вместо этого я мог распечатать их на линейном принтере, что, по моему мнению, было умным способом придать моей статье вид дольше). Если я хотел писать с помощью текстового процессора, мне приходилось выполнять двойную загрузку обратно в DOS, чтобы запустить WordPerfect или Galaxy Write. StarOffice вышел для Linux в 1996 году. Я купил StarOffice.
Интересно, что Брайан Керниган до сих пор пишет все свои книги в стиле грофф. «Unix: История и мемуары» (2020 г.) и «Понимание цифрового мира» (2021 г.) были полностью обработаны в groff.
—Джим Холл
Возвращаясь к команде fmt
Сейчас я часто использую команду fmt
. Это действительно удобно для множества вещей. Если вы пишете документацию Readme (или другие документы) в виде обычного текста, вам знакома боль, когда вы вставляете новый текст в середину строки, а затем строки не заканчиваются в одном и том же столбце. Вы можете запустить fmt
, чтобы это очистить.
Чаще всего я нахожусь в списке адресов электронной почты, участники которого предпочитают получать электронные письма в виде обычного текста, поэтому мой почтовый клиент большую часть времени настроен на использование обычного текста. Если мне нужно ответить на чье-то электронное письмо из списка (и они не отправили его в виде обычного текста), абзац обычно состоит из одной длинной строки, и мой почтовый клиент неправильно переносит строки, когда я отвечаю. Это просто >
в начале длинного предложения.
Итак, я делаю это:
$ fmt -p '>' > /tmp/f
{copy & paste ">" quoted text}
^D
А потом:
$ cat /tmp/f
А затем скопируйте и вставьте результат в мое письмо.
—Джим Холл
Изменения в загрузчиках
Когда ваш foo станет достаточно острым, есть разумная вероятность, что инструменты будут заменены.
Переход от LILO к GRUB был болезненным, пока мой GRUB-foo не достиг достаточного уровня. GRUB2 великолепен, но требует нового обучения.
Мышечная память также является проблемой: ipconfig
, nslookup
и netstat
работают на автопилоте. Кроме того, если вы используете другие среды Linux, например Tiny Core Linux, у вас не всегда могут быть новейшие и лучшие инструменты.
Переход от сценариев в стиле if-cfg
к nmcli
— это новый этап обучения, поэтому он никогда не закончится.
—Стивен Эллис
[Связанное чтение 6 устаревших команд Linux и инструментов, которые следует использовать вместо них ]
Быстрая настройка FIPS
Часто все меняется к лучшему; мои два цента. Был задан вопрос: Обнаружили ли вы, что некоторые из ваших любимых инструментов устарели или устарели? Или, может быть, вы просто заменили его на что-то новое?
Недавно коллега спросил меня, как включить FIPS в Linux, и я давно этого не делал. Я помню, насколько загадочным был этот процесс, который включал в себя включение репозитория, установку пакета (dracut-fips), запуск команд (dracut
) для регенерации initramfs, изменение файла конфигурации загрузчика GRUB (fips=1). , и т. д.
Кроме того, Что ты сейчас используешь? Расскажите нам немного о том, как, по вашему мнению, был полезен этот переход.
К счастью, в RHEL9 это было заменено командой fips-mode-setup
с двумя удобными флагами: --check
и --setup
. . Вот и все! Запустите эти команды, перезагрузите систему, и ваш компьютер загрузится с включенным FIPS. Супер легко!
— Гаурав Камате
Старый и удобный
Очевидно, что и удовольствие от открытого исходного кода, и сильные мнения по-прежнему присутствуют, равно как и разнообразие инструментов и свобода выбора того, что лучше всего подходит для вас. Возможно, эти инструменты и подобные им старые — даже устаревшие — но они все еще могут служить цели. Некоторые из этих старых утилит вдохновили на создание более современных решений, не потеряв при этом своей собственной ценности. Наконец, есть что сказать о комфорте пользователя и знакомстве. Благодаря открытому исходному коду все часы, потраченные на разработку вашего foo, не должны быть потеряны только потому, что какой-то поставщик решил, что пришло время для новой версии.