Привет снова. Я olzoomer, и сегодня я начну цикл статей про то, как правильно выполнить базовую настройку Fedora после установки.
Данная статья является адаптированной для общего использования (с помощью универсального импортируемого скрипта с функциями) версией гитхаб‑гайда, которую я использую в личных целях.
Скрипт для самой начальной настройки
#!/bin/bash -eu
if [ "$(id -u)" -ne 0 ]; then
echo 'This script must be run by root' >&2
exit 1
fi
# Фикс для Realtek RTL8821CE (если у вас другой вайфай, его не вызываем!)
rtw88() {
echo "options rtw88_core disable_lps_deep=y" >> /etc/modprobe.d/rtw88.conf
}
# Ускоряем DNF
dnf() {
FILE="/etc/dnf/dnf.conf"
echo "max_parallel_downloads=10" >> $FILE
echo "minrate=500k" >> $FILE
echo "timeout=10" >> $FILE
}
# Ограничиваем размер логов до 50 МБ
journald_limit() {
FILE="/etc/systemd/journald.conf"
CONFIG_HEADER="[Journal]"
if ! grep -Fxq "$CONFIG_HEADER" $FILE
then
echo "$CONFIG_HEADER" >> $FILE
fi
echo "SystemMaxUse=50M" >> $FILE
systemctl restart systemd-journald.service
}
# Ставим кодеки
codecs() {
dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
dnf install rpmfusion-\*-appstream-data -y
dnf swap ffmpeg-free ffmpeg --allowerasing -y
dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin -y
# Ставим openh264 для Firefox (но он должен теперь ставиться по умолчанию)
# dnf install mozilla-openh264 -y
# Только для AMD. Насчёт Intel и NVIDIA, то
# https://rpmfusion.org/Howto/Multimedia
# dnf swap mesa-va-drivers mesa-va-drivers-freeworld -y
# dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld -y
}
# Шрифт Times New Roman, Arial, и многие другие
ms_fonts() {
dnf install curl cabextract xorg-x11-font-utils fontconfig -y
rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
}
# Чуть-чуть гномовских утилит для удобства
gnome_tools() {
dnf install gnome-tweaks seahorse -y
}
# podman-compose и podman-docker
podman() {
dnf install podman-compose podman-docker -y
}
# Докер - можно и встроенный
# Подман, по желанию
#
# Вызов обязательно с названием юзера!
docker() {
curl -fsSL https://get.docker.com | bash
sudo usermod -aG docker $1
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
}
# virt-manager
#
# Вызов обязательно с названием юзера!
virt-manager() {
sudo dnf install virt-manager
sudo usermod -aG libvirt $1
}
Чтобы применить всё это, достаточно создать скрипт, импортирующий тот скрипт, который ты взял отсюда, и вызвать нужные функции. Например:
source ./copied_script.sh
# Вызываем dnf() и codecs() - решим
# две главные проблемы федороюзера
dnf
codecs
Разберём скрипт поподробнее
rtw88()
позволяет решить проблему с одним из моделей Wi‑Fi‑адаптера от Realtek, который славится проблемой с потерей пакетов и засорении логов системы при такой ситуации. Сейчас вроде его пофиксили полностью, но иногда оно снова вылезает, поэтому я продолжаю ставить этот конфиг.dnf()
— ускорение DNF. DNF достаточно медленная вещь, поэтому я ставлю те настройки, которые ускоряют именно загрузку пакетов (оно на этом этапе зачастую по дефолту медлит будь здоров — вплоть до 50 Кбайт/сек, а то и 20–30 даже, в зависимости от выбранного им зеркала).journald_limit()
— меняем дефолтные 4 ГБ под журнал на 50 МБ.codecs()
— кодеки — это самая заноза в Федоре. Связано это с патентами на них (в России они не распространяются). Решается RPM Fusion'ом. Обязательно читаем его — там есть парочка интересных моментов.ms_fonts()
— шрифты Microsoft, официально доступные бесплатно в рамках «старых апдейтов» для Windows, и вьюверов для старого офиса. Распространяются теперь через Sourceforge силами энтузиастов. Да, были когда‑то лазейки для линуксоидов...gnome_tools()
— ставим GNOME Tweaks, а также просмотрщик ключей в GNOME Keyrings (иногда он нужен).podman()
— аддоны для подмана, превращающий (частично) в докера. Да, куча недостатков, зато не нужно ставить лишнего.
Итог
Мы выполнили базовую настройку ОС, но это только начало. Дальше надо будет настроить всё, что мы любим — среду разработки, браузер, и прочее. Но это в следующий раз...
Комментарии (27)
bruges
11.06.2025 04:55То как настраивали что либо до изобретения Ansible. Его как раз придумали для того чтобы избавиться от таких костылей. Идемпотентность, читабельность (простой YAML), декларативность.
dyadyaSerezha
11.06.2025 04:55Ставить Ansible и писать на нем скрипт, чтобы раз в несколько лет прогнать его на новой домашней системе? Ну, такое себе.
oldzoomer Автор
11.06.2025 04:55Я вообще переустанавливал ОС часто - просто потому что ОКР. А так сейчас я перешёл к использованию btrfs-снапшотов, и ничуть не жалею.
bruges
11.06.2025 04:55Ставить Ansible
dnf install ansible
илиpip install -U ansible
чтобы раз в несколько лет прогнать
Всё в IT (да и не только), что требуется делать больше 1 раза в жизни требует автоматизации иначе вы просто бесценно тратите время. А если уже что-то делаешь, то делай это хорошо - плохо само получится.
Как я уже упомянул - у анисбла есть идемпотентность. Поэтому сколько раз не выполняй идемпотентный код, будет выполнено только то, что на тачке отличается от того что описано в коде. Вы скажете "а зачем мне больше одного раза запускать скрипт настройки?". А вот понадобилось добавить настройки/пакеты? Вот что будет с вышеприведенными скриптами: установленные пакеты будут каждый раз пытаться установиться заново, работающие уже сервисы перезапускаться, конфиги опять перезаписываться на те же. Конечно можно запилить костыли проверяя после каждой команды exit коды, витвить if-then дальнейшие действия, сверять содержимое конфигов по контрольным суммам, проверять запущены ли сервисы, логировать и парсить ошибки. Но это ли не ад?
В баше нет декларативности - вы описываете команды которые что-то делают, а не конечное состояние тачки в виде "должен присутствовать пакет X".
Параллельности в баше тоже нет: а вдруг настроить нужно не только локалхост а ещё один сервак? А если десятки? Через pssh выполнить конечно можно, но то ещё удовольствие.
А что если настроить нужно не федору а дебиан или мак или простигосподи винду? Переписываем скрипт?
В итоге учтя всё это вы на баше постепенно и напишете говноаналог Ansible (-:
dyadyaSerezha
11.06.2025 04:55Я говорил про дом. Если у вас дома десятки серверов, то даже спорить не буду. Но изначально речь шла даже не про бэш, а про все (немногое) сделать ручками. Один раз в несколько лет. За несколько лет версия ОС меняется настолько, что старый скрипт часто становится просто устаревшим.
Мы говорим про разные случаи вообще. Мой - редкая, раз в несколько лет, усиановке домашней ОС. А с Ansible я работал много и конфигурировал через него по много сотен серверов, так что агитировать за него меня не надо. Но каждой задаче свой адекватный инструмент.
lrmpsm53
11.06.2025 04:55Максимально странный набор скриптов для первоначальной настройки
В первоначальной настройке глупо указывать установку дев тулз. Так как они далеко не всем понадобятся
Ускорение днф, судя по изменяемым параметрам, больше как плацебо будет. Скорость зависит от зеркал и ширины канала. Логичнее сменить зеркала, а не баловаться с количеством одновременных скачиваний
Добавление авто патча вай фая тоже странно. Такое должно лежать в траблшутах, баг репортах, а не здесь.
Менять лимиты журнала тоже как бы зачем. Только если юзер мегабайты считает.
Шрифты мелкософта тоже зачем. Ты бы ещё расписал как онли офис ставить.
Но вот что полезно здесь, так это кодеки. Я бы ещё добавил команды для установки поддержки vaapi, чтоб не на пооце декод был, а на декодерах
З.Ы. пользуюсь Fedora Linux, начиная с версии 31
oldzoomer Автор
11.06.2025 04:55Логичнее сменить зеркала, а не баловаться с количеством одновременных скачиваний
Зеркала тоже в этих настройках ставятся по пингу, а не по левой пятке федоровцев. Это также обеспечивает хорошую скорость. К сожалению, на некоторых провайдерах есть проблемы с некоторыми зеркалами.
Добавление авто патча вай фая тоже странно. Такое должно лежать в траблшутах, баг репортах, а не здесь.
Во-первых, это не совсем автопатч, а тупо набор функций, который можно импортировать в другой скрипт, и там указать то, что надо. И конкретно здесь речь идёт о конфиге для чипа RTL8821CE, который достаточно часто встречается на современных ноутбуках.
Менять лимиты журнала тоже как бы зачем. Только если юзер мегабайты считает.
4 гига мне лично некомфортно. Пусть система будет меньше жрать места на диске, чтобы их можно было прожрать флатпаками и докерами, например.
Шрифты мелкософта тоже зачем. Ты бы ещё расписал как онли офис ставить.
Иногда они нужны в некоторых учебных заведениях, где про LaTeX ничего не знают. Например, МВЕУ/МВЕК, где я учусь.
Я бы ещё добавил команды для установки поддержки vaapi, чтоб не на пооце декод был, а на декодерах
Есть для AMD, но они закомменчены. Можно чекнуть скрипт.
В первоначальной настройке глупо указывать установку дев тулз. Так как они далеко не всем понадобятся
Ну, на Хабре огромное количество тех, кому докер как раз нужен. Ну или виртуалки.
firegurafiku
11.06.2025 04:55Иногда они нужны в некоторых учебных заведениях
Это, конечно, веская причина. Однако, справедливости ради, я пока ещё не встречал научного руководителя, который бы на глаз отличил Times New Roman от Liberation Serif. А ещё есть православные PT Serif и PT Astra Serif (последний — метрически совместим с TNR).
dyadyaSerezha
Как знающий о Линуксе немного, спрашиваю - для остальных версий Линукса тоже надо делать что-то по целой серии статей, чтобы получить нормальную систему или есть более похожие на Винду версии, где поставил ОС и всё?
А если есть, какие причины ставить именно Федору?
dan_sw
На самом деле есть хорошая ОС Ubuntu, да и Debian можно попробовать. Недавно начал использовать Astra Linux - тоже неплохая ОС. "Вкатиться" в перечисленные мной ОС можно довольно быстро, после работы с Windows. И редакторы там ставятся без проблем, а шрифты и прочие штуки оформления там встроены уже из под коробки. Можно, конечно, и свои поставить.
В основном из ОС основанных на ядре Linux использую Ubuntu. Дизайн у них очень неплохой, да и для тестирования каких-нибудь служб на C++ в самый раз (для веб-разработки на JavaScript тоже очень подходит).
dv0ich
"Всё" - это сидишь в Блокноте работаешь и в Сапёра играешь? Или таки надо ставить приложения и настраивать под свои привычки? Так настройка Linux это то же самое.
dyadyaSerezha
Установка нужных приложений есть в любой ОС, но это не настройка собственно ОС, а запросы конкретного юзера. Винду 99% юзеров просто ставят и всё. Поменять цвет или фото бэкграунда? Это уже баловство.
dv0ich
Федору тоже можно поставить и всё
dyadyaSerezha
Как же все, когда тут целый цикл (!) статей?)
oldzoomer Автор
Ну это будет по разным дистрам.
dv0ich
По винде тоже можно цикл статей написать, даже книги пишут.
dyadyaSerezha
Книги, что надо сделать сразу после установки Винды, чтобы система работала нормально? То есть, как завершающий этап установки? Книги?
dv0ich
Это троллинг тупостью такой?
Федору, Манжару, Минт можно установить и ничего в системе не настраивать. Так же как и винду. А можно заморочиться и пилить глубокий кастом. Так же как и в винде. С той лишь поправкой, что глубина кастомизации в винде сильно ограничена. Но и при таком раскладе ценители что-то там пилят: https://www.reddit.com/r/desktops/
oldzoomer Автор
Да, согласен, но кодеки же надо устанавливать же, да и с ДНФом повозиться, чтобы оно не медлило.
tenzink
У всех разное представление о "нормальной" системе. Поэтому и появляются 100-500 описаний как всё настроить. С той же Федорой я не делал ничего из описанного в статье, и нормально живу. Доставил только пару приложений. С Windows при начальной настройке плюс-минус делал похожее - доставил пару приложений.
Причин ставить именно Федору, думаю, не так много. Тот же Ubuntu тоже неплох.
smoke486
Не знаю как сейчас в Убунте, но в Федоре из коробки идёт btrfs, wayland, kde6 (или Гном последний).
oldzoomer Автор
И да - btrfs реально рулит в плане реализации снапшотов (это что-то вроде "точек восстановления" в Windows, но на уровне ФС, и работающее моментально, и как надо).
tenzink
Я в dual-boot системе подрезал диск у Windows и бесшовно добавлял с помощью 'btrfs device add'. Супер фича, не уверен, что так можно с ext4
tenzink
Пользуюсь и Ubuntu на работе, и Fedora дома. Разница есть, но не такая заметная, чтобы я стал переубеждать менять систему с одной на другую
baalmef
Тут больше не от дистрибутивов зависит (хотя со всякими проприетарными кодеками и драйверами есть разные особенности), а от потребностей каждого пользователя. Я то тоже например настраиваю всякого на линуксах сразу, но в основном это просто чтобы система соответствовала моим устоявшимся привычкам, в том числе весьма мелочным, это не значит что без этого тюнинга я не смогу сесть и практически сразу заниматься привычными делами. На винде многие эти мелочи я даже затрудняюсь так сразу сказать, как вообще можно настроить, там у меня не получится "поставил ОС и всё".