Весь контент Ciko
-
Команда mkdir
Синтаксисmkdir опції директорія директорія - одна або кілька директорій через прогалину, які потрібно створити. Опції-m=MODEабо--mode=MODE Встановлює права доступу для створюваної директорії. СинтаксисMODEтакий же, як у команди chmod -pабо--parents Створити всі директорії, вказані всередині шляху. Якщо якась директорія існує, попередження про це не виводиться. -vабо--verbose Виводити повідомлення про кожну створювану директорію. -Z Встановити контекст SELinux для створюваної директорії за промовчанням. --context[=CTX] Встановити контекст SELinux для створюваної директорії на значенняCTX --help Показати довідку по команді mkdir --version Показати версію утиліти mkdir Приклади використання команди mkdirРозглянемо кілька прикладів використання командиmkdirу Linux. Створення директорійСтворити директорію з ім'ямmydir: mkdir mydirСтворити кілька директорій: mkdir mydir1 mydir2 mydir3Створення директорії із зазначенням відносного шляху: mkdir Downloads/torrentsСтворення директорій, включаючи батьківськіЩоб створити всі директорії, що містяться у дорозі, використовується ключ-p: mkdir -p subdir/somedir/mydirВ результаті будуть створені директорії:subdir,subdir/somedir,subdir/somedir/mydir
-
Як вимкнути системний звук "Біп" (beep)
У ArchLinux, Debian і ще кількох популярних дистрибутивах з робочим столом XFCE є така проблема. Вирішується просто. Відкриваємо термінал, (з-під рута природно) улюбленим редактором створюємо файл: # vim /etc/modprobe.d/nobeep.confДо нього прописуємо такий рядок: blacklist pcspkrЗберігаємо файл, перезавантажуємо комп'ютер.
-
Linux для ігор або чому це вже не жарт
Steam ProtonНайвідоміший інструмент для Linux - Steam Proton . Напевно, багато хто з вас хоча б раз чув про нього. Якщо ні, то Proton (Steam Proton, Valve Proton ) - це шар сумісності для Windows-ігор, який дозволяє запускати їх у системах на базі ядра Linux. Proton розроблений Valve і CodeWeavers як форк популярного інструменту Wine , але включає в себе реалізацію DirectX 9/10/11 (на базі пакету DXVK ) і DirectX 12 (на базі vkd3d ), що працюють через трансляцію викликів DirectX в API Vulkan, надає покращену підтримку дозволів екрана, що підтримуються в іграх. Для збільшення продуктивності багатопотокових ігор підтримуються механізми esync (Eventfd Synchronization) і futex / fsync. Proton інтегрований у клієнт Steam як частину Steam Play. Крім офіційного Steam Proton, існують також його форки, наприклад популярний форк від GloriousEggroll — Proton-GE-CUSTOM GameModeНаступний відомий інструмент – GameMode від компанії Feral Interactive (та, що портувала деякі частини серії GRID, F1, Tomb Raider, XCOM, Total War). По суті це демон (в Linux так називаються аналоги служб Windows) для systemd, який в автоматичному режимі оптимізує ОС (розгін процесора, розгін відеокарти, розстановка пріоритетів процесів і т.д.) GitHub: https://github.com/FeralInteractive/gamemode CoreCTRLCoreCtrl — програма, яка допомагає створювати профілі для різних програм та оптимізує під них обладнання. Підтримується регулювання частоти центрального процесора та відеокарт AMD. Функціоналом дуже нагадує AMD Wattman GitLab: https://gitlab.com/corectrl/corectrl RyzenControllerRyzenController - інструмент оверклокінгу для мобільних процесорів Ryzen з вбудованою графікою. Інтерфейс написаний на Electron та React GitLab: https://gitlab.com/ryzen-controller-team/ryzen-controller MangoHUD, GOverlay, vkBasaltMangoHUD – ще один корисний інструмент. За допомогою даного інструменту під час ігрової сесії ми можемо спостерігати лічильник кадрів за секунду, датчик навантаження на процесор та відеокарту, датчик використання оперативної та відеопам'яті тощо. Також можна увімкнути ведення журналу кадрів і завантажити на FlightlessMango . Завдяки цьому, а також парочці тестів, проведених творцем сайту, ми дізналися, що CS:GO, DOTA 2, Red Dead Redemption 2, Rage 2, DOOM Eternal, Middle-earth: Shadow of Mordor краще працюють з Linux, ніж з Windows GitHub: https://github.com/flightlessmango/MangoHud GOverlay — це проект із відкритим вихідним кодом, метою якого є створення графічного інтерфейсу користувача для конфігурації оверлеїв Vulkan/OpenGL. GitHub: https://github.com/benjamimgois/goverlay vkBasalt – це шар постобробки Vulkan для покращення візуальної графіки ігор. https://www.youtube.com/watch?v=a3IxWCmBIcs GtkStressTesting, GreenWithEnvyGtkStressTesting - системна утиліта призначена для стрес-тесту та моніторингу різних компонентів обладнання, таких як процесор та оперативна пам'ять GitLab: https://gitlab.com/leinardi/gst GreenWithEnvy - інструмент для оверклокінгу відеокарт NVIDIA GitLab: https://gitlab.com/leinardi/gwe JoyShockMapperJoyShockMapper - інструмент для використання 3-осьового гіроскопа в геймпадах DualShock 4, Nintendo Joy-Con controllers, і Nintendo Switch Pro Controller. На даний момент програма для Linux (тільки у рамках Steam Input) недоступна, проте вона на стадії підготовки GitHub: https://github.com/JibbSmart/JoyShockMapper PiperPiper — графічний інтерфейс користувача для налаштування ігрових мишей. Параметри конфігурації включають зміну роздільної здатності (DPI) миші, додавання та видалення профілів, налаштування LED-підсвічування та зміну поведінки кнопок. Github: https://github.com/libratbag/piper openRGBopenRGB — програмний засіб доступний як для Linux, так і для Windows, що прагнуть до централізації керування підсвічуванням Підтримуючі аксесуари: https://gitlab.com/CalcProgrammer1/OpenRGB/-/wikis/Supported-Devices GitLab: https://gitlab.com/CalcProgrammer1/OpenRGB openRazer, polychromatic, RazerGenieopenRazer - проект з реалізації відкритих драйверів для пристроїв Razer на Linux. Варто зазначити, що в openRGB частково включений цей проект, проте за допомогою графічних утиліт через openRazer можна налаштувати не тільки підсвічування, але макроси клавіатури, поведінку кнопок миші, вибрати найбільш підходящий профіль DPI. Підтримка девайсів: https://github.com/openrazer/openrazer#device-support polychromatic - графічний інтерфейс та аплет для openRazer. Дозволяє створювати профілі для конкретних ігор. Github проекту: https://github.com/polychromatic/polychromatic RazerGenie - ще один графічний інтерфейс, на відміну від попереднього, дозволяє краще керувати налаштуваннями миші. Написаний на С++ та фреймворку Qt Github проекту: https://github.com/z3ntu/RazerGenie CadmusCadmus - аплет для видалення стороннього шуму в реальному часі при використанні мікрофона, що базується на RNNoise від Xiph Github проекту: https://github.com/josh-richardson/cadmus NoiseTorchNoiseTorch – програма для придушення шумів мікрофона у реальному часі. Сумісний з OBS, Mumble, Discord та деякими іншими програмами GitHub проекту: https://github.com/lawl/NoiseTorch Oversteer і pyLinuxWheelOversteer і PyLinuxWheel - аналогічні проекти з управління гоночними кермами Logitech GitHub Oversteer: https://github.com/berarma/oversteer GitLab PyLinuxWheel: https://gitlab.com/OdinTdh/pyLinuxWheel Корисні програмиDiscord – відомий геймерам месенджер з можливістю відеозв'язку та демонстрації екрану. Він також є і для Linux Open Broadcaster Software (OBS) — програма з відкритим вихідним кодом для запису відео та трансляцій, використовується часто професійними стрімерами. Є версія для Linux Minigalaxy - клієнт GOG для Linux з оновленням ігор та підтримкою DLC, написаний на Python з дуже простим і зрозумілим інтерфейсом GameHub - клієнт для ігор, який підтримує бібліотеки Steam, GOG, Humble Bundle. Додані шари сумісності для ігор з Windows - Wine та Proton HeroicGamesLauncher - ігровий лаунчер, який синхронізується з бібліотекою Epic Games. Служить графічним інтерфейсом Legendary — консольного клієнта Epic Games. Інтерфейс розроблений професійним дизайнером і написаний на Electron та React Корисні сайтиProtondb.com — база даних, яка допомагає гравцям визначати, чи запуститься гра для Windows на їхньому комп'ютері. Є рейтинг працездатності ігор та статистика, що вивантажується у файлі JSON Flightlessmango.com - сайт проекту MangoHUD. На цьому сайті автор та гравці викладають логи ігрових сесій, що суттєво допомагає визначити наскільки комфортно проводитиме час у тій чи іншій грі. Gamingonlinux.com — сайт з новинами про ігри та статистику, що оновлюється щомісяця. Радар релізів Feral Interactive - розділ сайту компанії Feral Interactive, що займається портуванням ігор під Linux (macOS та для мобільних пристроїв). Судячи з портфелю тайтлів, випущених цим гігантом для Linux, сайт заслуговує на вашу увагу
-
Lolcat та neofetch
Для тих хто любить спостерігати висновок неофетч при запуску терміналу, є можливість прикрасити похмуру сталість одноманітного стилю не тільки neofetch , але і будь-якої іншої інформації використовуючи "райдугу" lolcat . Приклад установки в Archlinux : $ sudo pacman -S lolcat Приклад установки в Ubuntu : $ sudo apt install ruby #якщо ruby не встановлено $ gem install lolcat # apt install lolcat – теж може спрацювати Після встановлення можна приступати до застосування. Для автоматизації процесу додамо пару рядків у кінець файлу bashrc (відкрийте улюбленим редактором): $ vim ~/.bashrc neofetch | lolcat Зберігаємо файл та виходимо. Все, можна запустити термінал і насолоджуватися ненудним виглядом коханого неофетча. PS Також lolcat можна застосовувати до будь-якого висновку в терміналі, додаючи після введеної команди, прямий сліш "|" та саму команду "lolcat" . Пара прикладів: $ inxi-F | lolcat $ df-Th | lolcat $ cowsay "blah, blah, blah..." | lolcat
-
Як розпакувати tar bz2 xz gz архіви в Linux
Розпакування tarДля розпакування архіву у форматі.tarу поточну директорію виконайте команду: tar xvf archive.tarРозпакування tar.bz2, tar.bzip2, tbz2, tb2, tbztar xvjf archive.tar.bz2Розпакування tar.xz, txztar xvJf archive.tar.xzРозпакування tar.gz, tgztar xvzf archive.tar.gzРозпакування tar.lzmatar --lzma -xvf archive.tar.lzmaПояснення опційx - Розпакувати архів. v - Verbose-режим (виведення на екран додаткової інформації під час розпакування). f - Виконати розпакування архіву з файлу. j - викликати bzip2 для розпакування архіву. z - викликати gzip J - викликати xz Розпакування у певну директоріюЩоб розпакувати архів у певну директорію використовується опція-Cабо--directory, наприклад: tar xvf archive.tar -C /to/directoryПримітка: директорія має існувати. ВисновокМи розглянули базовий набір команд, який можна використовувати для розпакування різних видів tar-архівів. Існують також деякі типи архівів, але вони менш поширені.
-
Оптимізація GNU / Linux
У мережі досить багато статей на тему прискорення роботи ГНУ систем, починаючи від самого ядра Linux, закінчуючи розгоном заліза. Але не всім вони підійдуть через різноманітність: Сімейств дистрибутивів; Оточень та ПЗ; Систем ініціалізації; Устаткування. Зустрічається налаштування ядра через /etc/default/grub , операції з монтуванням носіїв в /etc/fstab , поради щодо поводження з ФП, ОЗУ, ZRAM/ZSWAP/ZCACHE, оптимізації користувацьких оточень та ПЗ. Писати в все цілком . . . можна окремий довідник. Але через озвучені вище причини, не всі стануть у нагоді, не факт, що працюватимуть, а ефект від інших може бути не помітний зовсім. Тому тут я зібрав деякі варіанти. ПЕРЕД ПОДІБНИМИ ДІЯМИ НАСТОЙЛИВО РЕКОМЕНДУЮ СТВОРИТИ ТОЧКУ ВІДНОВЛЕННЯМожливо, не варто застосовувати все одночасно, щоб була можливість виявити можливі неполадки. Оскільки більшість систем використовують systemd, для них актуальні команди systemd-analyze — дізнатися час завантаження kernel - час завантаження ядра, userspace - час на завантаження всього іншого systemd-analyze blame - подивитися які саме служби завантажуються і скільки часу на це потрібно s ystemd-analyze plot > graph.svf — команда створить svf файл із графіком, відкрийте його у браузері. Далі варто відключити непотрібні служби, список сервісів і опис можна знайти в мережі, як і інші команди для systemd. Щоб це зробити, потрібно ввести sudo systemctl disable <ім'я_служби.service> У мережі є статті з оптимізації systemd і належних їй служб з описом, але я не використовую цей твір, тому про нього не писатиму. Питання використання служб індивідуальне. Прискорення завантаження ядра LinuxПараметри завантаження ядра знаходяться у файлі /etc/default/grub. Зміни потрібно внести до значення рядка GRUB_CMDLINE_LINUX_DEFAULT (значення у дужках, після знака = ) quiet – тихий варіант завантаження, виводить мінімум інформації rootfstype =ext4 - в яку ФС відформатовано корінь (у моєму випадку btrfs) libahci.ignore_sss=1 - прискорює завантаження жорстких дисків raid=noautodetect - відключення raid selinux =0 - система контролю доступу, яка не потрібна на домашньому ПК plymouth.enable=0 - вимикає заставку lpj=0000000 - дозволяє задати константу loops_per_jiffy, щоб її ядро щоразу не обчислювало . Значення індивідуальне для кожного комп'ютера. Щоб дізнатися, потрібно відкрити ще один термінал і там ввести «dmesg | grep 'lpj='». Отримане значення скопіювати. У підсумку, рядок матиме приблизно такий вигляд: GRUB_CMDLINE_LINUX_DEFAULT="quiet rootfstype=ext4 libahci.ignore_sss=1 raid=noautodetect selinux=0 plymouth.enable=0 lpj=12053560" Для вказівки кореневого розділу бажано не використовувати UUID, швидше за все, якщо написати прямо. Додайте в той же файл рядок: GRUB_DISABLE_LINUX_UUID=true Після цієї операції необхідно оновити конфігурацію GRUB sudo update-grub Установка ПЗPreload — це демон, який зчитує статистику додатків, що часто використовуються, і зберігає їх в кеші, завдяки чому вони швидше запускаються. sudo apt-get install preload За замовчуванням можна залишити налаштування у файлі /var/lib/preload/preload.state інформація про роботу preload. cycle — як часто preload отримуватиме від системи дані про використовувані програми та бібліотеки. halflife – як часто preload скидатиме стару інформацію. minsize — обмеження розміру програми чи бібліотеки, яку preload буде обробляти. Я у себе не знайшов цієї утиліти. Тому про її роботу та налаштування рекомендую почитати в мережі, є матеріали Prelink перетворює бібліотеки, що розділяються, і виконувані файли таким чином, щоб зменшити кількість необхідних перерозподілів пам'яті при вирішенні залежностей і, таким чином, прискорює запуск програм, дозволяє прописати зв'язки з бібліотеками безпосередньо в виконуваний файл, що прискорить запуск програми. Виконується це без перекомпіляції програм. sudo apt install prelink У процесі роботи накопичується всіляке сміття. Це сміття варто періодично чистити. Я сам постійно використовую Stacer та Bleachbit . Перша вміє багато чого, а другу програму вважаю за обов'язкову для будь-якої ОС. Плюс використовую команди для видалення залежностей-сиріт. Однак, все ж таки можна встановити для очищення autoclean і autoremove . sudo apt autoclean sudo apt autoremove Останнім залишу блок для оптимізації робіт заліза. Сюди варто включити операції з SSD/HDD та ОЗУ, розгін ОЗУ/ відеокарти , кастомні ядра, налаштування роботи ЦП та відеокарти. Для налаштування роботи nVidia утиліта GWE та рідна NVIDIA SERVER SETTING, яка встановлюється разом із драйвером, для АМД – CoreCtrl, яка, до того ж, дозволяє змінити режим роботи процесора. Для роботи з SSD потрібно виставити прапори /etc/fstabssd, discard (Defaults – цей прибираємо) – для btrfs. lazytime (Defaults, noatime - цей прибираємо) - для Ext4 Якщо ви вже виставили прапори discard у вашому Fstab, то вмикати TRIM за розкладом не треба! На рахунок TRIM для SSD досить неоднозначна річ. Зустрічав суперечливі думки в мережі: і що ця утиліта вже вбудована в ядро, що вона не працює за умовчанням належним чином, потрібно прописувати самому fstab. Нічого стверджувати не буду. Прочитав з цього приводу статтю, що SSD самі справляються із прибиранням сміття, треба лише тримати там досить не розміченого простору, порядку 10-15%. Власне, на цьому я зупинився. Відключення захисту від уразливостей у процесорах IntelSpectre/Meltdown/Zombieload aka MDS (серйозно знижують продуктивність) /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="nopti pti=off spectre_v2=off l1tf=off nospec_store_bypass_disable no_stf_barrier Оптимізація дискових операційЖорсткий диск – це найвужче місце будь-якої системи, не тільки GNU/Linux. Жорсткий диск є найповільнішим пристроєм у комп'ютері. Якщо встановлено SSD, це вирішує багато проблем, але дещо все одно залишається. Першою оптимізацією є зміна розмірів дискового кешу. При операціях копіювання або переміщення дані спочатку записуються в оперативну пам'ять, а потім купою скидаються на диск. В результаті, особливо при нестачі пам'яті, це може призвести до сильних затримок. Виправити ситуацію допоможе зменшення дискового кешу до розумної величини. Також варто зменшити кеш файлових систем. Відкриваємо /etc/sysctl.conf і в кінець додаємо рядки: vm.dirty_bytes = 2097152 vm.dirty_background_bytes = 2097152 vm.vfs_cache_pressure = 50 Прошу звернути увагу на останній рядок: цей параметр відповідає за кешування об'єктів файлової системи на оперативну пам'ять. При значенні 0 об'єкти не вивільняються і так і залишаються в оперативній пам'яті. Чим більше значення, тим частіше ядро буде проводити "зачистку" оперативної пам'яті. Тому якщо у вас оперативної пам'яті менше 2 ГБ, то залиште значення 50 , щоб скоротити кількість дискових операцій у розділі підкачування. Це також корисно якщо у вас SSD. Але якщо у вас більше 2 ГБ оперативної пам'яті, і звичайний жорсткий диск, то виставте значення цього параметра на 1000. Це дозволить агресивніше кешувати дискові операції, тим самим підвищивши швидкодію при достатній кількості оперативної пам'яті. За промовчанням значення цього параметра дорівнює 100.
-
Як встановити різні оточення робочого столу в Ubuntu і похідних
GNOMEsudo apt install ubuntu-desktopЧистий GNOME без фірмової теми Ubuntu: sudo apt install vanilla-gnome-desktopСхоже, інтерфейс GNOME, орієнтується на пристрої з сенсорними екранами: величезні значки і спливаючі меню, список програм, що розгортається, чимось нагадує Launchpad на macOS. Unitysudo apt install ubuntu-unity-desktopUnity – оболонка робочого столу для GNOME. Це не абсолютно нове середовище робочого столу. Оболонка робочого столу – інтерфейс, який ви бачите. Unity буде використовувати ті ж програми та бібліотеки GNOME, що використовуються зараз. Наприклад, GNOME shell – ще одна оболонка для GNOME. KDE Plasmasudo apt install kubuntu-desktopKDE Plasma - мабуть, найпросунутіша оболонка робочого столу з усіх. При цьому вона ще й дуже гарна. Для KDE розроблено безліч тем, сторонніх розширень і віджетів (тут вони називаються плазмоїдами). Xfcesudo apt install xfce4З оформленням від розробників Xubuntu: sudo apt install xubuntu-desktopСередовище робочого столу, що найбільш налаштовується. У ній можна налаштувати все від і до. Багато хто обходить цю оболонку стороною, а дарма: її можна зробити дуже красивою, і при цьому вона буде спритною і реагуватиме на дії моментально. LXDEsudo apt install lxdeЦе графічне середовище пожертвувало красою заради оптимізації та швидкодії. LXDE своїм зовнішнім виглядом скидається на старі версії Mac OS X і працює навіть на дуже стародавніх і повільних комп'ютерах. LXQtsudo apt install lubuntu-desktopLXDE, написана на тулкіті Qt. Виглядає красивіше ніж LXDE, стиль схожий на стиль з KDE Plasma. Трохи важче, ніж сама LXDE. MATEsudo apt install ubuntu-mate-desktopНе всім нововведення у GNOME 3 видалися доречними, тому спільнота створила MATE – форк класичного GNOME. Деякі програми були відгалужені та перейменовані. Budgiesudo apt install ubuntu-budgie-desktopОболонка Budgie була розроблена командою Solus Linux, але згодом з'явилася і в інших дистрибутивах. Фішка цього середовища - зручна панель Raven з правого боку екрану, що управляє плеєром, повідомленнями, календарем та налаштуваннями системи. Deepin Desktop Environmentsudo add-apt-repository ppa:ubuntudde-dev/stable sudo apt install ubuntudde-ddeDDE - найкрасивіша, стильна та симпатична оболонка. Складається враження, що розробники DDE схрестили Windows, MacOS та Linux. Вона не блищить достатком налаштувань, але вони тут і не дуже потрібні. Cinnamonsudo apt install cinnamon-desktop-environmentПісля виходу GNOME 3 команда Linux Mint втратила впевненість у майбутньому свого дистрибутива. GNOME 3 не відповідала завданням розробників і не вписувалася в ідеї Linux Mint. Тоді було вирішено доопрацювати GNOME Shell до стану, придатного для використання у дистрибутиві. Результатом цього стали "Mint GNOME Shell Extensions" (MGSE). Але оскільки GNOME Shell розвивався в зовсім іншому напрямку, життєздатність MGSE була під сумнівом. Тому був розроблений Cinnamon – відгалуження від GNOME Shell із збереженням класичного інтерфейсу. UKUIsudo apt install ubuntukylin-desktopЩе одна гарна оболонка. Дуже схожа на DDE. З мінусів можна відзначити, що з мов, що підтримуються, тільки англійська і китайська. Спочатку була форком MATE, але починаючи з третьої версії була переписана на Qt і набула гарного зовнішнього вигляду. Pantheonsudo add-apt-repository ppa:elementary-os/stable sudo apt-get install elementary-desktopPantheon - середовище, створене спеціально для elementaryOS. Дуже схожа на старі версії macOS. Використовує кілька власних додатків, серед яких магазин програм AppCenter, провідник Pantheon Files і док-панель Plank. Openboxsudo apt install openboxOpenbox – не зовсім середовище робочого столу, а віконний менеджер. Спочатку Openbox походить від Blackbox 0.65.0, але потім повністю переписаний мовою Сі і з версії 3.0 не базується на програмному коді Blackbox. Але, незважаючи на це, розробники залишилися вірними мінімалістичності «боксового» стилю. Панель та додатки доведеться доустановити самостійно. Fluxboxsudo apt install fluxboxFluxbox виготовлений на базі Blackbox v.0.61.1 і схожий на нього - ті ж кольори, розташування вікон і повна сумісність тем і стилів. Зовні Fluxbox є чистим робочим столом з панеллю інструментів, на якій знаходяться назва робочого столу, годинник і список запущених програм. За замовчуванням Fluxbox не має своїх іконок на робочому столі, але їх можна додати за допомогою програми idesk. Window Makersudo add-apt-repository ppa: profzoom / wmaker sudo apt install wmakerWindow Maker зарекомендував себе як легкий віконний менеджер, що легко настроюється. Window Maker був написаний спочатку Alfredo Kojima, бразильським програмістом для GNUstep. Після 6 років стагнації (реліз 0.95.0 був випущений у 2006 році) на початку 2012 року новим складом команди розробників, які вирішили відновити розвиток проекту, було випущено нову версію Window Maker. Enlightenmentsudo add-apt-repository ppa:niko2040/e19 sudo apt-get install enlightenmentEnlightenment — віконний менеджер з відкритим кодом для X Window System. Назва перекладається «просвітлення» і часто скорочується до однієї літери E.
-
Графічний інсталятор Calamares
Calamares – це інструмент встановлення дистрибутивів ГНУ/Лінукс. Він прагне бути легким, зручним, красивим, прагматичним, несхожим та незалежним від дистрибутива. Гнучкий у налаштуваннях, простий і зрозумілий для користувача установник ОС, який не належить до однієї команди. Це яскравий приклад філософії проекту ДНУ, коли розробники різних команд спільними зусиллями створили один продукт. Зараз він використовується в десятках дистрибутивів та ще кілька тих, хто близький до цього. Calamares підтримується командою Calamares. Більшість з них також є розробниками KDE, роблять свій внесок і розробники BBQLinux, Fedora, KaOS, Kubuntu, Manjaro, Maui, Netrunner та OpenMandriva. Програма має свій сайт зі скріншотами, описом, вікі, посиланнями на вихідні, інструкцією з використання та іншим. Більшість написана на C++ з використанням Qt як інтерфейсу користувача, має у складі кілька ліцензій. Для розширення вже є готові модулі, але можна написати свої. Творці дистрибутива можуть змінювати зовнішній вигляд установника, постачати процес ілюстраціями та поясненнями, розширити процес встановлення за рахунок додавання нових модулів. Яскравий приклад — АркоЛінукс, перед встановленням якого до стандартних кроків додається вибір ядер, оточення, програмного забезпечення для спілкування, мультимедіа, емулятори терміналу, файлові менеджери та інше, що змішує між собою робочі середовища, а користувачеві дозволяє налаштувати робоче оточення під себе. Різні редакції мають відмінні один від одного установки установки. Установник є повністю графічним, використовується при встановленні в Live режимі (тобто з Робочого столу), підтримує різні мови, дозволяє задати для системи мову та часовий пояс з вибором на карті конкретного міста, створити таблиці розділів, помегабайтно розмітити диски/ССД, для кожного розділу задати мітку, ФС та ключі, встановити завантажувач користувача та рута, в кінці виводить список змін, які будуть зроблені під час встановлення. Поряд зі шкалою прогресу написано назву дії, що виконується, що дозволяє відстежити операцію, що призводить до переривання.
-
Підсистема ініціалізації системиD. Недоліки systemD
ПопередникДо systemD в Linux використовувався SysVinit, який остаточно сформувався в AT&T UNIX System V (звідси і назва). SysVInit (або просто init) працює як демон (комп'ютерна програма в UNIX-подібних системах, що запускається самою системою і працює у фоновому режимі без прямої взаємодії з користувачем, а не те що можна подумати), запускається відразу після ядра і має PID (ідентифікатор процесу) 1, init відповідає виконують перевірку та монтування файлових систем, запуск інших демонів та інше, що відбувається під час запуску системи. НедолікиДуг Макілрой, один із засновників традиції Unix, узагальнив філософію цих систем таким чином: «Філософія Unix свідчить: Пишіть програми, які роблять щось одне та роблять це добре. Пишіть програми, які працювали б разом. Пишіть програми, які підтримували б текстові потоки, оскільки це універсальний інтерфейс». systemD не дотримується першого пункту, оскільки крім ініціалізації надає: запуск сервісів за розкладом (замінює cron); сокет-активація служб (замінює inetd); робота з апаратним сторожовим таймером (замінює watchdog); зміна кореня (замінює chroot); автомонтування томів та мережевих ресурсів (замінює mount & fstab); journalctl - служба журналування; systemd-analyze - аналіз швидкості запуску служб; systemd-boot - UEFI завантажувач (заміна grub). Через таку велику кількість функцій systemD часом працює нестабільно, має заплутаний код, який складно перевірити на безпеку і підвищує споживання ресурсів усієї системи (після міграції з Debian 10 на Devuan 3 (systemD → SysVInit) споживання ресурсів впало з 600 мб до 300). Крім цього при використанні систем systemD особисто я відчував проблему з тим, що через деякий час використання система починала дуже довго вимикатися. Поспілкувавшись з другом, з'ясував, що це не тільки в мене. В інтернеті легко можна знайти й інші проблеми. ВикористанняПідсистема була запропонована як зовнішня залежність для GNOME 3.2, GNOME версії 3.8 і вище не можна встановити без systemD. systemD використовується в таких дистрибутивах: Debian GNU/Linux 8+ RHEL 7+ CentOS 7+ Ubuntu 15.10+ Fedora 15+ Mageia 2 Mandriva 2011 Rosa openSUSE 12.1+ Arch Linux 12.11 Sabayon 13.08 Дистрибутиви, в яких система D доступна: Debian GNU/Linux 7 Gentoo АльтернативиОдними з найпопулярніших альтернатив у сфері систем ініціалізації є: SysVInit Runit OpenRC Upstart S6 та інші менш відомі Також існують дистрибутиви, що постачаються без systemD: Devuan — форк Debian із SysVInit за замовчуванням. AntiX — форк Debian із SysVInit або runit на вибір. Artix - форк Arch Linux з трьома системами на вибір: OpenRC, Runit і S6. Gentoo Void Linux Всі *BSD системи та інші менш відомі.
-
Порівняння файлових систем Linux: Btrfs та Ext4
BtrfsФайлова система, яка активно використовує метадані у своїй роботі, що прискорює процес, але при втраті метаданих губляться і дані. При копіюванні дані не записуються повністю, запису підлягає лише змінена частина. Через принцип роботи добре підходить для створення знімків. Управління томами та стиснення даних вже містяться у ФС, тому не потрібно встановлення додаткового ПЗ. Сама ФС була розроблена в 07 році з прицілом на сучасні пристрої, містить оптимізації для роботи з SSD, процеси виявлення та виправлення помилок, підтримується дефрагментація та дедуплікація в реальному часі ( Дедуплікація - процес стиснення за рахунок видалення дублікатів файлів, що не використовуються ). Формат зберігання даних вже заморожено, а це основа ФС, але кодова база розробляється. Періодично покращення з'являються і в самому ядрі, над покращенням працюють різні великі компанії. Файлова система Btrfs дуже цікава та перспективна. Ext4Мабуть, найвідоміша і найпоширеніша ФС, яка використовується за замовчуванням у більшості дистрибутивів. Найбільш стабільна, оскільки розвиток належить ще у минулому столітті, планомірний розвиток з Ext > Ext2 > Ext3. Використовує у роботі журналування, що дає велику надійність для файлів, але знижує швидкість. Якщо з'являється помилка, ФС повертається до попередньої версії з журналу. Завдяки журналу навіть при збої запису ФС залишається в безпеці. У Ext4 було додано дефрагментація у часі. Не дивлячись на поважний вік все ще розробляється. Розробники планують змусити ФС працювати з контрольними сумами в автоматичному режимі та покращити квоти, перекласти їх на ядро, це покращить продуктивність. Отримала у своє розпорядження різноманітні сучасні механізми для покращення продуктивності, включаючи роботу з SSD, але структура застаріла. Журнал, який використовується в роботі і часто зустрічається в описі - принцип роботи, при якому транзакції записуються спочатку в журнал, а зміна/запис відбувається вже після. ІншіУ цьому матеріалі я не згадав про такі варіанти як ZFS, ReiserFS, JFS та F2FS. ZFS спочатку була відкрита, розвивалася в Sun Microsystems, але потім викуплена Oracle, її код закритий, а форк останньої доступної версії випущений як OpenZFS. Офіційно у ядрі відсутня, тому що її ліцензія конфліктує з GPL, а Л. Торвальдс висловлюється проти. Але розробники дистрибутивів можуть забезпечити підтримку через шар сумісності. По ряду параметрів схожа на Btrfs, яка поширюється під вільною ліцензією і офіційно підтримується в ядрі. Всі вони або не краще, або гірше за якими параметрами, ніж вищезгадані. Таке різноманітне ФС створює «Проблему вибору», на практиці відмінності між ними не помітні. Тому для мене висновок залишився тим самим: Ext4 для дисків – старої технології запису, Btrfs для SSD – сучасніших пристроїв.
-
Базове налаштування Arch Linux
Дано: Ryzen 2600x, 16Gb RAM, 1660Ti, SSD 512Gb Завдання: встановити Arch без підриву області нижче за поперек Рішення: ALG - Arch Linux GUI Плюси: редакції на будь-який смак (Plasma, Gnome, Xfce, Cinnamon, MATE, i3, BSP); iso-образи оновлюються щомісяця (не доведеться встановлювати 1Gb+ оновлень за чистої установки); велика пакетна база, включаючи AUR; завжди свіжі пакети. Мінуси: може зламатися після чергового оновлення, але це не точно. Базова установкаВибираємо iso-образ (pure – це мінімальні редакції). Я вибираю Пікачу, тобто. pure Mate. На системах із UEFI необхідно відключити safe boot. Завантажуємося в режимі лайв і запускаємо установник - Calamares. Вибираємо мову, метод введення – все як у звичайному Calamares. Розмітку диска можна виконати заздалегідь або безпосередньо в установщику, якщо вибрати режим ручної розмітки. Я використовую таку: 300 мб fat32 - efi-розділ (не забуваємо поставити галочку boot і точку монтування '/boot/efi' ), 25 гб ext4 - root (точка монтування '/' ), все інше ext4 - home (точка монтування '/home' ). Efi розділ можна і менше (але не менше 32 мб) - установник лаятиметься, але продовжить установку, а потім навіть завантажить систему. Створюємо користувача, обзиваємо систему. Встановлюємо. На виході отримуємо встановлений Arch за 3-5 хвилин. Базове налаштуванняТ.к. я встановив pure-редакцію, отримав чистий дистрибутив (при повній установці в деяких редакціях досить просто оновити систему). Обновляємо дзеркала через термінал: sudo pacman -SyОновлюємо keyring та систему: sudo pacman -S archlinux-keyring sudo pacman -SyuПри встановленні Firefox встановляться і необхідні системні шрифти, тому обов'язково перезавантажуємо систему після. sudo pacman -S firefox rebootДодаткові шрифти з емодзі та символами: sudo pacman -S noto-fonts-emoji noto-fonts ttf-liberationВстановлюємо звукову систему: sudo pacman -S pulseaudioYAY - AUR-помічник: sudo pacman -S --needed git base-devel (выбираем все - all)cd /home/'имя пользователя'/Downloads git clone https://aur.archlinux.org/yay.git cd yay makepkg -siPamac - керування пакетами через графічний інтерфейс: yay -S pamac-aur-git (выбираем libpamac)У налаштуваннях Pamac не забуваємо включити підтримку AUR. Що може стати в нагодіДо встановлення пакетівМожна встановити наступні пакети, використовуючи термінал, або Pamac Відеодрайвер для вбудованого відеоядра від Intel: sudo pacman -S xf86-video-intelВідеодрайвер для Nvidia: sudo pacman -S nvidiaGreen With Envy - управління відеокартою від Nvidia: yay -S gweBluetooth: sudo pacman -S bluemanдодаємо в автозапуск blueman та активуємо bluetooth модуль systemd sudo systemctl enable bluetooth rebootЗручний файловий менеджер із збереженням сеансів та вкладок Spacefm: yay -S spacefmПростий графічний Firewall sudo pacman -S gufwРозмітка дисків: sudo pacman -S gpartedНалаштування екрана входу в систему: sudo pacman -S lightdm-gtk-greeter-settingsMate-Tweak: yay -S mate-tweakТема піктограм Papirus: sudo pacman -S papirus-icon-themeТема оформлення Plata: yay -S plata-themeТема курсору Breeze: yay -S breeze-default-cursor-themeПростий графічний редактор Pinta: sudo pacman -S pintaВідеоплеєр Celluloid: sudo pacman -S celluloid Установка Steam: необхідний multilib репозиторій: sudo pluma /etc/pacman.confВидаляємо #: #[multilib] #Include = /etc/pacman.d/mirrorlistЗберігаємо та оновлюємо дзеркала: sudo pacman -SyВстановлюємо Steam: sudo pacman -S steam (выбираем nvidia-tools либо amd)Mangohud та Goverlay: yay -S goverlayGamemode: sudo pacman -S gamemodeВикористання: gamemoderun 'ім'я програми/ігри' gamemoderun steamДодаткове налаштуванняЗабираємо Screen Tearing (розриви зображення) На вбудованому відеоядрі від Intel: sudo pluma /etc/X11/xorg.conf.d/20-intel.confSection "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" Option "TripleBuffer" "On" EndSectionНа відеокартах Nvidia: sudo pluma /etc/X11/xorg.conf.d/00-ldm.confSection "Device" Identifier "NVIDIA Card" Driver "nvidia" VendorName "NVIDIA Corporation" Option "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" Option "UseNvKmsCompositionPipeline" "Off" Option "TripleBuffer" "On" EndSectionЗабираємо стрибаючий рівень гучності у браузерах sudo pluma /etc/pulse/daemon.confвидаляємо; і міняємо no на yes ; flat-volumes = noВиправляємо гаснучий екран додаємо в автозавантаження xset s 00Автологін sudo mkdir /etc/lightdm/lightdm.conf.d sudo nano /etc/lightdm/lightdm.conf.d/12-autologin.conf[SeatDefaults] autologin-user=ваш логинБазові компоненти для збирання пакетів із вихідних джерел sudo pacman -S gcc cmakeРосійська/Українська локалізація sudo nano /etc/locale.genВидаляємо # у рядку #ru_RU.UTF-8 UTF-8 Либо #ru_UA.UTF-8 UTF-8Генеруємо локаль sudo locale-genВстановлюємо її як системну sudo localectl set-locale ru_RU.UTF-8 либо sudo localectl set-locale ru_UA.UTF-8 rebootПідсумокПісля установки Arch на старенький ноутбук машинка ожила. Думав, що буде багато метушні з його налаштуванням, але ні. Проблема була тільки з блютус, але швидко вирішилася активацією модуля в systemd. На основному ПК підвищилася чуйність, що не може не тішити.
-
Як прискорити збирання пакетів з AUR
Нам необхідно відредагувати конфігураційний файл утиліти makepkg , яка використовується для збирання пакетів AUR. Тут є два варіанти: Відредагувати загальний файл /etc/makepkg.conf Або відредагувати файл ~/.makepkg.conf (або створити його у вашій домашній директорії, якщо його немає). У файл потрібно додати рядок: MAKEFLAGS="-j4"Де -j4 означає, що при складанні пакетів буде використовуватися 4 ядра вашого процесора. Відповідно, замість " 4" ви можете поставити своє число. Якщо ви хочете використовувати всі ядра, то вказуємо: MAKEFLAGS="-j$(nproc)"$(nproc) буде автоматично замінено на максимальну кількість ядер вашого процесора.
-
База знань з Void Linux
Void Info BaseОтже, посилання: Void Info Base Void.tar.gz Просто розпакуйте архів за посиланням для перегляду у браузері: tar -x -f Void.tar.gzСклад
-
Проста установка Gentoo
Етап I: ПідготовкаЯкщо Ви хочете встановити Gentoo з готової системи, то відразу переходьте до етапу "Установка" Встановити Gentoo можна як з Live-CD диска, так і вже встановленої системи. У цілому нині, відмінності між цими шляхами мінімальні. Щоб розпочати, достатньо зайти на сторінку завантажень та завантажити образ Live-CD. Вибираємо образ для власної архітектури. На stage3, поки що, не звертаємо жодної уваги. Далі слід записати щойно завантажений образ на флешку. У лінуксі можна скористатися командою dd if=/home/$USER/install-amd-minimal-*.iso of=/dev/sdX bs=4M && syncДе sdX - цільова флешка та образ лежить у корені поточного користувача. Далі слід перезавантажитись і завантажитись із свіжозаписаної флешки. Вітаю, ви готові до встановлення. Етап II: Встановлення базової системиЗараз Ви знаходитесь в Live-оточенні. Можна сказати, це система, що має всі необхідні компоненти для установки системи. Тепер слід розмітити диски. Робіть це на власний розсуд. Я, наприклад, роблю це так: /dev/sda1: 2G /dev/sda2: 8G /dev/sda3: решта простору, btrfs Особисто я проводжу розмітку через програму cfdisk, вона є в Live-CD. Після цього слід відформатувати розділи: mkfs.fat -F 32 /dev/sda1 mkswap /dev/sda2 swapon /dev/sda2 mkfs.btrfs /dev/sda3 Далі потрібно налаштувати дату та час системи. Щоб перевірити ці параметри, потрібно ввести команду: dateЯкщо час встановлено неправильно, варто змінити його: date MMDDhhmmYYYY MM – місяць, DD – день, hh – годинник, mm – хвилини, YYYY – рік. Створюємо директорію /mnt/gentoo і переходимо до неї. Зараз нам потрібно завантажити stage3 архів. Це можна зробити за допомогою псевдографічного браузера links links https://www.gentoo.org/downloads/mirrors/Перейдіть до каталогу releases > amd64 > autobuilds та виберіть потрібний архів. Або Ви можете завантажити його за допомогою wget. Тепер архів треба розпакувати. tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-ownerНалаштуємо параметри компіляції. nano /mnt/gentoo/etc/portage/make.confТут слід додати -march=native в COMMON_FLAGS , цей параметр вказує компілятор на те, для якої архітектури потрібно збирати пакети. Також потрібно створити змінну MAKEOPTS MAKEOPTS="-j5" Цифра після j у кожного своя, можна виставити кількість ядер процесора + 1. Також можна вказати параметр CPU_FLAGS_X86 CPU_FLAGS_X86=" aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 " Набір інструкцій можна дізнатися за допомогою пакета cpuid2cpuflags . Щоб встановити його, зробіть таке: emerge cpuid2cpuflagsДалі обов'язково копіюємо налаштування мережі, без цього в системі не працюватиме мережа. cp --dereference /etc/resolv.conf /mnt/gentoo/etc/Тепер монтуємо необхідні файлові системи: mount --types proc /proc /mnt/gentoo/proc mount --rbind /sys /mnt/gentoo/sys mount --make-rslave /mnt/gentoo/sys mount --rbind /dev /mnt/gentoo/dev mount --make-rslave /mnt/gentoo/dev Якщо установка проходить з іншої системи, слід прописати наступне: test -L /dev/shm && rm /dev/shm && mkdir /dev/shm mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm Наступним кроком ми переходимо до ізольованого оточення. chroot /mnt/gentoo /bin/bash source /etc/profile export PS1="(chroot) $PS1" # опциональная команда, изменяет строку приглашения.Тепер можна створити необхідні директорії boot, home (якщо потрібно) тощо. mkdir boot homeМонтуємо розділи: mount /dev/sda1 boot Монтуйте, у разі потреби, home та ін. Тепер слід виконати команду emerge-webrsyncЦя команда зніме зліпок репозиторію Gentoo. Якщо під час процесу відбуваються якісь помилки, перевірте системну дату та підключення до інтернету. Далі можна поновити пакети. Якщо ви встановили свіжий stage3 архів, це необов'язково. emerge --sync -qКлюч -q (--quiet) зменшує рішення на консоль для роботи emerge. Оновлюємо "світ" emerge --ask --verbose --update --deep --newuse @world emerge -qavuDN @world # та же команда, но корочеТепер слід вибрати профіль ( профайл ) системи. root # eselect profile list Available profile symlink targets: [1] default/linux/amd64/17.1 * [2] default/linux/amd64/17.1/desktop [3] default/linux/amd64/17.1/desktop/gnome [4] default/linux/amd64/17.1/desktop/kde Залежно від того, яке оточення встановлюватимете, вибирайте потрібний профіль. Якщо хочете встановити оточення, якого немає в списку, вибирайте профіль desktop. Ну і якщо хочете максимального контролю за системою, залиште профіль за замовчуванням. eselect profile set nДе n – номер профілю. Далі потрібно знову оновити "світ" emerge -qavuDN @worldТепер починається найцікавіше – налаштування змінної USE. Це найпотужніша змінна, доступна для користувача в Gentoo. USE прапори можуть бути глобальними та локальними. Як випливає з назви, глобальні застосовуються для всієї системи, локальні – для конкретних пакетів. Поки що настроїмо глобальні. Відразу раджу поставити пакет gentoolkit. За допомогою команди equery u <ім'я пакета> можна переглянути USE-прапори для конкретного пакета. Дуже корисна річ, рекомендую запам'ятати, замінює багаторазове читання wiki. Глобальні USE налаштовуються у файлі /etc/portage/make.conf USE="X -gnome -kde gtk -qt5 networkmanager dbus -elogind -systemd jpeg"Приклад змінної. Знак мінус перед прапором вказує, що пакети потрібно збирати без підтримки прапора. Розберемо ці прапори. X — включає пакети підтримку xorg -gnome; -kde; -qt5 - Вимикають підтримку gnome, kde, qt5 відповідно. і таке інше. emerge --info | grep ^USEТаким чином можна переглянути поточні USE-прапори, встановлені в системі. Локальні прапори встановлюються у файлах директорії /etc/portage/package.use/ Наприклад: #/etc/portage/package.use/networkmanager net-misc/networkmanager -modemmanager Прапор -modemmanager вимикає підтримку сім-карт і тд. Саме для пакета networkmanager. Ви можете налаштувати змінну ACCEPT_LICENSE # /etc/portage/make.conf ACCEPT_LICENSE="*"У такий спосіб можна позбутися повідомлень про ліцензії від portage. Задаючи таке значення змінно, ми приймаємо будь-які ліцензії пакетів. Якщо Вас не мучать з цього приводу жодних сумнівів, можете сміливо робити. Налаштуємо локальний час: echo "Europe/Moscow" > /etc/timezoneУ /usr/share/zoneinfo/ Ви можете побачити список усіх доступних часових поясів. emerge --config sys-libs/timezone-dataПереналаштуємо пакет timezone-data . Налаштовуємо локалі. nano /etc/locale.gen en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8 locale-gen eselect locale list ... eselect locale set nВибираємо необхідну локаль. У файлі /etc/conf.d/consolefont CONSOLEFONT="cyr-sun16"Для підтримки російського шрифту у консолі. env-update && source /etc/profileПерезавантажуємо оточення. Далі починається найскладніше - конфігурація та складання ядра. Але, оскільки ці процеси різні різних машинах, то скористаємося автоматичної конфігурацією. Але про це згодом. emerge --ask sys-kernel/gentoo-sourcesЗавантажуємо вихідники ядра. Можете так само завантажити вихідні джерела zen-ядра, xanmod і тд. emerge --ask sys-kernel/genkernelВстановлюємо genkernel для конфігурації ядра. На цьому етапі слід редагувати /etc/fstab Додаємо до нього: /dev/sda1 /boot vfat defaults 0 2Тепер запускаємо конфігурацію та складання: genkernel all Запасіться терпінням, це не найшвидший процес. Встановлюємо файли прошивки emerge --ask sys-kernel/linux-firmwareТепер відкриваємо /etc/fstab та редагуємо його під свої потреби, у мене вийшло так /dev/sda1 /boot ext2 defaults,noatime 0 2 /dev/sda2 none swap sw 0 0 /dev/sda3 / btrfs noatime 0 1Редагуємо /etc/conf.d/hostname . Значення вказуємо будь-яке hostname="gentoo"Встановимо NetworkManager, увімкнемо його emerge -q networkmanager rc-update add networkmanager bootВідредагуємо /etc/hosts 127.0.0.1 gentoo.homenetwork gentoo localhostНалаштовуємо пароль root passwdЯкщо вимоги до паролю здаються дуже завищеними, редагуємо файл /etc/security/passwdqc.conf min=1,1,1,1,1Тепер потрібно встановити пакети для роботи з файловими системами emerge sys-fs/dosfstools emerge sys-fs/btrfs-progs emerge sys-fs/e2fsprogsДалі налаштовуємо завантажувач Тут нічого не описуватиму, ставте потрібний завантажувач для потрібного типу системи. Можу порекомендувати bios, refind, systemd-boot. Виходимо з оточення, перезавантажуємося exit cd umount -l /mnt/gentoo/dev{/shm,/pts,} umount -R /mnt/gentoo rebootЯкщо система завантажилася, то вітаю, Ви щойно встановили Gentoo! Не так страшно, здавалося, чи не так? Але це не кінець, ми продовжуємо. Етап III: Налаштування системиПісля перезавантаження ми опиняємось у робочій системі. Якщо Ви хочете встановити графічне оточення, читайте далі. Спочатку можна створити користувача. useradd -m -G wheel,audio,video <имя пользователя> passwd <имя пользователя>Ключ -m створить директорію користувача /home -G включить користувача до зазначених груп. wheel - Група, що дозволяє виконувати дії з sudo. passwd - задаємо пароль користувачеві Далі відкриваємо файл /etc/make.conf Тут потрібно створити змінну VIDEO_CARDS і надати їй знання. radeon noveau — для відеокарт nvidia, не маю досвіду з ними, але цей драйвер завжди підходить. amdgpu intel radeonsi Наприклад, VIDEO_CARDS="amdgpu radeon radeonsi"Також вказати змінну INPUT_DEVICES INPUT_DEVICES="synaptics libinput"Змінна вказує на драфвер для пристроїв введення для Xorg. Збираємо драйвера emerge --pretend --verbose x11-base/xorg-driversАх, так! Тепер можна видалити сміття з диска. rm /stage3-*.tar.*Встановлюємо xorg-server emerge --ask x11-base/xorg-serverТепер xorg встановлено, і ми можемо встановити якесь оточення. Я розгляну такі: KDE Plasma XFCE4 GNOME Якщо потрібно щось інше – шукайте в хендбуку. Plasma: Насамперед ви можете вибрати спеціальний профіль для KDE, але це не обов'язково. Створюємо файл /etc/portage/package.use/plasma-meta kde-plasma/plasma-meta <use флаги>Доступні прапори можете побачити у wiki або за командою equery u plasma-meta. Раджу увімкнути прапор sddm, він одразу встановить дисплейний менеджер. Виставляєте потрібні прапори, збираєте. Скажу відразу, Plasma збирається досить довго, тож потерпіть. Якщо під час складання portage на щось скаржиться, то дочитайте статтю до кінця, там я розповім, що робити, якщо пакетний менеджер лається. XFCE4: Мій підхід такий, якщо я встановлюю пакет і він вимагає виправлення USE-прапорів для декількох пакетів, то я створюю для них один файл. Створюємо /etc/portage/package.use/xfce app-text/poppler -qt5 xfce-base/xfce4-meta <флаги>Прапори дивіться так само, як і з KDE. XFCE4 Gentoo Wiki Збираєте пакунки. Встановлюємо дисплейний менеджер. Я вибираю Lightdm . emerge lightdm display-manager-initНалаштовуємо /etc/conf.d/display-manager CHECKVT=7 DISPLAYMANAGER="lightdm" Включаємо ДМ rc-update add display-manager default rc-service display-manager startGNOME: Прочитайте wiki , там розкажуть набагато краще за мене. GNOME краще працює з systemd, але я розповідаю, як налаштувати систему з OpenRC. В ідеалі, Ви маєте повністю робочу ОС із підключенням до мережі та графічним оточенням. Думаю, що на цьому можна закінчити. Знизу Ви можете побачити коротке підбиття підсумків та корисні команди. ДодатокРобота з пакетами emerge <пакет> - встановлення пакету emerge --unmerge <пакет> - видалення пакету emerge -avuDN @world - оновлення emerge --sync - синхронізація з репозіорієм layman -a <оверлей> - додавання оверлея layman -d <оверлей> - видалення оверлея layman -L - перелік оверлеївОверлєї - сторонні репозиторії, щось схоже на AUR. emerge laymanДля їх встановлення layman. І найважливіше - що робити, якщо portage скаржиться на щось. Для початку, не панікуйте та уважно прочитайте виведення програми. Постарайтеся просто зрозуміти, що не так, за необхідності скористайтесь перекладачем. Якщо осмислення не допомогло, читайте цей розділ допоможе. Тут можна докладно почитати про USE-прапори ПідсумокМи встановили Gentoo Linux. Принаймні я сподіваюся, що ця стаття може бути хоч чимось корисною. І пам'ятайте: Gentoo складна лише вперше, далі простіше. Якщо ви зрозумієте, що Вам потрібно від системи, працювати не так страшно. На закінчення скажу, що встановлюючи Gentoo, ви йдете на шлях червоноока (жарт) і на вас чекають муки (теж блазень ... хоча, вперше все -таки чекають). Успіхів тим, хто хоче встановити цю систему. HANDBOOK
-
Як оформити KDE у стилі GNOME (панелі + лаунчер)
ПанельСпершу треба створити нову панель. Для цього потрібно натиснути ПКМ по вже існуючій, далі вибрати "Додати панель" та вибрати пункт "Пуста панель" Нижня панельАле насамперед налаштуємо нижню панель. Мені більше подобається коли вона не ховається, але якщо вам потрібно це просто поставте автоприховування, якщо потрібен док - Latte до ваших послуг Додамо роздільник, потім плазмоїд "Панель завдань (тільки значки)". Далі викачуємо віджет Launchpad Plasma (можна зробити налаштування, я викрутив непрозорість на 100). Потім знову роздільник. Можна додати додатковий віджет. Я додав на початок перемикання робочих столів і віджет "Command Output" з командою echo $"BTW, I use Linux" Верхня панельЯкщо вона не верхня, просто зайдіть в режим редагування, затисніть кнопку "Край екрану" і перетягніть її вгору Поставимо висоту панелі на 35-36. Далі додамо меню програм. Мені більше подобається класичне, тож я додам його. Завантажуємо плазмоїд "Window Title". Додаємо його. Потім роздільник, годинник, знову роздільник та системний лоток. Верхня панель готова. Лаунчер Лаунчер з усіма програмами ми вже додали, але в оригінальному Gnome в лаунчері видно ще всі відкриті програми. Для цього є ефект KWin, але, додаючи через налаштування, не можна вказати клавішу Meta на цей ефект. Тому скористаємося командою: kwriteconfig5 --file ~/.config/kwinrc --group ModifierOnlyShortcuts --key Meta "org.kde.kglobalaccel,/component/kwin,,invokeShortcut,ExposeAll" && qdbus org.kde.KWin /KWin reconfigureВона додасть у файл шляхом ~/.config/kwinrc рядок, який додасть комбінацію клавіш на Meta і перезавантажить WM KWin. Після цього все одразу запрацює PS. З виходом KDE 5.24 можна замінити слово ExposeAll на назву нового ефекту KWin "огляд" (на "Overview")
-
Зміна теми курсору в LightDM
Всім доброго часу доби, сьогодні я розповім про вирішення однієї проблеми з LightDM, яку багато хто ігнорує, а саме незграбний чорний курсор на екрані входу. Насправді ж вирішується це досить просто, але пряме і легке рішення на просторах інтернету мені знайти не вдалося, або радять копатися в "index.theme", або робити якусь складну і незрозумілу нісенітницю... І більшість, напевно, змирилися з цим (наприклад, у більшості дистрибутивів ця проблема з коробки) або зовсім відмовилися від L. Рішення я викопав з голови на кшталт «перевірю, а раптом». Заздалегідь скажу для тих, хто не в курсі: $ - команда від звичайного користувача # - команда від суперкористувача Власне, у вас повинні бути встановлені кастомні курсори в дистрибутиві, якщо такі є - йдемо далі: Оскільки LightDM-GTK-Greeter-Settings нам не дозволяє налаштовувати курсори, редагуватимемо конфіг, але нічого складного в цьому немає. Зробити це можна двома способами: 1. Через сам термінал маючи привілеї суперкористувача. 2. Використовуючи GUI через будь-який текстовий редактор з правами рут. Хід виконання: 1. Використовуючи термінал. Для початку створимо копію конфіга, для цього виконаємо: $ cp /etc/lightdm/lightdm-gtk-greeter.conf /удобный/для/вас/каталог/lightdm-gtk-greeter.confПісля чого, додамо рядок в кінець файлу, що вказує на назву теми курсору, але обов'язково в системний конфіг "/etc/lightdm/lightdm-gtk-greeter.conf", а бекап про всяк випадок: # echo "cursor-theme-name = название-темы" >> /etc/lightdm/lightdm-gtk-greeter.confЗверніть увагу, що назва теми - назва папки, в якій лежить сама тема, і вона повинна бути встановлена в " /usr/share/icons" . Наприклад, у мене тема "vimix white cursors", папка з темою називається "Vimix-white-cursors", і вона була скопійована у вказаний вище шлях, тому моя команда виглядає так: # echo "cursor-theme-name = Vimix-white-cursors" >> /etc/lightdm/lightdm-gtk-greeter.conf2. Використовуючи GUI. Копіюємо конфіг за допомогою провідника (по дорозі "/etc/lightdm/lightdm-gtk-greeter.conf") / терміналу (команда вище) у зручне для вас місце. Відкриваємо наш файл з правами адміністратора, можна зробити також через консоль, або просто перейти шляхом який зазначений вище і відкрити через той же Kate (в KDE), але для прикладу візьму "Mousepad", тому що є користувачем XFCE, і введу наступну команду: # mousepad /etc/lightdm/lightdm-gtk-greeter.confПісля чого додаємо в кінець рядок " cursor-theme-name = назва-теми " і зберігаємо. Якщо все зробили правильно, логінімся заново (або перезапускаємо пристрій) і бачимо нормальний курсор замість стандартного сокирного. Мені не давала спокою така проблема, хоч вона й не критична, але мозолить око. Можливо, ця статейка допоможе і вам у разі потреби. Результат проробленого заскринив за допомогою " lightdm --test-mode ", попередньо встановивши потрібний для цього пакет " xorg-server-xephyr ", але назва може відрізнятися залежно від його назв у репозиторіях дистрибутивів, я все робив на Arch Linux. Команда установки: # pacman -S xorg-server-xephyrКому цікаво, ось мій конфіг (для розуміння того, як це працює): [greeter] theme-name = Qogir-dark icon-theme-name = Qogir-dark background = /usr/share/backgrounds/wallpapers/LakeSideView.jpg indicators = ~clock;~spacer;~power;~separator font-name = Clear Sans Medium, Medium 10 xft-antialias = true xft-dpi = 96 xft-rgba = rgb xft-hintstyle = hintfull cursor-theme-name = Vimix-white-cursors
-
Налаштування сервера XMPP Prosody. Як перестати користуватися пропрієтарними месенджерами
ПередмоваЯкщо вам раптом захотілося перестати користуватися пропрієтарними месенджерами типу Telegram, або просто подивитися як це працює, то можете скористатися цією інструкцією. За гайдом можна налаштувати власний сервер XMPP Prosody на Ubuntu 20.04, з веб-версією та закритою реєстрацією, аудіо та відео викликами. Паролі, де вони будуть потрібні, обов'язково потрібно записувати собі, щоб їх не забувати, краще використовувати менеджер паролів Keepass, а щоб простіше генерувати їх, можна встановити pwgen і запускати його командою: pwgen -1 64 В інтернеті є безліч гайдів з налаштування Prosody, але оскільки деякі сайти поступово чи різко вмирають – зайвим не буде. Після налаштування можна перевірити свій сервер на https://compliance.conversations.im – результат має бути 100%, тобто дана конфігурація сервера повністю відповідає сучасним баченням необхідних XEP для роботи з XMPP. Залізна сторона питання - сервер їсть в районі 30-70мб ОЗУ на 30-100 користувачів, тобто для сім'ї та друзів вам вистачить навіть найдешевшої VPS або можете тримати хост вдома, якщо є білий IP. Незважаючи на висловлювання про давність XMPP як технології та перевитрату ресурсів, трафіку це все споживає мало, працює стабільно навіть у 2G мережі, що загалом радше добре, ніж погано. Якщо у вас щось не вийшло, чи потрібні якісь пояснення – пишіть у коментарях, обов'язково відповім. Налаштування домену у реєстратораДля початку нам потрібно прописати DNS записи для домену у вашого реєстратора домену 4 А-записи: conference proxy pubsub upload2 SRV записи: _xmpp-client._tcp.example.com. example.com. 5 0 5222 _xmpp-server._tcp.example.com. example.com. 5 0 52692 TXT запису: _xmppconnect "_xmpp-client-websocket=wss://example.com/xmpp-websocket" _xmppconnect "_xmpp-client-xbosh=https://example.com/http-bind"NGINX+модуліДалі додамо репозиторій Prosody в систему, щоб завжди мати свіжу версію серверної частини: визначаємо дистрибутив та додаємо репозиторій Prosody echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/prosody.list sudo wget https://prosody.im/files/prosody-debian-packages.key -O/etc/apt/trusted.gpg.d/prosody.gpg sudo apt updateі все, тепер Prosody встановлюватиметься з репозиторію розробників. Встановлення NGINX та модуль завантаження файлів: sudo apt install nginx libnginx-mod-http-perlСтворимо технічні домени та заповнимо: mkdir /var/www/tech chown -R www-data:www-data /var/www/tech sudo nano /etc/nginx/sites-enabled/example.com ---здесь и далее, после nano вставляем нижеидущий код server { server_name example.com; location / { root /var/www/tech; #proxy_pass http://localhost:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_buffering off; # proxy_protocol: on; tcp_nodelay on; } } location /http-bind { proxy_pass http://localhost:5280/http-bind; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_buffering off; tcp_nodelay on; } location /xmpp-websocket { proxy_pass http://localhost:5280/xmpp-websocket; proxy_http_version 1.1; proxy_set_header Connection "Upgrade"; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_read_timeout 900s; } location /register_web { proxy_pass http://localhost:5280/register_web; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_buffering off; tcp_nodelay on; auth_basic "Private area"; auth_basic_user_file /var/www/protect/.htpasswd; } location /web { proxy_pass http://localhost:5280/conversejs; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_buffering off; tcp_nodelay on; } }Технічні домени: upload sudo nano /etc/nginx/sites-enabled/upload.example.com server { listen 80; server_name upload.example.com; root /upload; location / { perl upload::handle; } } pubsub sudo nano /etc/nginx/sites-enabled/pubsub.example.com server { listen 80; server_name pubsub.example.com; root /var/www/tech; index index.html; location / { try_files $uri $uri/ =404; } }proxy sudo nano /etc/nginx/sites-enabled/proxy.example.com server { listen 80; server_name proxy.example.com; root /var/www/tech; index index.html; location / { try_files $uri $uri/ =404; } }conference sudo nano /etc/nginx/sites-enabled/conference.example.com server { listen 80; server_name conference.example.com; root /var/www/tech; index index.html; location / { try_files $uri $uri/ =404; } }Створюємо пароль для закритої реєстрації користувачів: perl -le 'print crypt("пароль_для_регистрации", "любые_символы_для_хэширования")'Далі записуємо згенерований пароль та вписуємо його у /var/www/protect/.htpasswd у форматі login:password mkdir /var/www/protect sudo nano /var/www/protect/.htpasswd login:passwordПідключаємо модуль upload для NGINX: mkdir /upload chown -R www-data:www-data /upload/ mkdir -p /usr/local/lib/perl wget -O /usr/local/lib/perl/upload.pm https://git.io/fNZgLДодамо модуль у конфіг: sudo nano /etc/nginx/nginx.conf perl_modules /usr/local/lib/perl; perl_require upload.pm; client_max_body_size 4096m;Впишемо пароль у конфіг perl: sudo nano /usr/local/lib/perl/upload.pm CTRL+W пишем external_secret ENTER и вписываем пароль $external_secret = 'ПАРОЛЬ'Перезапускаємо NGINX та перевіряємо його роботу: sudo systemctl restart nginx.service sudo systemctl status nginx.serviceЯкщо стартанув без помилок тиснемо CTRL + C і їдемо далі Сертифікати Let's Encrypt+БДUPDATE: на сьогоднішній день сертбот поставляється через snap, версія на пітоні вважається застарілою, тобто вам потрібно встановити snap і certbot, далі отримати сертифікати на 5 доменів, які нижче за інструкцією https://certbot.eff.org/instructions?ws=nginx&os=ubuntu sudo apt install python3-certbot-nginx certbot --nginx --rsa-key-size 4096 -d example.com certbot --nginx --rsa-key-size 4096 -d upload.example.com certbot --nginx --rsa-key-size 4096 -d conference.example.com certbot --nginx --rsa-key-size 4096 -d proxy.example.com certbot --nginx --rsa-key-size 4096 -d pubsub.example.comПісля цього можна зайти на домени та подивитися, чи працюють сертифікати Далі встановлюємо базу даних та редагуємо конфіг: sudo apt install postgresql postgresql-contrib sudo nano /etc/postgresql/14/main/postgresql.conf и там вписываем listen_addresses = '127.0.0.1'(увага, версія Postgesql може бути інша, від цього залежить розташування конфіга в цифрі, замість 14 може бути наприклад 10 або 16) Перезапускаємо БД: sudo systemctl restart postgresql.serviceСтворюємо користувача БД: su - postgres createuser --pwprompt prosodyuserСтворюємо саму БД: psql и вставляем это CREATE DATABASE prosodyuser OWNER prosodyuser;Виходимо з БД \q Установка Prosodysudo apt install prosody lua-event lua-dbi-postgresqlВстановлюємо модулі: (У версії 12 модулі начебто ставляться за умовчанням, але я не розбирався в таких тонкощах) cd /opt sudo apt install mercurial hg clone https://hg.prosody.im/prosody-modules/ prosody-modules chown -R prosody:prosody /opt/prosody-modules Створимо директорію для PID файлу: mkdir /var/run/prosody chown -R prosody:prosody /var/run/prosodyСтворюємо ключ Діффі-Хелмана: cd /etc/prosody/certs/ openssl dhparam -out dh-2048.pem 2048 chown prosody:prosody dh-2048.pem chmod u=rw,go= dh-2048.pemВстановимо пакет для імпорту сертифікатів Prosody: sudo apt install lua-secТепер переходимо до настроювання конфіга самого Prosody: sudo nano /etc/prosody/prosody.cfg.luaІ туди вставляємо наступний конфіг: pidfile = "/var/run/prosody/prosody.pid"; ---администраторы сервера--- admins = { "user@example.com" } ---Отключаем регистрацию через клиенты--- allow_registration = false ---Хранить всё в БД--- default_storage = "sql" sql = { driver = "PostgreSQL"; database = "prosodyuser"; host = "127.0.0.1"; port = 5432; username = "prosodyuser"; password = "ПАРОЛЬ_ОТ_ПОЛЬЗОВАТЕЛЯ_БД"; } sql_manage_tables = true ---Сертификаты--- certificates = "/etc/prosody/certs" ---http http_host = "127.0.0.1" http_ports = { 5280 } https_ports = { } http_interfaces = { "127.0.0.1" } trusted_proxies = { "127.0.0.1" } ---Методы шифрования--- ssl = { --key = "/etc/prosody/certs/example.com.key"; --certificate = "/etc/prosody/certs/example.com.crt"; options = { "no_sslv3", "no_sslv2", "no_ticket", "no_compression", "cipher_server_preference", "single_dh_use", "single_ecdh_use" }; ciphers="EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:AES256-GCM-SHA384"; protocol = "tlsv1_1+"; dhparam = "/etc/prosody/certs/dh-2048.pem"; } ---Обязательное шифрование Клиент сервер и Сервер и сервер c2s_require_encryption = true; s2s_require_encryption = true; s2s_secure_auth = true; ---Модули--- plugin_paths = { "/opt/prosody-modules/" } ---Глобальные модули--- modules_enabled = { -- Wichtige Module "roster"; "saslauth"; "tls"; "dialback"; "disco"; -- Empfohlene Module "private"; "profile"; "offline"; "admin_adhoc"; "admin_telnet"; --"http_files"; "legacyauth"; "version"; "uptime"; "time"; "ping"; "register"; "posix"; "bosh"; "announce"; -- "proxy65"; "pep"; "smacks"; "carbons"; "blocklist"; "csi"; "csi_battery_saver"; "mam"; "lastlog"; "list_inactive"; "cloud_notify"; "compat_dialback"; "throttle_presence"; "log_auth"; "server_contact_info"; "websocket"; "bookmarks"; "privacy_lists"; --"pubsub"; "filter_chatstates"; "vcard_legacy"; "pinger"; -- "turncredentials"; "http_upload_external"; "register_web"; "http_altconnect"; "conversejs"; "turn_external"; }; ---Выключаем логи--- log = { --debug = "/var/log/prosody/debug.log"; --info = "/var/log/prosody/info.log"; --warn = "/var/log/prosody/warn.log"; --error = "/var/log/prosody/error.log"; } ---Настройка архива сообщений, можно выставить в днях, или отключить вовсе--- default_archive_policy = true; archive_expires_after = "1d"; ---EXTERNAL HTTP UPLOAD--- http_upload_external_base_url = "https://upload.example.com/" http_upload_external_secret = "ПАРОЛЬ_ОТ_UPLOAD" http_upload_external_file_size_limit = 536870912 --4Gb ---шаблон для веб регистрации--- register_web_template = "/etc/prosody/register-templates/Prosody-Web-Registration-Theme" ---Websocket--- consider_websocket_secure = true; --cross_domain_websocket = true; ---настройки веб клиента--- conversejs_options = { debug = false; view_mode = "fullscreen"; } conversejs_tags = { -- Load libsignal-protocol.js for OMEMO support (GPLv3; be aware of licence implications) [[<script src="https://cdn.conversejs.org/3rdparty/libsignal-protocol.min.js"></script>]]; } ---cross_domain_bosh = true; consider_bosh_secure = true; ---TURN STUN для звонков--- turn_external_host = "example.com" turn_external_port = 3478 turn_external_secret = "ПАРОЛЬ" contact_info = { abuse = { "mailto:user@example.com", "xmpp:user@example.com" }; admin = { "mailto:user@example.com", "xmpp:user@example.com" }; feedback = { "mailto:user@example.com", "xmpp:user@example.com" }; sales = { "mailto:user@example.com", "xmpp:user@example.com" }; security = { "mailto:user@example.com", "xmpp:user@example.com" }; support = { "mailto:user@example.com", "xmpp:user@example.com" }; }; ---domain--- c2s_direct_tls_ports = { 5223 } c2s_direct_tls_ssl = { certificate = "/etc/prosody/certs/example.com.crt"; key = "/etc/prosody/certs/example.com.key"; } VirtualHost "example.com" http_host = "example.com" http_external_url = "https://example.com/" authentication = "internal_hashed" Component "conference.example.com" "muc" name = "example.com chatrooms" restrict_room_creation = "local" muc_room_default_public = false muc_room_default_members_only = true muc_room_default_language = "ru" max_history_messages = 500 modules_enabled = { "muc_mam", "vcard_muc", "muc_cloud_notify"; } muc_log_by_default = true disco_items = { { "conference.example.com", "example.com MUC" }; } Component "pubsub.example.com" "pubsub" Component "proxy.example.com" "proxy65" proxy65_acl = { "example.com" } Після зміни конфігу перезапускаємо Prosody: sudo systemctl restart prosody.service sudo systemctl status prosody.serviceІмпортуємо сертифікати, які створили за допомогою Let's Encrypt: sudo prosodyctl --root cert import /etc/letsencrypt/liveСтворюємо веб-інтерфейс для реєстрації: mkdir /etc/prosody/register-templates/ cd /etc/prosody/register-templates git clone https://gitlab.com/mimi89999/Prosody-Web-Registration-Theme.gitНалаштування дзвінківУстановка Coturn для дзвінків через Conversation та Dino sudo apt install coturnДалі правимо конфіг: sudo nano /etc/turnserver.conf use-auth-secret static-auth-secret=ПАРОЛЬ_ДЛЯ_КОТЮРНА realm=example.com # VoIP traffic is all UDP. There is no reason to let users connect to arbitrary TCP endpoints via the relay. no-tcp-relay # don't let the relay ever try to connect to private IP address ranges within your network (if any) # given the turn server is likely behind your firewall, remember to include any privileged public IPs too. denied-peer-ip=10.0.0.0-10.255.255.255 denied-peer-ip=192.168.0.0-192.168.255.255 denied-peer-ip=172.16.0.0-172.31.255.255 # special case the turn server itself so that client->TURN->TURN->client flows work allowed-peer-ip=10.0.0.1 # consider whether you want to limit the quota of relayed streams per user (or total) to avoid risk of DoS. user-quota=12 # 4 streams per video call, so 12 streams = 3 simultaneous relayed calls per user. total-quota=1200І ще один: sudo nano /etc/default/coturn расскоментируйте строчку enable 1 и sudo systemctl enable --now coturn sudo systemctl restart coturn sudo systemctl status coturnІмпорт сертифікатів за допомогою Cron: sudo crontab -e 0 5 * * 1 /usr/bin/certbot renew --renew-hook "prosodyctl --root cert import /etc/letsencrypt/live" --quietВключаємо файрвол: sudo ufw allow 3478 sudo ufw allow 5222 sudo ufw allow 5000 sudo ufw allow 5269 sudo ufw allow ssh sudo ufw allow 443 sudo ufw allow 80 sudo ufw enable Видалення файлів користувачів Оскільки автоочищення файлів немає, можна видаляти їх через Cron залежно від часу: sudo nano /etc/cron.daily/deletefilesВставляємо: #!/bin/sh find /upload/ -type f -mtime +30 -exec rm -v {} \;Після цього скрипт перевірятиме дати файлів і видалятиме все, що старше 30 днів. Робимо файл виконуваним: chmod +x deletefilesРеєстрація користувачів відбувається на сторінці https://example.com/register_web, якщо ви попередньо надіслали їм логін та пароль для заходу Веб клієнт Converse.js знаходиться тут https://example.com/web КлієнтиКлієнти для смартфонів: Conversations https://conversations.im/ Android Blabber https://blabber.im/en.html Android Monal https://monal.im/ iOS Siskin https://siskin.im/ iOS Клієнти для ПК: Gajim https://gajim.org/ GNU/Linux та Windows DINO https://dino.im/ GNU/Linux Web клієнт: https://conversejs.org/ Стаття розповсюджується під ліцензією GNU FDL 1.3, повний текст ліцензії доступний на https://www.gnu.org/licenses/fdl-1.3.html
-
Chromium, Edge: Введіть пароль для розблокування зв'язування ключів
Насамперед пару слів, що це. По суті це майстер пароль, що зберігаються паролів у зашифрованому вигляді та доступних за майстер-паролем. Зручно це чи ні міркувати не стану. скажу лише, що в інтернеті купа прикладів як це видалити і я додам ще один, тому що мені допоміг саме він, і не додаючи програм типу seahorse. Отже, ви встановили Chromium або Edge, скинули ярлик на робочу панель або робочий стіл. Якщо мова йде про робочий стіл, то правий клік > Змінити значок запуску або властивості та вибрати вкладку "Запуск". Якщо ярлик на панелі то правий клік > "Властивості", знову правий клік по іконці браузера > "Змінити елемент", в обох випадках нас цікавить рядок "Команда:" Все, що ми робимо, ми говоримо браузеру, що не користуватимемося Майстром паролем, додавши в команду запуску ярлика --password-store=basic На прикладі з Edge повністю замінюємо рядок /usr/bin/microsoft-edge-stable %U на /usr/bin/microsoft-edge-stable --password-store=basic %U На прикладі з Chromium замінюємо на chromium --password-store=basic %U Так само має працювати і на звичайному Chrome або в інших браузерах, заснованих на Blink, просто в рядку адреси запуску після назви браузера додаємо (--password-store=basic) Виглядає приблизно так /usr/bin/назва браузера --password-store=basic %U
-
Установка USB WiFi-адаптера TP-Link Archer T3U в Ubuntu 22.04
Давно придбав дангл (TP-Link AC1300 Archer T3U) і не міг завести його на Ubuntu 22.04. Вперто не хотіла бачити адаптер. Зрештою знайшов матеріал на сайті (community.tp-link.com/en/home/forum/topic/208022). Для встановлення драйверів потрібно виконати такі команди: git clone https://github.com/cilynx/rtl88x2bu.git cd rtl88x2bu VER=$(sed -n 's/\PACKAGE_VERSION="\(.*\)"//p' dkms.conf) sudo rsync -rvhP ./ /usr/src/rtl88x2bu-${VER} sudo dkms add -m rtl88x2bu -v ${VER} sudo dkms build -m rtl88x2bu -v ${VER} sudo dkms install -m rtl88x2bu -v ${VER} sudo modprobe 88x2buВсе спрацювало, тільки обов'язково треба вимкнути безпечне завантаження та перезавантажити комп'ютер.
-
Команда head
Синтаксисhead опції ФАЙЛ ФАЙЛ — це один або кілька файлів, записаних через пробіл, рядки яких потрібно вивести. Якщо вказується кілька файлів, виводиться перші N рядків з кожного файла. Перед початком виведення рядків кожного файлу відображається ім'я файлу. Опції-n LINESабо--lines=LINESабо--lines=-LINES Вказує кількість рядків, яку потрібно вивести. LINES — кількість перших рядків із файлу, яке потрібно вивести. Якщо значенняLINESнегативне, то виводиться весь вміст файлу, крім останніх N рядків (де N=LINES). -c BYTESабо--bytes=BYTESабо--bytes=-BYTES Задає кількість байт, яку потрібно вивести. BYTES - кількість перших байт із файлу, яке потрібно вивести. Якщо значенняBYTEнегативне, виводиться весь вміст файлу, крім останніх N байт (де N=BYTES). ЗначенняBYTESможна вказати з суфіксом: b (512 байт), kB (1000 байт), MB (1000 1000), M (1024 1024), GB (1000 1000 1000), G (1024 1024 1024), T ,. KiB=K, MiB=M тощо. -qабо--quietабо--silent Не друкуйте імена файлів. Примітка: Імена файлів друкуються, якщо вказано декілька файлів. Якщо ця опція встановлена, імена файлів не друкуються, і між вмістом різних файлів не додається порожній рядок. -vабо--verbose Завжди друкувати імена файлів. Перед вмістом файлу додається рядок з ім'ям файлу. -zабо--zero-terminated Вважати, що рядки у файлі поділяються символом NULL. --help Показати довідку про команду head. --version Показати версію утиліти head. Приклади використання команди headРозглянемо кілька прикладів використання командиheadу Linux. Виведення перших рядків файлу на екранВивести перші 10 рядків файлу: head myfile.txtВивести перші 25 рядків файлу: head -n25 myfile.txtВиведення декількох перших байт файлуВивести вміст перших 100 байт файлу: head -c100 myfile.txtВивести вміст першого мегабайта файлу (тут використовується суфікс M): head -c1M myfile.txtВиведення перших рядків із кількох файлівВивести перші 3 рядки з кожного файлу: head -n3 myfile.txt myfile2.txtРезультат: ==> myfile.txt <== Manjaro Linux Mint Debian ==> myfile2.txt <== Kali Linux Ubuntu Studio Q4OSВикористання head для друку перших рядків виведення іншої командиКоманду head часто використовують для того, щоб надрукувати перші N рядків виведення іншої команди. Виконати команду ls -t і вивести лише перші 12 рядків. Командаls -tвиводить на екран список файлів у директорії та сортує їх за часом зміни (бо вказано ключ-t). У цьому прикладі буде виведено в повному обсязі файли, лише перші 12. ls -t | head -n12Вивести вміст файлу командою cat, але надрукувати тільки перші 5 рядків: cat /var/log/Xorg.0.log | head -n5
-
Не створюються посилання в Xfce (Thunar) для файлів із пробілами в назві
Проблема У Xfce у файловому менеджері Thunar не створюються посилання на файли та папки, у назві яких є прогалини. Вирішення проблеми Зайти в налаштування Thunar: Правка -> Особливі дії -> Створити посилання -> шестерня. У рядку "Команда" замінити одинарні лапки на подвійні. Неправильна команда: ln -s %f 'Посилання на %n'Правильна команда: ln -s %f "Посилання на %n"
-
Включаємо підсвічування синтаксису в текстовому редакторі nano
Підключення підсвічування синтаксисуПравила підсвічування синтаксису для nano описуються у текстових файлах/usr/share/nano/*.nanorc. Вам достатньо підключити ці файли в установках nano. Відкрийте файл~/.config/nano/nanorcі додайте до нього наступний рядок: include "/usr/share/nano/*.nanorc"Увага: Файл~/.config/nano/nanorcможе не існувати. Якщо файлу немає, створіть відповідну директорію і сам файл. Це можна зробити, виконавши команду:mkdir -p ~/.config/nano; cd !$; nano nanorc Тепер можна відкрити nano, наприклад, JSON файл, і підсвічування синтаксису має працювати. Додаткові можливостіПідсвічування для всіх користувачів у системіЯкщо ви хочете, щоб підсвічування синтаксису працювало не тільки для вашого користувача, але й для всіх користувачів у системі, то замість файлу~/.config/nano/nanorcпотрібно редагувати файл/etc/nanorc Підсвічування лише певних форматівЯкщо ви не хочете включати підсвічування всіх доступних мов і форматів, можна підключити лише вибіркові. Для цього замістьinclude «/usr/share/nano/*.nanorc»вкажіть конкретні файли, наприклад: include "/usr/share/nano/json.nanorc"Поліпшене підсвічуванняМожна скачати додаткові файли конфігурації ( nano-syntax-highlighting ), що розширюють стандартні можливості підсвічування синтаксису. Вони представлені в репозиторії https://github.com/scopatz/nanorc Інструкція зі встановлення доступна за посиланням. В Arch Linux достатньо встановити пакетnano-syntax-highlightingта прописати в nanorcдодатковий рядок: include "/usr/share/nano-syntax-highlighting/*.nanorc"
-
MPR – репозиторій для дистрибутивів на основі Debian та Ubuntu
З використання та встановленняСаме частина по установці була скорочена і залишилася тепер у чорновому варіанті. На початку я написав про Una (відповідно до назви статті), але зараз в інструкціях з повноцінної установки фігурує Mist, а Una ніде більше не згадується, крім скріншота зі статті. Про Una у мене залишилися спогади, та стаття вище та скрипт установки на диску, який посилається на пакет для встановлення, але він не доступний . Пошук пакетів для встановлення на цій сторінці , а на головній відзначені Нові та Популярні пакети. Коли використовував MX, то встановлював звідси лише Freetube , звичайним клонуванням та збиранням на місці. Решта було або в рідних репозиторіях, або було і тут. ЕпілогЗараз це додатковий сторонній репозиторій, звідки можна встановити пакети, якщо ті відсутні в рідних репозиторіях або свіжіших версій. Процес установки , описаний в Installing, займає небагато часу. Але сюди потрібно додати повноцінну установку Mist - консольний помічник, який займається тим, що описано на початку для Una - установка, видалення та інше, а інакше встановлювати сенсу немає. Mist необхідний, щоб використовувати через термінал, а чи не через сайт. Наскільки я пам'ятаю, помічник Una ставав повноцінною заміною стандартного APT, тому Mist, напевно, може стати такою заміною. Не знаю, як це покаже себе у довгостроковій перспективі з оновленнями, чистками від сміття та іншими завданнями.
-
TL;DR-pages - довідник по командам Linux
TL;DR - скорочення від фрази "too long; didn't read", в російськомовних джерелах часто використовують у вигляді "не подужав, багато літер". Проект TLDR-pages створений з метою спрощеного відображення довідкової інформації з синтаксису команд Лінукс та є зручним доповненням до довідника MAN . Основна ідея - дати користувачеві коротке пояснення з прикладами опцій тієї чи іншої команди консолі, що найчастіше використовуються. TLDR в жодному разі не замінює MAN, він лише подає інформацію у більш компактному та зручному вигляді. Офіційним є node.js-клієнт, який можна встановити з GitHub-сторінки проекту: TLDR-pages Однак є безліч альтернативних варіантів: консольні, з графічним інтерфейсом, веб-версії. Підібрати відповідний клієнт можна на сторінці GitHub: TLDR clients Синтаксис програми дуже простий, покажу на прикладі консольної версії, встановленій у мене: # Приклади використання tldr: tldr chmod tldr flatpak tldr dmesgСподіваюся стаття вийшла цікавою, а інформація, викладена в ній, знайде свого користувача.
-
Створення мультизавантажувальної флешки в Linux (Ventoy GUI)
GUI-версія підтримує переклади на велику кількість мов, включаючи російську. Замість прописування команд і ключів у терміналі, необхідних шляхів, тут у налаштуваннях: вибір пристрою, включення Secure boot і між стилями розмітки - MBR і GPT, можливість виділення додаткового розділу. Нагадаю, що USB-пристрій не втрачає здатності до запису інформації, а додавання ISO-образів відбувається звичайним копіюванням та видаленням програм сама виведе назви в меню. Сторінка завантаження перенаправляє або на сторінку gitee, де все є ієрогліфами, або на github, де можна завантажити архів з останньої версії для Linux, Windows і livecd-версію. В архіві лежать файли VentoyGUI під різні архітектури, при їх запуску відповідно і з'явиться головне вікно, яке покаже поточні версії на вибраному пристрої, якщо така вже є, і запущену. Значок замка означає підтримку SB. Коли раніше оновлював через консоль версію на флешці, то стикався з тим, що всі образи видалялися, хоча на сайті читав протилежне, може, ключ треба було якийсь додати… Зараз оновив і всі образи залишилися не зворушеними.