diff --git a/uk/amethyst/.config.yaml b/uk/amethyst/.config.yaml new file mode 100644 index 0000000..2b95f90 --- /dev/null +++ b/uk/amethyst/.config.yaml @@ -0,0 +1 @@ +title: Amethyst diff --git a/uk/amethyst/config.mdx b/uk/amethyst/config.mdx new file mode 100644 index 0000000..dba6abf --- /dev/null +++ b/uk/amethyst/config.mdx @@ -0,0 +1,25 @@ +--- +title: Ключі конфігурації +--- + +## [base] + +| Ключ | Опис | За замовчуванням | +| ------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------- | +| `pacdiff_warn` | Чи попереджати користувача про `vimdiff` для `pacdiff` | `true` | +| `paccache_keep` | Скільки версій (кількість разів, коли пакет було завантажено в кеш) пакета, який ви хочете зберегти в кеші | `0` | +| `paccache_keep_ins_pkgs` | Виключити видалення встановлених пакетів із кешу | `true` | +| `aur_verification_prompt` | Якщо `true`, запитує користувача, чи бажає він використовувати AUR для операції. | `true` | + +## [extra] + +| Ключ | Опис | За замовчуванням | +| ----------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------- | +| `uwu` | Робить вивід Amethyst... "милішим" | `false` | +| `uwu_debug` | Робить налагодження та трасування `uwu`. Будь ласка, ніколи не надсилайте нам журнали налагодження, коли це ввімкнено. | `false` | + +## [bin] + +| Ключ | Опис | За замовчуванням | +| ------ | ------------------------------------------------------------ | ---------------- | +| `sudo` | Шлях для використання `sudo` (або будь-яких `sudo`-подібних) | `'sudo'` | diff --git a/uk/amethyst/getting-started.mdx b/uk/amethyst/getting-started.mdx new file mode 100644 index 0000000..8550ded --- /dev/null +++ b/uk/amethyst/getting-started.mdx @@ -0,0 +1,42 @@ +--- +title: Початок роботи +weight: 20 +--- + +Amethyst — це швидкий, ефективний, легкий помічник AUR та обгортка Pacman. Створений для Crystal, сумісний з будь-яким дистрибутивом Linux на основі Arch. + +![Amethyst demo](/demos/ame.png) + +## Встановлення + +### Crystal Linux + +Amethyst встановлений на Crystal Linux автоматично + +### Non-Crystal дистрибутиви + +1. `sudo pacman -S --needed base-devel pacman-contrib cargo` +2. `git clone https://github.com/crystal-linux/pkgbuild.amethyst` +3. `cd pkgbuild.amethyst && makepkg -si` + +Також пакет можна знайти у AUR як [`ame`](https://aur.archlinux.org/packages/ame). + +## Використання + +Amethyst підтримує підкоманди та прапорці у стилі Pacman. Щоб дізнатися більше, прочитайте детальну інформацію про [Використання](usage). + +## Налаштування + +Ви можете налаштувати Amethyst за допомогою файлу `~/.config/ame/config.toml`, який створюється автоматично. Кожен ключ пояснюється у [Ключі конфігурації](config). + +```toml +# ~/.config/ame/config.toml + +[base] +pacdiff_warn = true +paccache_keep = 0 +paccache_keep_ins_pkgs = true + +[bin] +sudo = 'sudo' +``` diff --git a/uk/amethyst/usage.mdx b/uk/amethyst/usage.mdx new file mode 100644 index 0000000..ebc48f2 --- /dev/null +++ b/uk/amethyst/usage.mdx @@ -0,0 +1,31 @@ +--- +title: Використання +weight: 10 +--- + +### Основні команди + +| Дія | Псевдонім у стилі FreeBSD pkg | Прапори у стилі Pacman | +| ---------------------- | ----------------------------- | ---------------------- | +| Встановити пакет | ame ins/install | ame -S | +| Remove a package | ame rm/remove | ame -R/-Rs | +| Upgrade a package | ame upg/upgrade | ame -Syu | +| Search for a package | ame sea/search | ame -Ss | +| Query the package list | ame qu/query | ame -Q | +| Show a package's info | ame inf/info | ame -Qi | +| Clean the pacman cache | ame cl/clean | ame -Sc | +| Check for .pacnew | ame di/diff | ame -D | + +### Статус завершення + +| Статус завершення (i32) | Причина | +| ----------------------- | --------------------------------------------------------------- | +| 1 | Запуск ame через UID 0 / root | +| 2 | Не вдалося створити шляхи | +| 3 | Не вдалося знайти одну або кілька необхідних залежностей пакета | +| 4 | Користувач скасував встановлення пакета | +| 5 | Помилка Pacman під час встановлення пакета | +| 6 | Помилка Git | +| 7 | Помилка Makepkg | +| 8 | Не вдалося проаналізувати файл конфігурації | +| 63 | Будь-яка інша помилка | diff --git a/uk/crystal-linux/.config.yaml b/uk/crystal-linux/.config.yaml new file mode 100644 index 0000000..61f95b8 --- /dev/null +++ b/uk/crystal-linux/.config.yaml @@ -0,0 +1,2 @@ +title: Crystal Linux +weight: 10 diff --git a/uk/crystal-linux/getting-started.mdx b/uk/crystal-linux/getting-started.mdx new file mode 100644 index 0000000..1f6ed71 --- /dev/null +++ b/uk/crystal-linux/getting-started.mdx @@ -0,0 +1,5 @@ +--- +title: Початок роботи +--- + +Ласкаво просимо до документації по Crystal Linux! diff --git a/uk/crystal-linux/nvidiawayland.mdx b/uk/crystal-linux/nvidiawayland.mdx new file mode 100644 index 0000000..4eec6ef --- /dev/null +++ b/uk/crystal-linux/nvidiawayland.mdx @@ -0,0 +1,63 @@ +--- +title: Як запустити Wayland на відеокарті NVIDIA +--- +Wayland вимагає, щоб для графічного процесора nvidia було ввімкнено налаштування режиму, для цього вам потрібно додати драйвери nvidia до модулів mkinitcpio та додати позначку ядра `nvidia-drm.modeset=1` + +## Додавання nvidia до модулів mkinitcpio +Щоб додати необхідні модулі nvidia `nvidia nvidia_modeset nvidia_uvm nvidia_drm` до модулів mkinitcpio, потрібно відредагувати `/etc/mkinitcpio.conf`, запустивши `sudo nano /etc/mkinitcpio.conf` +у цьому файлі має бути рядок, який виглядає так: +``` +MODULES=() +``` +додайте модулі у дужки, назви модулів розділяються пробілами, в кінці рядок має виглядати так: +``` +MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) +``` +Щоб зберегти файл, вам потрібно натиснути `CTRL+O` і вийти за допомогою `CTRL+X` +Тепер створіть initramfs: +``` +sudo mkinitcpio -P +``` + +## Додавання прапора ядра +Щоб додати прапор ядра за допомогою grub, потрібно відредагувати `/etc/default/grub`, запустивши `sudo nano /etc/default/grub`, знайдіть рядок, який виглядає так: +``` +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet" +``` +Вам потрібно буде додати `nvidia-drm.modeset=1` до цього рядка, щоб він виглядав так: + +``` +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1" +``` +Так само, як і з модулями mkinitcpio, щоб зберегти та вийти, вам доведеться спочатку натиснути `CTRL+O`, а потім `CTRL+X` +Після того, як ви додасте параметр ядра, повторно створіть конфігурацію grub, щоб відобразити зміни прапора ядра, для цього вам потрібно запустити +``` +sudo grub-mkconfig -o /boot/grub/grub.cfg +``` +Це створить конфігурацію grub і збереже її у /boot/grub/grub.cfg + +## Додаткові кроки для GNOME та onyx +GDM використовує деякі залежні від чипсета [правила udev](https://wiki.archlinux.org/title/Udev), щоб перевірити, чи він примусово використовує Xorg замість Wayland. Ці правила udev можна вимкнути, виконавши цю команду: +### Видалення gdm udev, який вимикає Wayland + +GDM використовує деякі залежні від чипсета [правила udev](https://gitlab.gnome.org/GNOME/gdm/-/blob/main/data/61-gdm.rules.in), щоб перевірити, чи слід примусово використовувати Xorg замість Wayland. Якщо ви хочете примусово ввімкнути Wayland, виконайте цю команду. + +``` +sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules +``` + +Ця команда повинна символічно посилатися на правила udev GDM з _нічого_. Правила у `/etc/udev/rules.d/` повинні перезаписати правила у `/usr/lib/udev/rules.d` (які надсилаються самим пакетом і керуються вашим менеджером пакетів). +А після цього перезавантажтеся, і GNOME Wayland _має_ працювати! + +## Перезавантаження +Після того, як ви пройшли всі кроки, а саме: +- додали модулі mkinitcpio +- створили initcpio +- додали прапорці ядра за допомогою grub +- згенерували конфігурацію grub +- необов'язково вимкнули правила udev + +Тепер ви можете використовувати Wayland! Просто перезавантажте систему, і ви зможете увійти в сеанс Wayland + + +Якщо все одно не працює, можливо, ваш графічний процесор не підтримує Wayland у власних драйверах NVIDIA. Це не можна виправити, окрім використання драйвера nouveau, який, на жаль, працює не так добре, як власні драйвери nvidia. \ No newline at end of file diff --git a/uk/malachite/.config.yaml b/uk/malachite/.config.yaml new file mode 100644 index 0000000..88ca52b --- /dev/null +++ b/uk/malachite/.config.yaml @@ -0,0 +1 @@ +title: Malachite diff --git a/uk/malachite/common-features.mdx b/uk/malachite/common-features.mdx new file mode 100644 index 0000000..f929599 --- /dev/null +++ b/uk/malachite/common-features.mdx @@ -0,0 +1,131 @@ +--- +title: Основні можливості +--- + +Як `[mode]`, спільний між е-м… сховищами… чи щось подібне. + +## Що потрібно знати + +Malachite досить конкретизований у режимі Сховища, і не дуже в режимі Робочого простору. + +Звісно, це не тому, що я ледачий і ненавиджу режим Робочого простору чи щось інше, просто нема чого _додавати_. + +Без зайвих слів, давайте подивимося на цей приклад конфігураційного файлу. + +```toml +# mlc.toml + +[base] +mode = "workspace" +smart_pull = true + +[mode.workspace] +git_info = true +colorblind = true + +[repositories] +repos = [ + "foo:repo1:2", + "foo:repo2/testing", + "bar:baz!", + "bar:qux/testing!:1", +] + +[repositories.urls] +foo = "https://example.org/{}.git" +bar = "https://example.org/other/{}.git" +``` + +Спочатку це буде виглядати дуже заплутаним, але потерпіть мене. + +У цьому документі ми розглянемо лише те, що потрібно знати для **обох** режимів. +Посилання на додаткові спеціалізовані посібники для кожного режиму розташовано внизу цієї сторінки. + +Почнемо з `[base]`. + +## Базова конфігурація + +Базова конфігурація визначає кілька загальних параметрів для всіх режимів Malachite. + +```toml +[base] +mode = "workspace" +smart_pull = true +``` + +У цьому фрагменті ми визначаємо `mode` як `"workspace"`. + +`base.mode` у Malachite може бути лише одним із `"workspace"` або `"repository``, і визначає, барабанний дріб… +Режим, в якому він працює. Якщо для нього встановлено будь-який режим, окрім цих 2 режимів, він аварійно завершує роботу. + +У цьому фрагменті також визначено `smart_pull`, який контролює, чи слід виконувати команду pull… розумно. + +Насправді це означає, що замість того, щоб просто виконувати простий `git pull` у кожному сховищі, Malachite +буде: + +- Спочатку запустить `git remote update`, щоб отримати нові віддалені сховища з джерела +- Потім запустить `git status` і проаналізує вивід, щоб побачити, чи поточна гілка відстала +- Якщо поточна гілка відстає, вона запускає звичайний `git pull`, який використовує переваги віддаленого керування, + яке вже оновлюється. + +Теоретично, це прискорює роботу лише на хвилину (справді, подумайте, мілісекунди). Проте, де ця функція сяє, так у режимі сховища, +де він активує корисні функції автоматизації, такі як `build_on_update`. + +Незважаючи на це, рекомендовано залишати його ввімкненим для невеликого прискорення та вимикати, лише якщо це спричиняє проблеми. +У мене особисто ніколи з цим не було проблем у минулому, але хто знає, що може статися. Це ж Git, про який ми говоримо. + +### Конфігурація сховища + +Конфігурація сховищ – це те, що дійсно змушує Malachite збивати сховища внутрішньо. +Уся мета у тому, що він робить, і тому ми спробували придумати акуратну маленьку систему, яка допоможе +полегшити багато пакетів без необхідності вводити кожну URL-адресу мільйон разів. + +```toml +[repositories] +repos = [ + "foo:repo1:2", + "foo:repo2/testing", + "bar:baz!", + "bar:qux/testing!:1", +] + +[repositories.urls] +foo = "https://example.org/{}.git" +bar = "https://example.org/other/{}.git" +``` + +Працює це дуже просто: + +- Ми маємо 2 URL-адреси в ключі `repositories.urls`. +- Кожний `repo` в ключі `repositories.repos` має префікс ідентифікатора. +- Якщо числом є `foo`, буде вставлено URL-адресу з ідентифікатором `foo`. + - Зокрема, в URL-адресу замість підрядка `%repo%` буде вставлено визначене ім’я `repo`. + +### Почекайте, які спеціальні символи???? + +Я радий, що ви запитали! + +- Якщо ви хочете скопіювати певну гілку, просто використовуйте роздільник `/`. Щоб скопіювати сховище `foo` у гілці `bar`, використовуйте `id:foo/bar`. +- Якщо ви хочете, щоб певний пакет збирався першим, використовуйте екземпляри `!`, щоб установити пріоритет. Це пояснюється пізніше на сторінці [Режим сховища](repository-mode). + +Останній роздільник `:` є необов'язковим і поводиться по-різному залежно від режиму: + +- У режимі сховища він визначає бажаний хеш/ревізію/тег для перевірки на клоні сховища +- У режимі робочого простору він визначає бажану глибину для клонування сховища, що корисно для великих сховищ git, таких як `nixpkgs`. + +Це буквально все! + +## Спеціальна конфігурація режиму + +Щоб отримати спеціальну конфігурацію режиму, подивіться наступні посилання! + +- [Режим робочого простору](workspace-mode) +- [Режим сховища](repository-mode) + +## Examples + +Приклади функціональної конфігурації для обох режимів доступні в каталозі [examples](https://github.com/crystal-linux/malachite/tree/main/examples)! + +## Використання + +Крім того, ви можете переглянути довідник з [Використання](detailed-usage)! diff --git a/uk/malachite/getting-started.mdx b/uk/malachite/getting-started.mdx new file mode 100644 index 0000000..61cf694 --- /dev/null +++ b/uk/malachite/getting-started.mdx @@ -0,0 +1,52 @@ +--- +title: Початок робити з Malachite +weight: 20 +--- + +Перше сховище-малюк з Malachite! + +### Що потрібно знати + +Malachite є: + +- Менеджером сховища pacman +- Менеджером робочого простору +- ~~Неймовірним~~ + +Malachite не є: + +- Універсальним рішення для всіх сховищ pacman +- Ідеальним + +### Не завадить знати + +Привіт! Мене звуть Michal, і я написав цей інструмент практично самостійно для [Crystal Linux](https://getcryst.al); +але він не тільки для Crystal. Цей інструмент повинен і працюватиме на будь-якій pacman основаних +дистрибутивів (звісно, якщо він містить усі залежності Malachite). + +У цьому довіднику я поясню кожну маленьку особливість Malachite, сподіваюся, у коротких та програмованих фрагментах. + +Без зайвих слів, почнемо з першого, найважливішого запитання: + +### Режими + +Які режими ви використовуєте, працюючи з Malachite? + +На даний момент Malachite підтримує 2 режими: + +#### Режим сховища + +- Дозволяє користувачеві налаштовувати та керувати віддаленим (або локальним) сховищем пакетів на основі pacman +- Дозволяє настроювати назву сховища, параметри підпису, ключ підпису тощо. +- Дозволяє базові рівні автоматизації за допомогою таких функцій, як build_on_update + +#### Режим робочого простору + +- Основна функція Malachite +- Просто клонує каталоги git у каталог "Робочий простір" для полегшення керування +- Дозволяє виконувати основні операції pull, щоб підтримувати ваші сховища в актуальному стані + +Ці режими, по суті, визначають усе, як функціонує Malachite, настільки, +що тепер мені потрібно відокремити цю сторінку, поки вона не стане надто довгою! + +Для отримання додаткової інформації перегляньте сторінку [Основні можливості](common-features)! diff --git a/uk/malachite/repository-mode.mdx b/uk/malachite/repository-mode.mdx new file mode 100644 index 0000000..d8c708b --- /dev/null +++ b/uk/malachite/repository-mode.mdx @@ -0,0 +1,45 @@ +--- +title: Режим сховища +--- + +Керуйте своїми сховищами стильно! + +### Конфігурація сховища + +На відміну від досить порожнього режиму робочого простору, конфігурація режиму репозиторію досить конкретизована; +і у нас є кілька варіантів на вибір. + +Давайте візьмемо приклад розділу конфігурації режиму сховища, + +```toml +[mode.repository] +name = "example" +build_on_update = true + +[mode.repository.signing] +enabled = true +key = "you@example.org" +on_gen = true +``` + +### Основна конфігурація сховища + +Для початку існує 2 основні конфігураційні ключі для режиму сховища: + +- `name`: Визначає, як pacman називає ваше сховище. +- `build_on_update`: У поєднанні з `smart_pull` визначає, чи слід автоматично перезбирати пакунки при виявленні оновлення. + +### Підписання + +Malachite також підтримує та заохочує до підписання пакетів. +Пакети підписані GPG гарантують, що користувач отримає саме те, що ви запакували, без будь-якого шансу підробки. + +Повертаючись до прикладу вище, ми можемо побачити 3 конфігураційні ключі: + +- `enabled`: Визначає, чи потрібно підписувати пакети (бажано). +- `key`: Визначає ідентифікатор ключа GPG для підпису. +- `on_gen`: Визначає, чи підписувати пакунки, коли вони створені, чи всі відразу під час створення сховища (це також рекомендовано). + +--- + +Ви можете повернутись на сторінку [Початок роботи](getting-started) тут! diff --git a/uk/malachite/usage.mdx b/uk/malachite/usage.mdx new file mode 100644 index 0000000..6fedd0e --- /dev/null +++ b/uk/malachite/usage.mdx @@ -0,0 +1,36 @@ +--- +title: Використання +weight: 10 +--- + +Працюй старанніше, роби краще! + +## Глобальні прапорці + +| Прапорець | Опис | +| ----------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `--verbose`, `-v` | Друкує багато налагоджувальної інформації до `stderr`. Якщо щось піде не так, надслиайте нам вивід з увімкнутим, це дуже допоможе | +| `--exclude`, `-x` | Виключає наданий пакет з поточної операції. Можна використовувати декілька разів. | + +## Основні команди + +| Дія | Команда | Додаткові прапори | +| ---------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| Зібрати пакет/пакети. | `mlc build ` [all if left empty] | `--no-regen`: Не регенерує сховище після збирання | +| Створити сховище pacman | `mlc repo-gen` | | +| Оновитить локальні PKGBUILD сховища | `mlc pull/update` [all if left empty] | `--no-regen`: Якщо `mode.repository.build_on_update` має значення `true`, не створює сховище після збірки пакета | +| Створити та/або відкрити конфігураційний файл | `mlc conf` | | +| Ініціалізувати сховище/робочий простір на основі конфігурації в mlc.toml | `mlc clone/init` | | +| Відобразити інформаційну панель/огляд поточного репо | `mlc info/status` | | +| Скинути сховище Malachite, видаляючи всі каталоги, пропускаючи `mlc.toml` і `.git` | `mlc clean/reset` | `--force`: Видаляє брудні каталоги (невідстежувані, некешовані тощо) | + +## Статус завершення + +| AppExitCode (названий Enum) | Статус завершення (i32) | Опис помилки | +| --------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | +| `RunAsRoot` | `1` | Малахіт запускався як корінь. Це вкрай не рекомендується. Настільки, що він відмовляється запускатися. | +| `PkgsNotFound` | `2` | Не було вказано/знайдено пакетів для потрібної операції | +| `DirNotEmpty` | `3` | Спроба створити сховище Malachite у непорожньому каталозі | +| `ConfigParseError` | `4` | Не вдалося проаналізувати файл конфігурації | +| `RepoParseError` | `5` | Не вдалося проаналізувати інформацію сховища | +| `RepoNotClean` | `6` | git сховище не є пустим і не можна видалити без `--force` | diff --git a/uk/malachite/workspace-mode.mdx b/uk/malachite/workspace-mode.mdx new file mode 100644 index 0000000..103e694 --- /dev/null +++ b/uk/malachite/workspace-mode.mdx @@ -0,0 +1,35 @@ +--- +title: Режим робочого простору +--- + +Тобі більше ніколи не доведеться працювати(у просторі) жодного дня у своєму житті! + +### Конфігурація робочого простору + +Взявши приклад з розділу конфігурації режиму робочого простору, + +```toml +[mode.workspace] +git_info = true +colorblind = true +``` + +Наразі режим робочої області має лише 2 параметри, обидва стосуються відображення інформації. (`mlc info`) + +Перший ключ – `git_info`, який є логічним значенням. Якщо це правда, інформація git відображатиметься поруч із інформацією про сховище. + +Ця інформація буде відформатована так: `D Pl Ps <останній хеш коміту>` + +Ключ для значень такий: + +- D: Чи брудне сховище чи ні (невідстежувані зміни) +- Pl: Чи є невитягнуті зміни з віддаленого сховища +- Ps: Чи є ненадіслані зміни у вашому локальному сховищі + +Зазвичай вони відображаються зеленим (чистий) або червоним (брудний) кольором. + +Однак, якщо `colorblind` має значення true, замість цього кольори будуть встановлені на синій (чистий) або темно-червоний (брудний), щоб користувачі з дальтонізмом могли помітити. + +--- + +Ви можете повернутися на сторінку [Початок роботи](getting-started) тут!