Оптимизация и тонкая настройка

Как уменьшить потребление оперативной памяти средой рабочего стола GNOME 3?

Отключим службу автоматической регистрации ошибок и удалим GUI апплет, уведомляющий об их возникновении:

sudo dnf remove abrt

Удалим Магазин приложений (графический менеджер пакетов):

sudo dnf remove PackageKit gnome-software

Отключим службу управления виртуализацией (если на установленной системе не предполагается использовать виртуальные машины):

sudo systemctl disable libvirtd

Отключим службы Evolution, необходимые для синхронизации онлайн аккаунтов:

systemctl --user mask evolution-addressbook-factory evolution-calendar-factory evolution-source-registry

Отключим службы, необходимые для создания индекса файловой системы, необходимого для быстрого поиска (если не предполагается использовать поиск в главном меню):

systemctl --user mask tracker-miner-apps tracker-miner-fs tracker-store

Как уменьшить потребление оперативной памяти средой рабочего стола KDE?

Отключим службу индексации файлов. Для этого зайдём в Параметры системыПоиск, снимем флажок из чекбокса Включить службы поиска файлов и нажмём Применить. Теперь удалим Akonadi:

sudo dnf remove akonadi

Удалим устаревшие библиотеки Qt4 и службу автоматической регистрации ошибок ABRT:

sudo dnf remove qt abrt

Удалим Магазин приложений (графический менеджер пакетов):

sudo dnf remove PackageKit plasma-discover dnfdragora

Удалим runtime библиотеки для экономии ОЗУ (при этом по зависимостям будут удалены некоторые приложения, например KMail и KOrganizer):

sudo dnf remove kdepim-runtime-libs kdepim-apps-libs

Удалим KDE Connect (если не планируется управлять смартфоном с компьютера и наоборот):

sudo dnf remove kde-connect kdeconnectd

Опционально удалим библиотеки GTK2 (в то же время от них до сих пор зависят многие популярные приложения, например Firefox, Gimp, GParted):

sudo dnf remove gtk2

Как максимально очистить KDE от неиспользуемых программ?

  1. Произведём стандартную очистку по описанному выше сценарию.

  2. Удалим оставшиеся редко используемые пакеты:

sudo dnf remove krdc dragon kontact ktorrent kget konversation konqueror falkon kmail krusader krfb akregator juk kamoso k3b calligra\* kfind kgpg kmouth kmag

Как решить проблему с отсутствием библиотеки libcurl-gnutls.so.4?

См. здесь.

Как задействовать планировщик ввода/вывода BFQ для HDD?

BFQ – это планировщик ввода-вывода (I/O), предназначенный для повышения отзывчивости пользовательского окружения при значительных нагрузках на дисковую подсистему.

Проверим, какой из планировщиков используется в данный момент. Если это не BFQ, произведём редактирование файла шаблонов GRUB:

sudoedit /etc/default/grub

В конец строки GRUB_CMDLINE_LINUX= добавим scsi_mod.use_blk_mq=1, после чего сгенерируем новую конфигурацию GRUB.

Создадим новое правило udev для принудительной активации BFQ для любых жёстких дисков:

sudo bash -c "echo 'ACTION==\"add|change\", KERNEL==\"sd[a-z]\", ATTR{queue/rotational}==\"1\", ATTR{queue/scheduler}=\"bfq\"' >> /etc/udev/rules.d/60-ioschedulers.rules"

Применим изменения в политиках udev:

sudo udevadm control --reload

Выполним перезагрузку системы:

sudo systemctl reboot

Чем можно запустить SWF файл без установки Flash плагина в браузер?

SWF файл – это исполняемый файл формата Adobe Flash. Для того, чтобы проиграть его без установки соответствующего плагина в браузер, можно загрузить специальную версию Flash Projector (ранее назывался Standalone).

Скачаем Projector:

wget https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz -O fpsa.tar.gz

Создадим новый каталог и распакуем архив в него:

mkdir -p ~/foo-bar
tar -xzf fpsa.tar.gz -C ~/foo-bar

Запустим проигрыватель:

~/foo-bar/flashplayer

В открывшемся окне нажмём ФайлОткрыть (или комбинацию Ctrl + O) и найдём SWF файл на диске.

По окончании использования удалим каталог с программой:

rm -rf ~/foo-bar

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

Можно ли удалить Python 2 из системы?

Да. Поскольку поддержка Python версии 2 была прекращена 01.01.2020, его уже не рекомендуется использовать. Вместо него следует применять Python 3. Большая часть активных проектов и библиотек уже давно были портированы на эту версию.

Возможность полностью избавиться от Python 2 появилась у пользователей Fedora 30 и выше. От данной версии интерпретатора более не зависят важные компоненты и его можно смело удалить:

sudo dnf remove python2

Это действие автоматически удалит и все его зависимости.

Как запретить возможность исполнения любых файлов из домашнего каталога?

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

