"Интеллект - это способность избегать выполнения работы, но так, чтобы она при этом была сделана." Линус Торвальдс

"Интеллект - это способность избегать выполнения работы, но так, чтобы она при этом была сделана." Линус Торвальдс

Монтируем разделы на века,Открытие:
nano /etc/fstab
/dev/sda2
/dev/sda3
/dev/sda4
/dev/sda5
/boot/efi
none
/
/home
vfat
swap
ext4
btrfs
umask=0077
sw
defaults,noatime
defaults,noatime
0 2
0 0
0 1
0 0
Расправил крылья Пингвин боевой,
Сервер DHCP предоставляет клиенту динамический IP-адрес, маску подсети, IP-адрес шлюза по умолчанию и опционально - сервер имён DNS.
Установка dhcpcd:
emerge --ask dhcpcd
Вместо отдельного DHCP-клиента можно воспользоваться одним из сетевых менеджеров - некоторые из них имеют встроенный DHCP-клиент.
Сетевой менеджер (NetworkManager, systemd-networkd и т.д.) позволяет создавать т.н. "сетевые профили" с настройками подключений, что облегчает переключение между сетями.
Выбор приложений довольно широк, но нужно помнить, что все варианты взаимоисключают друг друга. Запускать два сетевых демона одновременно запрещено.
Для подключения сети загружаем пакет net-dialup/ppp:
emerge --ask net-dialup/ppp
Здесь Пингвин настраивает ход,Пароль root:
passwd
Password: (введите пароль)
Re-enter password: (повторно введите пароль)
Для настройки параметров часов открываем /etc/conf.d/hwclock
nano /etc/conf.d/hwclock
Если аппаратные часы системы настроены не на часовой пояс UTC (Гринвич),
в файл необходимо добавить строку
clock="local".
В противном случае будет сдвиг часового пояса.
Установка системной службы журналирования:
emerge syslog-ng
Для syslog-ng рекомендуется установить app-admin/logrotate:
emerge app-admin/logrotate
rc-update add syslog-ng default
Установка имени узла:
nano /etc/conf.d/hostname
(присваеваем переменной hostname имя своего узла)
hostname="tux"
На старт! Поехали! Grub 2 уже готов,Проверяем, включён ли режим UEFI, посмотрев содержимое каталога efivars:
ls /sys/firmware/efi/efivars
Отсутствие такого каталога, говорит что система загружена в режиме BIOS или CSM.
При использовании UEFI, если в make.conf ранее не установлено, добавляем:
echo GRUB_PLATFORMS="efi-64" >> /etc/portage/make.conf
Загружаем Grub:
emerge --ask sys-boot/grub
Устанавливаем файлы GRUB в /boot/grub:
Когда используется BIOS:
grub-install /dev/sda
Если нужно установить BIOS - версию загрузчика из-под системы, загруженной в режиме UEFI, требуется принудительно задать программе установки нужную сборку GRUB:
grub-install --target=i386-pc /dev/sda
Когда используется UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda
Генерируем конфигурацию GRUB:
grub-mkconfig -o /boot/grub/grub.cfg
В выводе команды хотя бы одно ядро Linux должно быть найдено.
Для настройки конфигурации Grub, используется файл /etc/default/grub.