Откроем файл /etc/fstab в текстовом редакторе:

sudoedit /etc/fstab

Добавим в опции монтирования домашнего каталога флаги noexec,nodev,nosuid после defaults.

Пример итоговой строки после внесения изменений:

UUID=XXXXXXXXXX /home ext4 defaults,noexec,nodev,nosuid 1 2

Здесь XXXXXXXXXXUUID раздела, а ext4 – используемая файловая система.

Следует помнить, что это действие не повлияет на запуск различных скриптов интерпретаторами, т.е. запуск ./foo-bar с установленным битом исполнения будет запрещён, но в то же время bash foo-bar выполнится в штатном режиме.

Как установить шрифты Microsoft в Fedora?

См. здесь.

При загрузке режима восстановления появляется ошибка root account is locked. Как исправить?

Ошибка Cannot open access to console, the root account is locked появляется при запуске системы в режиме восстановления в том случае если при установке Fedora был создан пользователь-администратор и не был задан пароль для учётной записи суперпользователя.

Таким образом, при недоступности раздела /home, войти в систему в emergency режиме не представляется возможным, т.к. отсутствуют пользователи с доступными профилями (суперпользователь заблокирован, а обычные пользовательские учётные записи отключены из-за отсутствия доступа к их домашним каталогам).

Решим данную проблему посредством загрузки с Fedora LiveUSB, выполнением chroot в установленную систему и установкой пароля для root:

passwd root

Завершим работу chroot окружения:

logout

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

Как изменить размер пула сжатия памяти?

По умолчанию модуль сжатия памяти zram создаёт пул, равный половине объёма имеющейся оперативной памяти.

Увеличивать размер пула выше стандартного значения категорически не рекомендуется, т.к. это может приводить к зависаниям системы.

Если всё-таки хочется внести поправки, откроем файл /etc/zram.conf в текстовом редакторе:

sudoedit /etc/zram.conf

Внесём изменения в переменную FACTOR, явно указав нужное значение:

FACTOR=2

Формула расчёта: 1 / FACTOR. Значение 2 – выделение под пул 50% (выбор по умолчанию) от оперативной памяти, 4 – 25%, 1 – 100% соответственно (не рекомендуется).

Изменения вступят в силу при следующей загрузке системы.

Как правильно преобразовать RFRemix в Fedora?

Заменим пакеты с брендированием:

sudo dnf swap rfremix-release fedora-release --allowerasing
sudo dnf swap rfremix-logos fedora-logos --allowerasing

Полностью отключим и удалим репозитории Russian Fedora:

sudo dnf remove 'russianfedora*'

Произведём синхронизацию компонентов дистрибутива:

sudo dnf distro-sync --allowerasing

Как правильно обновиться с RFRemix до Fedora?

В связи с прекращением поддержки RFRemix, выполним следующие действия:

Как оптимизировать Windows для корректной работы в dual-boot?

Если необходимо использовать Fedora вместе с Microsoft Windows в режиме двойной загрузки, то необходимо применить ряд оптимизаций, специфичных для данной ОС:

  1. переведём часы в UTC во всех установленных ОС: Fedora, Windows;

  2. отключим использование гибридного режима завершения работы.

После выполнения указанных действий, обе ОС смогут сосуществовать на одном устройстве.

Приложение требует webkitgtk. Что делать?

Библиотека webkitgtk более не поддерживается апстримом, имеет сотни незакрытых критических уязвимостей (в т.ч. допускающих удалённое исполнение кода), и по этой причине она была удалена из репозиториев Fedora начиная с версии 25.

Если приложение требует webkitgtk, то лучше всего воздержаться от его использования, однако если это по какой-либо причине невозможно, то проще всего будет применить загрузку библиотеки через переопределение LD_LIBRARY_PATH.

Настоятельно не рекомендуется устанавливать данную библиотеку глобально в систему!

Можно ли установить несколько версий PHP одновременно?

Да, это возможно при использовании репозитория Remi’s RPM.

В то же время одновременная установка и использование одной и той же мажорной версии PHP невозможна, т.е. нельзя одновременно установить и использовать версии 7.3.1 и 7.3.2, однако 7.2.9 и 7.3.2 уже можно.

Remi’s RPM – это сторонний репозиторий, созданный и поддерживаемый Remi Collect – активным участником сообщества и мейнтейнером всего PHP стека в Fedora.

Основная цель данного репозитория – предоставление различных версий стека PHP с возможностью одновременного использования, а также некоторых других программ для пользователей Fedora и Enterprise Linux (RHEL, CentOS, Oracle, Scientific Linux и т.д.).

Важно: Remi’s RPM – это сторонний репозиторий, поэтому в случае, если вы используете бета-версии Fedora или Fedora Rawhide, репозиторий может работать некорректно.

Для подключения выполним сдедующую команду:

sudo dnf install https://rpms.remirepo.net/fedora/remi-release-$(rpm -E %fedora).rpm

Важно: Перед использованием репозитория Remi, необходимо подключить RPM Fusion.

Для того, чтобы получать обновления PHP, активируем данный репозиторий:

sudo dnf config-manager --set-enabled remi

При необходимости можно включить экспериментальные репозитории с бета-версиями PHP (на примере версии 7.4):

sudo dnf config-manager --set-enabled remi-php74

Установим PHP-интерпретатор версии 7.3:

sudo dnf install php73-php

Для корректного использования PHP с веб-сервером Apache в режиме FastCGI, необходимо вручную указать путь к исполняемому файлу PHP в файле конфигурации веб-сервера.

В случае использования nginx, установим менеджер процессов PHP-FPM для PHP версии 7.3:

sudo dnf install php73-php-fpm

Стоит обратить внимание на то, что все пакеты в репозитории Remi’s RPM, относящиеся к PHP, имеют в своем названии префикс вида php<php_version>, где <php_version> – первые две цифры версии PHP, которую необходимо использовать.

Запустим PHP-FPM и включим его автоматический старт при включения системы:

sudo systemctl enable --now php73-php-fpm.servie

Указанный выше префикс необходимо использовать и при взаимодействии с юнитами systemd.

Для выполнения PHP сценария в терминале, вызовем интерпретатор и передадим путь к файлу в качестве параметра:

/usr/bin/php73 /path/to/file.php

Здесь /usr/bin/php73 является символической ссылкой для быстрого вызова исполняемого файла интерпретатора PHP указанной версии, например /opt/remi/php73/root/usr/bin/php.

Файлы конфигурации php.ini и php-fpm.conf располагаются в каталоге /etc/opt/remi/php73. Префикс используется в качестве имени каталога.

С некоторыми Qt приложениями в Wayland наблюдаются проблемы. Как исправить?

Некоторые приложения, использующие фреймворк Qt, могут некорректно работать в Wayland, поэтому активируем для них принудительное использование системы X11:

QT_QPA_PLATFORM=xcb /usr/bin/foo-bar

При необходимости постоянного старта в таком режиме создадим переопределение для ярлыка, прописав env QT_QPA_PLATFORM=xcb перед строкой запуска внутри директивы Exec=.

Пример:

Exec=env QT_QPA_PLATFORM=xcb /usr/bin/foo-bar

Здесь /usr/bin/foo-bar – путь запуска проблемного приложения.

В Spectacle при вызове через Print Screen отсутствует оформление окна. Как исправить?

Это известная проблема пакета Lmod, приводящая к тому, что при вызове через D-Bus не полностью передаются переменные окружения.

Удалим Lmod:

sudo dnf remove Lmod

Произведём перезагрузку системы:

sudo systemctl reboot

Как решить проблему с чёрным экраном после обновления ядра на видеокартах AMD?

Иногда чёрный экран на видеокартах AMD может появляться по причинам отсутствия нужной прошивки в initramfs образе.

Для решения данной проблемы пересоберём образ initrd с принудительным добавлением прошивок, используемых драйвером amdgpu:

sudo dracut --regenerate-all --force --install "/usr/lib/firmware/amdgpu/*"

Произведём перезагрузку системы:

sudo systemctl reboot

Как исправить ошибку, связанную с VGA-0, на видеокартах NVIDIA?

Если в системном журнале появляется сообщение вида WARNING: GPU:0: Unable to read EDID for display device VGA-0, отключим соответствующий видеовыход.

Создадим файл 80-vgaoff.conf:

sudo touch /etc/X11/xorg.conf.d/80-vgaoff.conf
sudo chown root:root /etc/X11/xorg.conf.d/80-vgaoff.conf
sudo chmod 0644 /etc/X11/xorg.conf.d/80-vgaoff.conf

Откроем его в текстовом редакторе:

sudoedit /etc/X11/xorg.conf.d/80-vgaoff.conf

Добавим следующее содержание:

Section "Monitor"
    Identifier "VGA-0"
    Option "Ignore" "true"
    Option "Enable" "false"
EndSection

Произведём перезагрузку системы:

sudo systemctl reboot

Как активировать драйвер modesetting на видеокартах Intel?

Создадим новый файл конфигурации X11 – 10-modesetting.conf:

sudo touch /etc/X11/xorg.conf.d/10-modesetting.conf
sudo chmod 0644 /etc/X11/xorg.conf.d/10-modesetting.conf

Откроем его в текстовом редакторе:

sudoedit /etc/X11/xorg.conf.d/10-modesetting.conf

Вставим следующее содержание:

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "modesetting"
EndSection

Сохраним изменения в файле.

Удалим компоненты стандартного драйвера Intel:

sudo dnf remove xorg-x11-drv-intel

Перезагрузим систему и выберем сеанс X11 (Gnome on X11 для пользователей Fedora Workstation):

sudo systemctl reboot