Компиляция стихла, окончен поход,exit
перезагружаем компьютер:
reboot
Удаляем загрузочный носитель.
Добавление учётной записи для повседневной работы:
Login: User Password: (ваш пароль user)
useradd -m -G users,wheel,audio,video -s /bin/bash username
passwd username
Password: (введите пароль для username)
Re-enter password: (повторно введите пароль для подтверждения)
Удаляем tar-архив со stage3
rm /stage3-*.tar.bz2*
Настраиваем сеть.
Просмотр существующих сетевых интерфейсов:
ls /sys/class/net
enp3s0 lo
Открытие /etc/conf.d/net для автоматического получения адреса IP для enp0s3:
nano /etc/conf.d/net
config_enp3s0="dhcp"
Автоматический запуск сетевого подключения при загрузке.
Добавление net.enp3s0 в уровень запуска default:
cd /etc/init.d
ln -s net.lo net.enp3s0
rc-update add net.enp3s0 default
/etc/init.d/net.enp3s0 restart
Для systemd
настройка проводного и беспроводного адаптеров на одной машине:
для проводной сети с простой конфигурацией DHCP
nano /etc/systemd/network/50-dhcp.network
[Match]
Name=enp3s0
[Network]
DHCP=yes
[DHCP]
RouteMetric=10
для беспроводной сети
nano /etc/systemd/network/60-dhcp.wireless.network
[Match]
Name=wlan0
[Network]
DHCP=yes
[DHCP]
RouteMetric=20
Cлужба dhcpcd.service запускает клиент для всех сетевых интерфейсов:
systemctl enable dhcpcd.service
systemctl start dhcpcd.service
Включаем в автозапуск и запускаем следующие службы:
systemctl enable systemd-networkd.service
systemctl start systemd-networkd.service
Чтобы systemd управлял настройками DNS, заменим resolv.conf на символическую ссылку и запустим systemd-resolved:
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service.
systemd-machine-id-setup - Инициализировать идентификатор машины в /etc/machine-id.
Команда systemd-machine-id-setup также влияет на службу systemd-networkd.
Если не запустить эту команду, может произойти странное, например, сетевые интерфейсы не будут работать или сетевые адреса не будут применены.
это набор инструментов, использующих Network Time Protocol. Их цель - поддерживать системные часы в актуальном состоянии.
Устанавливаем пакет программ NTP:
emerge --ask net-misc/ntp
Служба ntp-client используется для однократной синхронизации, обычно во время загрузки. Её цель - помочь с запуском ntpd, так как ntpd изначально ждёт, прежде чем попытаться исправить смещение часов, и может даже отказаться делать это, если смещение слишком велико.
Запуск службы ntp-client запустит синхронизацию только один раз. Затем ожидается, что ntpd будет использоваться для поддержания времени до следующей перезагрузки.
Для запуска команды синхронизации ntpdate вручную:
ntpdate -b -u 0.gentoo.pool.ntp.org
Для запуска ntp-client:
rc-service ntp-client start
systemd:
systemctl start ntpdate.service
Чтобы запустить службу ntpd:
rc-service ntpd start
Чтобы служба ntpd запускалась при загрузке:
rc-update add ntpd default
systemd
Чтобы запустить службу ntpd:
systemctl start ntpd.service
Чтобы служба ntpd запускалась при загрузке:
systemctl enable ntpd.service
emerge --ask vim
Для получения обучающих инструкций набираем:
$ vimtutor
Утилиты необходимые для работы с файловыми системами
VFAT: emerge sys-fs/dosfstools
NTFS: В ядре отключаем поддержку NTFS.
File systems --->
DOS/FAT/EXFAT/NT filesystems --->
< >NTFS file system support
emerge sys-fs/ntfs3g
Btrfs: emerge sys-fs/btrfs-progs
Немного о Btrfs:
Btrfs имеет ряд функций, общих с ZFS.
Имеются и другие функции:
Можно сконвертировать файловые системы ext2, ext3 и ext4 в Btrfs с помощью утилиты btrfs-convert, убедившись, что отмонтирован раздел:
umount <mounted_device>
Проверяем целостность файловой системы с помощью утилиты fsck:
fsck.ext4 -f <unmounted_device>
Конвертируем отформатированное ext* устройство в Btrfs:
btrfs-convert <unmounted_device>
Не забываем отредактировать файл /etc/fstab и изменить значение в колонке файловая система с ext4 на Btrfs
Полезная функция Btrfs это онлайн дефрагментация:
btrfs filesystem defragment -r -v /home
Btrfs поддерживает прозрачное сжатие с помощью алгоритмов zlib, lzo и zstd:
btrfs filesystem defragment -r -v -clzo /home
Можно использовать алгоритм сжатия zlib вместо lzo, zlib более медленный, но имеющий более высокую степень сжатия:
btrfs filesystem defragment -r -v -czlib /home
Обновление дерева Portage:
emerge --sync
Обновление новой версии Portage:
emerge --oneshot portage
Обновление пакетов:
emerge -auvDN world
Не всегда имеется возможность дождаться полной установки и компиляции всех пакетов.
Можно выполнить команду:
emerge -auvDN world; poweroff
После окончания обновления, компьютер выключится сам.
При этом сообщения от Portage теряются. Они могут содержать важную информацию от разработчиков Gentoo.
Данную информацию, можно найти в файле:
less /var/log/portage/elog/summary.log
Чтобы перейти в нижнею часть сообщения, нажимаем на клавиатуре клавишу "End", в верхнею часть, нажимаем "Home", переход по строкам, стрелками вниз - вверх. Для выхода из less, нажимаем клавишу "Q".
Так же установка флага -f позволяет загрузить пакеты без компиляции. В дальнейшем, можно откомпилировать загруженные пакеты в удобное время даже, при отсутствии интернета.
Флаг --emptytree, -e переустанавливает целевые атомы и всё их дерево зависимостей, как будто никакие пакеты в настоящее время не установлены. Рекомендуется с этим флагом запустить флаг --pretend, чтобы убедиться в ожидаемом результате.
После обновления библиотек, старые версии часто сохраняются, по тому что другие пакеты всё ещё создаются для этих библиотек. emerge может решить эту проблему, обновив все эти пакеты, которые построены на основе старой версии. Однако это может иметь нежелательный эффект, например, долгую установку при обновлении библиотек. Таким образом, emerge не обновляет зависимые библиотеки, а вместо этого помещает их в набор: @saved-rebuild.
Проверяем целостность системы, запустив:
revdep-rebuild
Можно выполнить следующую команду, если необходимо очистить старые версии библиотек:
emerge --ask @preserved-rebuild
Некоторые ebuild требуют определённые комбинации USE -флагов.
| Пример: | Описание: |
|---|---|
| REQUIRED_USE="foo? ( bar )" | Если foo установлен, то bar должен быть установлен. |
| REQUIRED_USE="foo? ( !bar )" | Если foo установлен, то bar не должен быть установлен. |
| REQUIRED_USE="foo? ( || ( bar baz ) )" | Если foo установлен, то bar или baz должен быть установлен. |
| REQUIRED_USE="^^ ( foo bar baz )" | Только один из foo, bar или baz должен быть установлен. |
| REQUIRED_USE="|| ( foo bar baz )" | Хотя бы один из foo, bar или baz должен быть установлен (но можно больше). |
| REQUIRED_USE="?? ( foo bar baz )" | Установка необязательна, но только один из foo, bar или baz может быть установлен. |
Программы установленные пользователем, находятся в файле /var/lib/portage/world
Посмотреть список всех файлов,которые были установлены пакетом:
equery files <имя_пакета>
Удаление зависимостей, которые остались после удаления основного пакета:
emerge --deselect <имя_пакета>
CONFIG_PROTECT="-*" emerge --unmerge <имя_пакет>
emerge --depclean
Будьте крайне осторожны с CONFIG_PROTECT="-*", так как она может удалить важные системные настройки, если пакет их использовал. Рекомендуется сначала проверить, какие файлы будут удалены.
Чтобы увидеть список пакетов, которые будут удалены, без самого удаления, выполняем:
emerge --depclean --pretend
сокращённо:
emerge -cp
Это покажет список осиротевших пакетов (зависимостей, которые больше не нужны ни одному установленному пакету из файла @world).
При возникновении проблемы "!!!Problem with sandbox binary. Disabling...", устанавливаем sandbox с переменной:
CFLAGS_x86="-m64" emerge sys-apps/sandbox
Обработка изменений конфигурационных файлов:
etc-update
Сканирование файлов конфигурации ...
Ниже приведён список файлов, которые необходимо обновить.
После файла конфигурации следует список возможных файлов для замены.
1) ...
2) ...
...
Выберите файл для редактирования, введя соответствующий номер.
(не используйте -3, -5, -7 или -9, если вы не знаете, что делать)
(-1 для выхода) (-3 для автоматического объединения всех файлов)
(-5 для автоматического объединения И не использовать 'mv -i')
(-7 для отмены всех обновлений)
(-9, чтобы отменить все обновления И не использовать 'rm -i'):
Для сравнения старого и нового конфига, набираем номер конфигурационного файла.
- - - и + + + соответственно означает что будет удалено, а что добавлено.
После ознакомления нажимаем q для выхода и система предлагает нам несколько вариантов.
Набираем то что нам подходит:
1) - заменит полностью старый конфиг новым,
2) - удалит новый конфиг и оставит старый,
3) - попытается слить 2 конфига в один,
4) - ещё раз покажет различия,
5) - сохранить обновление в качестве примера конфигурации.
Определяем UUID:
blkid
В /etc/fstab заменяем /dev/sdaX на соответсвующий UUID=XXXX....
ОШИБКА: при системе инициализации OpenRC, во время загрузки появляется уведомление типа:
* /etc/init.d/ ... User Runscript, pleas convert to openrc-run, необходимо выполнить следующее:
cd /etc/init.d/
sed -i "s/runscript/openrc-run/" *
При этом нужно быть очень внимательным, так как потом исправить что либо будет очень сложно!
Устанавливаем gentoolkit:
emerge --ask app-portage/gentoolkit
Просматриваем зависимости пакета (от чего зависит он):
equery depends <package_name>
Или более детально:
equery d <package_name>
Это покажет дерево зависимостей, установленные пакеты и USE-флаги.
Поиск пакетов, зависящих от конкретного пакета (кто зависит от него).
Узнать, какие пакеты в системе требуют указанный пакет (обратные зависимости):
equery hasuse <package_name>
или, если нужно найти зависимость по названию в ebuild:
grep -r <package_name> /var/db/pkg/*/*/RDEPEND
Использование qapplet (из app-portage/portage-utils):
qgrep -N <package_name>
ОШИБКА:
There is NOT at least 11520 MiB disk space at "/var/tmp/portage/dev-lang/rust-1.81.0-r100/temp"
*
* Memory or space constraints set in the ebuild were not met!
* The build will most probably fail, you should:
* - enhance the memory (reduce MAKEOPTS, add swap), or
* - add more space
* as required depending on the failed tests.
*
* ERROR: dev-lang/rust-1.81.0-r100::gentoo failed (pretend phase):
* Build requirements not met!
Очищаем репозиторий от неиспользуемых архивов исходного кода и бинарных пакетов используем утилиту eclean
Очищаем директорию архивов исходных файлов:
eclean distfiles
Краткий вариант:
eclean-dist
Очитка директории бинарных пакетов:
eclean packages
Краткий вариант:
eclean-pkg
Для освобождения большего места на диске добавляем опцию --deep: каждый архив исходных файлов или же бинарный пакет, который не соответствует какому-либо "установленному в данный момент" пакету (версия не имеет значения), будет удалён. В данном случае пользователи не защищены от необходимости повторного скачивания, в случае, если они должны понизить версию пакета или переустановить удалённый ранее пакет.
В качестве альтернативы можно использовать сразу две опции: --deep и --package-names. Каждый архив исходных кодов или бинарный пакет, не связанный с сейчас установленным пакетом (версия не имеет значение) будет удалён. С такими опциями также потребуется снова скачать исходные файлы, когда необходимо снова установить ранее удалённый пакет, но, в этом случае, останутся исходные файлы для возможности понижения версии пакета.
Обновляем GCC:
emerge --ask --oneshot sys-devel/gcc
Просматриваем установленные профили:
gcc-config --list-profiles
[1] x86_64-pc-linux-gnu-7.3.0 *
[2] x86_64-pc-linux-gnu-8.2.0
Выбираем необходимый профиль:
gcc-config 2
source /etc/profile
и пересобирём libtool:
emerge --ask --oneshot --usepkg=n sys-devel/libtool
Проверяем номер текущей версии, а затем удаляем старую версию:
gcc --version
emerge --ask --depclean =sys-devel/gcc-7.3.0
Очистка python.
При возникновении ошибки:
Invalid impl in /etc/python-exec/python-exec.conf: python3.6
Очищаем python:
eselect python cleanup
eselect python list
[1] python2.7
[2] python3.9 (fallback)
[3] python3.8 (fallback)
Затем обновляем его:
eselect python update
Switching to python3.9
eselect python list
[1] python3.9
[2] python2.7
[3] python3.8 (fallback)
Добавим мощи, оверлей в зачёт!Репозиторий ebuild–файлов - это файловая структура, которая может предоставить пакеты для установки в системе Gentoo.
Gentoo репозиторий ebuild-файлов содержит ebuild-файлы, которые говорят Portage, как собирать и устанавливать каждый пакет. Ebuild-файлы содержат метаданные, информацию о зависимостях и всё остальное необходимое для работы пакета.
Метаданные содержат название пакета, версию, источник исходных кодов, доступные USE-флаги, лицензию, веб-сайт и т.д. Информация о зависимостях в ebuild-файлах позволяет Portage подтягивать любые другие пакеты, необходимые для сборки и запуска устанавливаемого пакета.
Репозитории и их файлы обычно находятся в /var/db/repos/, но пути к ним конфигурируются в /etc/portage/repos.conf.
Инструмент eselect repository позволяет легко добавлять, отключать, или удалять репозитории ebuild-файлов, сконфигурированные с Portage. Этот инструмент также предоставляет удобный способ перечислять и добавлять доступные репозитории, зарегистрированные на repos.gentoo.org.
emerge --ask app-eselect/eselect-repository
eselect repository может вывести список всех репозиториев с repos.gentoo.org:
eselect repository list
Суффикс * указывает, что этот репозиторий установлен и включён.
Суффикс # указывает, что для этого репозитория необходимо обновить их информацию о синхронизации (путём выключения и включения), или они были настроены пользователем.
Суффикс @ указывает, что такой репозиторий не указан по имени в официальном, опубликованном списке.
Используем опцию -i, чтобы перечислить только сконфигурированные репозитории:
eselect repository list -i
Добавление репозиториев ebuild-файлов с repos.gentoo.org
Синтаксис: enable (<название>|<индекс>)...
eselect repository enable guru
GURU - это официальный репозиторий ebuild-файлов, сопровождаемый совместно пользователями Gentoo, с небольшой помощью от некоторых разработчиков Gentoo. Он хорошо дополняет Gentoo репозиторий, и сопровождающие стремятся поддерживать хорошее качество для предоставляемых пакетов. Существует также список публичных репозиториев на https://repos.gentoo.org/.
Добавление репозиториев.
Синтаксис: add <название> <метод-синхронизации> <адрес-синхронизации>
eselect repository add test git https://github.com/test/test.git
Репозитории могут быть синхронизированы уже после конфигурации:
emaint sync --repo guru
Отключение репозиториев без удаления содержимого
Синтаксис: disable [-f] (<название>|<индекс>)...
eselect repository disable foo bar
Опция -f требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации. Используйте её с осторожностью.
Отключение репозиториев с удалением содержимого.
Синтаксис: remove [-f] (<название>|<индекс>)...
eselect repository remove bar baz
Опция -f требуется для репозиториев, не зарегистрированных на repos.gentoo.org, или без информации о синхронизации. Используем её с осторожностью.
Чтобы установить приоритет для определённого репозитория, изменяем вручную соответствующий раздел repos.conf и устанавливаем для priority = желаемое значение. Чем выше значение, тем выше приоритет:
vim /etc/portage/repos.conf/eselect-repo.conf
[guru]
location = /var/db/repos/guru
sync-type = git
sync-uri = https://github.com/gentoo-mirror/guru.git
priority = 100
Без долгих сборок, прямо из песочницы,Flatpak - это фреймворк для управления пакетами, предназначенный для поддержки изолированных, независимых от дистрибутива бинарных пакетов для настольных приложений Linux. Подобно chroot , Docker и LXD , которые обеспечивают изоляцию преимущественно серверных приложений от базовой операционной системы, Flatpak предоставляет механизм изоляции преимущественно настольных приложений от базовой операционной системы. В сочетании с такими функциями, как systemd-homed, становится возможным разместить пользователя и все его приложения в одном каталоге - $HOME пользователя - таким образом, чтобы обеспечить переносимость между системами с одинаковой архитектурой процессора.
В ядре рекомендуется включить песочницу Landlock (CONFIG_SECURITY_LANDLOCK=y)
Security options --->
[*] Landlock support
(landlock,yama) Ordered list of enabled LSMs
Устанавливаем Flatpak:
emerge --ask sys-apps/flatpak
Все операции с Flatpak можно выполнять от имени пользователя или от имени root. При выполнении от имени пользователя может помочь флаг user, если возникнут проблемы с правами доступа.
Добавляем репозиторий Flathub.
$ flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
В некоторых случаях может потребоваться изменить права доступа к изолированной среде для приложения Flatpak.
Можно использовать графический инструмент Flatseal:
$ flatpak install com.github.tchx84.Flatseal
Запускаем через меню приложений или командой:
$ flatpak run com.github.tchx84.Flatseal
Для установки приложения, например Nheko, выполняем следующую команду:
$ flatpak search Nheko
Получаем идентификатор ID im.nheko.Nheko и устанавливаем приложение:
$ flatpak --user install im.nheko.Nheko
Для запуска приложения используем созданный файл .desktop или выполняем команду:
$ flatpak run im.nheko.Nheko
Для обновления установленных приложений и сред выполнения:
$ flatpak update
Чтобы удалить приложение:
$ flatpak uninstall im.nheko.Nheko
Приложения Flatpak на основе GTK по умолчанию не следуют теме GTK системы. Сначала выясняем, какая тема GTK используется в данный момент, например, Adwaita, а затем устанавливаем её для использования приложениями Flatpak:
$ gsettings get org.gnome.desktop.interface gtk-theme
$ flatpak install flathub org.kde.KStyle.Adwaita
Пингвин в Gentoo суров и смел,"USE=nls unicode" уже установлены ранее.
vim /etc/rc.conf Устанавливаем:
unicode="YES"
В ядре проверяем, а если нет, то включаем:
vim /usr/src/linux/.config
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_UTF8=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_KOI8_R=y
В make.conf устанавливаем:
LINGUAS="ru en"
L10N="ru en en-AU en-CA en-GB en-US en-ZA"
Конфигурация локалей:
Выбираем необходимые локали:
$ strings /usr/lib/locale/locale-archive | less
Открываем /etc/locale.gen
vim /etc/locale.gen
Определяем локали:
en_US
ru_RU
Определяем доступность выбранных локалей:
$ locale -a
запускаем:
locale-gen
Эта программа сгенерирует все локали, которые определены в файле /etc/locale.gen.
Проссматриваем доступные локали:
eselect locale list
Устанавливаем необходимую локаль (ru_RU.UTF-8):
eselect locale set 6
Перезагружаем окружение оболочки:
env-update && source /etc/profile
Устанавливаем шрифты:
emerge terminus-font intlfonts cronyx-fonts kbd
Переменные окружения:
В файле /etc/env.d/02locale прописываем:
LC_ALL="ru_RU.utf8"
LANG="ru_RU.utf8"
перечитываем конфигурацию:
env-update && source /etc/profile
Выбор раскладки клавиатуры:
vim /etc/conf.d/keymaps устанавливаем:
keymap="-u ru"
windowkeys="YES"
extended_keymaps=""
dumpkeys_charset="koi8-r"
fix_euro="NO"
Добавляем /etc/init.d/keymaps в уровень запуска boot:
rc-update add keymaps boot
Перезапускаем раскладку клавиатуры для применения изменений:
rc-service keymaps restart
Консольные шрифты можно посмотреть:
ls /usr/share/consolefonts/
Задаём консольный шрифт:
vim /etc/conf.d/consolefont устанавливаем например:
consolefont="Cyr_a8x16"
после чего добавляем в уровень запуска boot:
rc-update add consolefont boot
* service consolefont added to runlevel boot
Принудительный просмотр русских манов:
$ man -L ru <man page>
Для systemd поверяем список доступных локалей:
localectl list-locales
устанавливаем требуемую локаль:
localectl set-locale LANG=ru_RU.UTF-8
проверяем результат:
localectl | grep "System Locale"
System Locale: LANG=ru_RU.UTF-8
проверяем доступные раскладки для консоли:
localectl list-keymaps
устанавливаем необходимую раскладку для консоли, например:
localectl set-keymap ruwin_alt-UTF-8
проверяем, что раскладка для консоли была установлена:
localectl | grep "VC Keymap"
VC Keymap: ruwin_alt-UTF-8
Консольные шрифты находятся в каталоге /usr/share/consolefonts/.
Выбираем понравившийся шрифт и добавляем его в /etc/vconsole.conf, например:
vim /etc/vconsole.conf
KEYMAP=us
FONT=UniCyr_8x16
Раскладки доступные для сервера X11 можно проверить:
localectl list-x11-keymap-layouts
устанавливаем необходимые раскладки для X11:
localectl set-x11-keymap "us, ru"
проверяем, установленые раскладки для X11:
localectl | grep "X11 Layout"
X11 Layout: us ru
Модель, вариант и опции устанавливаем так:
localectl set-x11-keymap <LAYOUT> <MODEL> <VARIANT> <OPTIONS>
например:
localectl set-x11-keymap us,ru "" "" grp:alt_shift_toggle
Попробуем удалить файл ~/.config/plasma-localerc, выходим из системы и заново заходим в сеанс Plasma.
vim ~/.config/plasma-localerc
[Formats]
LANG=ru_RU.UTF-8
[Translations]
LANGUAGE=ru_RU:en_US
Связь «точка-точка» - правила просты,
Пакет net-dialup/ppp загружен ранее.
В /etc/rc.conf устанавливаем:
vim /etc/rc.conf
rc_depend_strict="YES"
В ядре подключаем:
Device Drivers -->
[*] Network device support -->
<*> PPP (point-to-point protocol) support
<> PPP BSD-Compress compression (NEW)
<*> PPP Deflate compression (NEW)
[*] PPP filtering (NEW)
<*> PPP MPPE compression (encryption) (EXPERIMENTAL) (NEW)
[ ] PPP multilink support (EXPERIMENTAL) (NEW)
<*> PPP over Ethernet (EXPERIMENTAL)
<*> PPP support for async serial ports (NEW)
<*> PPP support for sync tty ports (NEW)
Компилируем ядро.
Добавляем в файл /etc/conf.d/net:
vim /etc/conf.d/net
config_enp3s0="dhcp"
config_ppp0="ppp"
link_ppp0="enp3s0" #(Specify your ethernet interface)
plugins_ppp0="pppoe"
username_ppp0='1234' #(логин сети)
password_ppp0='5678' #(пароль сети)
pppd_ppp0="
noauth
defaultroute
usepeerdns
holdoff 3
child-timeout 60
lcp-echo-interval 15
lcp-echo-failure 3
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp"
rc_net_ppp0_need="net.enp3s0"
Добавляем символическую ссылку в /etc/init.d:
ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
Запускаем PPPoE
/etc/init.d/net.ppp0 start
Для systemd
Создаём файл настроек соединения:
vim /etc/ppp/peers/provider
следующего содержания:
plugin rp-pppoe.so
# rp_pppoe_ac 'имя концентратора доступа'
# rp_pppoe_service 'имя службы PPPoE'
# сетевой интерфейс
enp3s0
name "логин провайдера"
usepeerdns
persist
# раскомментируйте, если вам нужен автодозвон "по требованию"
#demand
#idle 180
defaultroute
hide-password
noauth
Добавляем запись с паролем соединения в /etc/ppp/pap-secrets или /etc/ppp/chap-secrets, в зависимости от типа аутентификации, используемого вашим провайдером.
Если не уверены, можно добавить запись в оба файла, pppd выберет нужный самостоятельно.
логин провайдера * пароль провайдера
Пробуем установить соединение:
pppd call provider
или
pon provider (в данном случае просто pon)
где provider — имя файла настроек, созданного в /etc/ppp/peers.
Чтобы убедиться, что соединение PPPoE установлено, проверяем вывод pppd в системном логе:
journalctl -b --no-pager | grep pppd
Файл настроек /etc/ppp/peers/provider используется по умолчанию.
Если при вызове pppd было указано другое имя файла, вместо явного указания имени файла можно просто добавить символическую ссылку на этот файл:
ln -s /etc/ppp/peers/имя_соединения /etc/ppp/peers/provider
Теперь можно устанавливать соединение одной командой:
pon
Чтобы разорвать соединение, выполняем:
poff имя_соединения
Стена крепка, и трафик под контролем,nftables - это преемник iptables. Он заменяет существующие фреймворки iptables, ip6tables, arptables и ebtables.
Он использует ядро Linux и новую пользовательскую утилиту под названием nft.
nftables обеспечивает слой совместимости для iptables/ip6tables и фреймворка.
Как и в случае с фреймворком iptables, nftables построен на правилах, которые определяют действия. Эти правила прикреплены к цепочкам. Цепочка может содержать набор правил и регистрируется в хуках netfilter. Цепочки хранятся внутри таблиц. Таблица специфична для одного из протоколов третьего уровня. Одно из главных отличий от iptables заключается в том, что больше нет предопределённых таблиц и цепочек.
Пример конфигурации: набор параметров для базовой настройки межсетевого экрана:
[*] Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->
<M> Connection tracking netlink interface
<M> Netfilter nf_tables support
<M> Netfilter nf_tables conntrack module
<M> Netfilter nf_tables log module
<M> Netfilter nf_tables limit module
<M> Netfilter nf_tables masquerade support
<M> Netfilter nf_tables nat module
Дополнительная общая конфигурация: Для объединения правил IPv4 и IPv6 в одну таблицу: CONFIG_NF_TABLES_INET (Если семейство inet не включено, можно использовать только семейства ip и ip6 по отдельности)
<M> Netfilter nf_tables support
[*] Netfilter nf_tables mixed IPv4/IPv6 tables support
Дополнительная необязательная конфигурация: для предварительной фильтрации на основе сетевого устройства требуется поддержка таблиц netdev: CONFIG_NF_TABLES_NETDEV
[*] Netfilter nf_tables netdev tables support
IP: Netfilter Configuration --->
-*- IPv4 nf_tables support
<M> IPv4 packet rejection
<M> IP tables support (required for filtering/masq/NAT)
<M> Packet filtering
<M> REJECT target support
<M> iptables NAT support
<M> MASQUERADE target support
Установите net-firewall/nftables:
emerge --ask net-firewall/nftables
Скрипт инициализации /etc/init.d/nftables поддерживает следующие действия:
save - сохраняет текущий загруженный набор правил в месте, определённом параметром NFTABLES_SAVE, по умолчанию: /var/lib/nftables/rules-save.
reload - загружает текущий загруженный набор правил из NFTABLES_SAVE.
stop - предназначен для вызова при завершении работы системы. Если включен параметр SAVE_ON_STOP, сохраняет набор правил.
start - предназначен для вызова при загрузке системы, загружает набор правил из NFTABLES_SAVE.
clear - очищает текущий загруженный набор правил, эквивалентно nft flush ruleset.
list - отображает список текущих загруженных наборов правил.
Конфигурация доступна в /etc/conf.d/nftables.
Nftables можно запустить при загрузке системы с помощью команды:
rc-update add nftables default
Если после изменения набора правил не выполнить команду /etc/init.d/nftables save вручную, это может привести к загрузке более старого набора правил, если возникнет проблема во время выключения системы и сохранение набора правил не удастся.
Для systemd:
touch /var/lib/nftables/rules-save
nftables-store.service можно использовать для сохранения текущего набора правил, запустив его в любое время. Его также можно включить для сохранения набора правил при завершении работы системы.
nftables-load.service отвечает за загрузку правил при запуске.
systemctl enable --now nftables-store
systemctl enable --now nftables-load
nft -f - можно управлять правилами с помощью файлов, например:
vim ~/nft_start.nft
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Разрешаем трафик локальной петли (нужно для работы софта внутри ПК)
iifname "lo" accept
# Разрешаем уже установленные соединения (ответы от сайтов и т.д.)
ct state established,related accept
# Разрешаем ICMP (пинги) — полезно для диагностики
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
# Открываем все входящие запросы с сервера
iifname "tun0" ip saddr 10.8.1.1 accept
# tcp dport 22 accept
# Всё остальное будет отброшено политикой 'drop'
}
chain forward {
type filter hook forward priority 0; policy drop;
# Домашнему ПК обычно не нужно пересылать трафик через себя
}
chain output {
type filter hook output priority 0; policy accept;
# Исходящий трафик разрешён полностью
}
}
nft -f ~/nft_start.nft
При загрузке правил с помощью nft -f, в отличие от многократного вызова nft в скрипте оболочки, ошибки приведут к тому, что ни одно из правил файла не будет загружено.
Nftables позволяет включать дополнительные файлы и каталоги. Можно создать каталог, например, /etc/nftables.conf.d/, содержащий дополнительные наборы правил для загрузки.
Любой из этих файлов можно сделать исполняемым, если добавить shebang: #! /sbin/nft -f.
Перед загрузкой новых или отредактированных правил проверяем их с помощью nft:
nft list ruleset
nft -c -f ruleset
Выяснение, какие порты прослушиваются:
netstat -tuwpln
Команда netstat признана устаревшей и на смену ей пришла более быстрая и удобная в использовании команда ss.
Если запустить ss без аргументов командной строки или опций, она выведет полный список работающих соединений.
Команда ss (без опций) показывает очень много данных (подробности по всем соединениям, установленным по TCP, UDP и с помощью сокетов Unix), можно отправить вывод этой команды в файл для того, чтобы проанализировать его позже:
ss > ss_output
Выяснение, какие порты прослушиваются:
ss -tuwpln
С помощью grep можно выяснить, какое именно ПО занимается прослушиванием конкретного порта, какой порт прослушивается конкретным ПО и т.д.:
ss -tuwpln | grep "firefox"
Флаги для команды ss:
-h, --help Вывести справку.
-V, --version Вывести версию программы.
-n, --numeric Не раскрывать имена служб.
-r, --resolve Не раскрывать номера адресов/портов.
-a, --all Показывать все сокеты.
-l, --listening Показывать слушающие сокеты.
-o, --options Показывать информацию таймера.
-e, --extended Показывать детальные сведения о сокете.
-m, --memory Показывать использование памяти сокетом.
-p, --processes Показывать процесс, использующий сокет.
-i, --info Показывать внутреннюю информацию TCP.
-s, --summary Выводить сводку. Эта опция не обрабатывает список сокетов, а получает сведения из других источников. Полезно при огромном количестве сокетов, что делает обработку файла /proc/net/tcp слишком долгим.
-4, --ipv4 Показывать только сокеты IP версии 4 (аналогично -f inet).
-6, --ipv6 Показывать только сокеты IP версии 6 (аналогично -f inet6).
-0, --packet Показывать пакетные сокеты.
-t, --tcp Показывать только сокеты TCP.
-u, --udp Показывать только сокеты UDP.
-d, --dccp Показывать только сокеты DCCP.
-w, --raw Показывать только сокеты RAW.
-x, --unix Показывать только сокеты Unix.
-f ТИП, --family=ТИП Показывать только сокеты указанного ТИПА. Поддерживаются следующие типы: unix, inet, inet6, link, netlink.
-A ЗАПРОС, --query=ЗАПРОС Список таблиц сокетов, разделенных запятыми. Поддерживаются следующие идентификаторы: all, inet, tcp, udp, raw, unix, packet, netlink, unix_dgram, unix_stream, packet_raw, packet_dgram.
-D ФАЙЛ Не показывать ничего, вывести необработанные данные о сокетах TCP в ФАЙЛ с учетом фильтров. Если ФАЙЛ указан как -, вывести на стандартный вывод.
-F ФАЙЛ, --filter=ФАЙЛ Прочитать фильтр из ФАЙЛА. Каждая строка ФАЙЛА интерпретируется как отдельная опция командной строки. Если ФАЙЛ указан как -, получить содержимое из стандартного ввода.
FILTER := [ state ФЛАГ_TCP ] [ ВЫРАЖЕНИЕ ] Обратитесь к официальной документации (пакет iproute-doc в Debian) для описания фильтров.
Фильтрация сокетов с использованием состояний TCP, например:
ss -4 state FILTER-NAME-HERE
Где FILTER-NAME-HERE может быть любым из приведённых ниже:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all : все вышеперечисленные состояния;
connected : все состояния, за исключением прослушивания и закрытия;
synchronized : все подключенные состояния, за исключением syn-sent;
bucket : показывать состояния, которые поддерживаются как мини-сокеты, т.е. время ожидания и syn-recv;
big : Противоположно состоянию bucket.
Для очистки всех текущих правил (сделает их пустыми/разрешающими), но оставит сервис работающим:
nft flush ruleset
Это удалит все таблицы, цепочки и правила, что фактически отключит брандмауэр до следующего перезапуска службы или применения правил.
Скрипт, который гарантированно «обнуляет» всё:
#!/bin/bash
# Проверка на root
if [[ $EUID -ne 0 ]]; then
echo "Этот скрипт нужно запускать от root"
exit 1
fi
# Сброс всех правил
nft flush ruleset
# Удаление всех таблиц (опционально)
nft delete table inet filter 2>/dev/null
nft delete table ip filter 2>/dev/null
nft delete table ip6 filter 2>/dev/null
echo "Nftables полностью сброшен"

Николай: Люди тратили уйму своего времени и труда, чтобы создать этот софт и дарят его Вам. Найдите, пожалуйста, немного времени, чтобы прочитать документацию и научиться это использовать!
Николай: Не понравился сайт, хотите научить меня администрировать? Пожалуйста, с удовольствием буду учиться.
Отзывы в Вашем распоряжении!
Николай: Я знаю, у Вас уйма вопросов! На многие из них можете получить ответы прямо сейчас.





