
[Чештина] | [中文] | [پارسی]
Нам нужна ваша помощь, чтобы перевести эту Readme. Посмотри!
Ashos (любая иерархическая ОС снимка)
Неизобраенное мета-распределение в форме дерева с использованием снимков
(Нет, это не еще одна кожа/тематическая "дистрибуция"!)
Обратите внимание, что для целей этого проекта, соответствие «Pythonic», не было целью, как в будущем, реализация может измениться до ржавчины, C, C ++ и т. Д. Мы хотели бы быть как можно ближе к Posix Sans-Bashism Shell.
Оглавление
- Что такое Ашос?
- Ашос по сравнению с другими подобными распределениями
- Документация Ash и Ashos
- Установка
- После установки
- Управление снимками и развертываниями
- Управление пакетами
- Конфигурация снимка
- Дополнительная документация
- Обновление ключей Pacman
- Сохранение изменений конфигурации, внесенных в /и т. Д. Постоянно
- Настройка двойной загрузки
- Обновление самого золы
- Разнообразный
- Расширенные функции
- Мульти-боут
- Люкс
- Изменение переключения
- Отладка пепла
- Установщик отладки
- Известные ошибки
- Внося
- Сообщество
- Тодос
- Дистриблентные примечания
- Архи
- Аур
- Исправление коррупционных пакетов Pacman или ключевых проблем
- Альпийский
- Кахиос
- Дебюн
- Endeavouros
- Proxmox
- Ubuntu
Что такое Ашос?
Вы всегда хотели попробовать Fedora Rawhide, но через несколько дней ее хрупкость на нервы. Затем, может быть, вы попробовали Fedora Silverblue Rawhide, но тогда его сложные и медленные операции с острие, похожие на git, убили ваше настроение! Ну, нет больше! Теперь вы можете попробовать этот кровоточащий дистрибутив (и еще много дистрибуций, таких как Debian Sid) с большим душевным спокойствием. Ashos обеспечивает максимальную гибкость для установки операционных систем, например, вы можете легко настроить неизменную Proxmox VE!
Ashos-это уникальное мета-распределение, которое:
- Целью принести неизменность даже дистрибутивы, которые не имеют этой очень полезной функции, т.е. Arch Linux, Gentoo и т. Д.
- Объедините любое распределение Linux, которое можно загрузить (почти любое крупное распределение)
- Цели, чтобы стать универсальным установщиком для различных дистрибутив и различных средств настольных компьютеров/управляющих окон
- может установить, развернуть и мультизагрузку любого количества дистрибутив
Первоначально вдохновленный Arch Linux, Ashos использует неизменную (только для чтения) корневую файловую систему, чтобы отличить себя от любого другого дистрибутива. Программное обеспечение установлено и настроено на отдельные деревья снимков, которые затем можно развернуть и загрузить. Он не изобретает еще один формат пакета или менеджер пакетов, но вместо этого полагается на нативного менеджера пакетов, например, Pacman из Arch.
Пепел - одно из старейших деревьев в мире, и они вдохновили называть Ахоса.
В Ашосе есть несколько ключевых слов:
- Vanilla: Мы стараемся быть настолько близко к «ванильной» версии целевого распределения, которая устанавливается.
- Минимализм: мы придерживаемся системы сборки LEGO. Начните с малого и создайте такую же сложную систему, как вам хотелось бы. Основное внимание в разработке уделяется наличию минимального установленного моментального снимка, в зависимости от того, какой пользователь может иметь бесконечные неизменные перестановки!
- Общность: мы стремимся удовлетворить наиболее распространенный знаменатель между дистрибутивами и архитектурами (x64, aarch64, sparc и т. Д.). Таким образом, когда есть выбор между удобством и всеобъемлющей/общностью, мы идем с последним. Чтобы уточнить примером, может быть проще использовать GRUB-BTRF вместо реализации нашего собственного механизма обновления Grub, но поскольку этот конкретный пакет может быть недоступен во всех дистрибуциях, мы разрабатываем специфическое решение Ashos. Таким образом, мы потенциально можем удовлетворить любое дистрибутив в будущем!
Это имеет несколько преимуществ:
Безопасность
- Даже если запустить приложение с линиными разрешениями, оно не может заменить системные библиотеки на злонамеренные версии
Стабильность и надежность
- Из -за того, что система монтируется только в качестве чтения, невозможно случайно перезаписать системные файлы
- Если система сталкивается с проблемами, вы можете легко отказываться от последнего рабочего снимка в течение нескольких минут
- Атомные обновления - обновление вашей системы сразу еще более надежно
- Благодаря функции снимка, Ashos может поставлять передовое программное обеспечение, не становясь нестабильным
- Ashos требует небольшого обслуживания, так как у него есть встроенный полностью автоматический инструмент обновления, который создает снимки перед обновлениями и автоматически проверяет, правильно ли обновляется система перед развертыванием нового снимка
Конфигурируемость
- С помощью снимков, организованных в дерево, вы можете легко иметь несколько различных конфигураций вашего программного обеспечения, с различными пакетами, без каких -либо помех
- Например: у вас может быть установлен один рабочий стол Gnome, а затем получить 2 снимка сверху - один с вашими видеоиграми, с новейшим ядром и драйверами, а другой для работы, с ядро LTS и более стабильным программным обеспечением, вы можете легко переключаться между ними в зависимости от того, что вы пытаетесь сделать
- Вы также можете легко попробовать программное обеспечение, не беспокоясь о том, чтобы разбить вашу систему или загрязнять его ненужными файлами, например, вы можете попробовать новую среду рабочего стола в снимке, а затем удалить снимок после, без изменения своей основной системы вообще
- Это также можно использовать для многопользовательских систем, где у каждого пользователя есть совершенно отдельная система с различным программным обеспечением, и все же он может поделиться определенными пакетами, такими как ядра и драйверы
- Ashos позволяет устанавливать программное обеспечение, Chrooting в снимки, поэтому (например, в аромате Arch) вы можете использовать программное обеспечение, такое как AUR для установки дополнительных пакетов
- Ashos, очень настраиваемо, вы можете выбрать именно то программное обеспечение, которое вы хотите использовать (точно так же, как Arch Linux)
Благодаря его надежным и автоматическим обновлениям Ashos хорошо подходит для отдельных или встроенных устройств
Это также создает хорошую рабочую станцию или распределение общего использования с использованием контейнеров для разработки и flatpak для настольных приложений
Важное примечание: сначала попробуйте Ashos в виртуальной машине и освоитесь с ним, прежде чем установить его на головом металле. Установщик Ashos * безжалостный , и он предполагает, что пользователь знает, что они делают. Запуск установщика как вытирает диск!
По мере того, как Ашос стремится быть минимальным твердым и следовать структуре LEGO, похожей на LEGO (начните с малого, настраиваемая по ходу дела), мы в первую очередь фокусируем разработку на базе, что по умолчанию не установлена среды для рабочего стола (даже Window Manager). Это по дизайну, так как в противном случае команда должна поддержать многие DES во многих дистрибуциях. То, что предоставляется, это profiles . Поскольку DES/WMS - это просто пакеты, с мощностью снимка, можно использовать пепел для установки желаемого DE/WM. Например, чтобы установить Gnome в снимке 1:
`ash clone 0` : create snapshot #1
`ash install 1 -P gnome` : install gnome in snapshot #1
`ash deploy 1`
`reboot`
Ашос по сравнению с другими подобными распределениями
- Nixos / GNU Guix - по сравнению с Nixos, Ashos - более традиционная система с тем, как она настроена и поддерживается. В то время как Nixos полностью настроен с использованием языка программирования NIX, Ashos использует нативный диспетчер пакетов целевого распределения, например, Pacman для Arch, Apt-Get для Debian и т. Д. Ashos потребляет меньше хранилища, а настройка вашей системы более быстрая и проще (менее воспроизводимо), что также дает вам больше вариантов настройки. Ashos соответствует FHS, обеспечивая правильную совместимость с программным обеспечением. В отличие от Никсоса, вам не нужно иметь докторскую степень. в информатике, чтобы просто запустить неизменную ОС
- Ashos разрешает декларативную конфигурацию с использованием Ansible, для несколько аналогичной функциональности с Nixos
- Fedora Silverblue/Kinoite - Ashos более настраима, но требует большей ручной установки. Ashos поддерживает двойной ботинок, в отличие от Silverblue.
- OpenSuse Microos - Ashos - более настраиваемая система, но снова требует немного большей ручной настройки. Microos работает так же, как он использует снимки BTRFS. У Ashos официальная установка KDE, но также поддерживает другие настольные среды, в то время как Microos только правильно поддерживает GNOME. Ashos поддерживает двойную загрузку, а также вживую в прямом эфире системы и установку пакетов без перезагрузки
Установка
- (Примечание: все сценарии во время установки должны выполняться с привилегиями Super User)
- Ashos установлен из официального Live ISO для целевого распределения. Например, Arch Linux, Debian/Debian Netinstaller и т. Д.
- Arch ISO может быть обычно используется для начальной загрузки других дистрибутов, кроме: использовать Debian Live Iso-Hybrid для начальной загрузки Debian, Ubuntu ISO для начальной загрузки Ubuntu
- В зависимости от живого ISO, очень важно , чтобы сценарии в
./src/prep/ выполнялись (подготовка живой среды, а также разделение/форматирование), иначе будет ошибка, потому что время не синхронизируется и т. Д. По умолчанию будет называть эти сценарии, но если вы хотите сделать их вручную, просто комментируйте соответствующие строки - Команды по исправлению пакета DB -выпусков в Live ISO (то есть Arch_live.iso) занимают много времени, чтобы запустить. Можно прокомментировать их, чтобы установщик работал значительно быстрее. Они включены в основном для установки виртуальной машины, где много времени синхронизации.
- Если вы столкнетесь с проблемами установки пакетов во время установки, убедитесь, что вы используете новейший ISO, и при необходимости обновите Keyring Диспетчера пакетов
- При запуске из старой арки ISO запустите команды в разделе
# Fix signature invalid error в ./src/prep/arch-live.sh - Вам нужно подключение к Интернету для установки Ashos
- Ashos использовался для доставки с 3 профилями установки, один для минимальных установок и два для настольных компьютеров (GNOME, KDE Plasma). Чтобы сделать его более модульным, мы перепроектировали его, и по умолчанию он только устанавливает минимальный базовый снимок. Как только это будет сделано, вы можете установить любую среду рабочего стола, которая вам нужна. Например, для GNOME, после загрузки в базовом снимке, запустите:
ash branch 0 # This produces node #N
ash install N --profile gnome
ash deploy N
- Поддержка большего количества DE будет добавлена, но она не будет частью базовой установки.
- Сценарий установки легко настраивается и регулируется для ваших потребностей (но он работает очень хорошо без каких -либо изменений)
Сначала установить GIT - это позволит нам загрузить сценарий установки
Репозиторий клона
git clone "https://github.com/ashos/ashos"
cd ashos
Перегородка и формат
- При установке в системе BIOS используйте таблицу разделов DOS (MBR)
- На EFI вы можете использовать GPT
- Разделение EFI должно быть отформатировано в FAT32 перед запуском установщика (
mkfs.fat -F32 /dev/<part> ) - Есть подготовительные сценарии под
./src/prep/
lsblk # Find your drive name
cfdisk /dev/*** # Format drive, make sure to add an EFI partition, if using BIOS leave 2M free space before first partition
mkfs.btrfs /dev/*** # Create a btrfs filesystem, don't skip this step!
Запустить установщик
python3 setup.py /dev/<root_partition> /dev/<drive> [/dev/<efi part>] [distro_id] ["distro_name"]# Skip the EFI partition if installing in BIOS mode
Here are 3 example scenarios:
example 1 (BIOS): python3 setup.py /dev/vda1 /dev/vda
This is a simple case when iso from the `same distro` is used
example 2 (UEFI): python3 setup.py /dev/nvm0p2 /dev/nvm0 /dev/nvm0p1 fedora "Fedora Linux"
When installing a distro using another distro's iso, the last two arguments are necessary
example 3 (UEFI): python3 setup.py /dev/sda2 /dev/sda /dev/sda1 cachyos "CachyOS Linux"
If for any reason, there is a mismatch between what distro actually is and its /etc/os-release file, it is [usually] mandatory to pass two additional arguments. Here even though we are using CachyOS iso file (which is based on Arch Linux), by investigating in /etc/os-release file, you would see ID and NAME are same as Arch Linux. In a single boot install, it is okay to not pass the last two arguments, but if you want a multiboot system (say dual boot with Arch Linux), they are required.
Аргументы внутри квадратных кронштейнов являются необязательными. Что касается четвертого аргумента: скажем, если вы хотите установить Alpine Linux, используя Arch Linux ISO, запустите python3 setup.py /dev/vda2 /dev/vda /dev/vda1 alpine .
После установки установки
- Настройка установки не требуется, если вы установите одно из настольных изданий (GNOME или KDE)
- Много информации о том, как обрабатывать настройку после установки, доступно на странице Archwiki
- Вот небольшой пример процедуры настройки:
- Начните с создания нового снимка из
base , используя ash clone 0 - Chroot внутри этого нового снимка (
ash chroot <snapshot> ) и начните настройку- Начните с добавления новой учетной записи пользователя:
useradd username - Установите
passwd username - Теперь установите новый пароль для root user
passwd root - Теперь вы можете установить дополнительные пакеты (настольные среды, контейнерные технологии, Flatpak), используя PACMAN
- После того, как это сделано, выйдите из Chroot с
exit - Тогда вы можете развернуть его с помощью
ash deploy <snapshot>
Дополнительная документация
- Для получения дополнительной информации, которая не рассматривается в этом проекте, рекомендуется обратиться к целевому дистрибутиву, т.е. Arch Wiki
- Сообщите о проблемах/ошибках на странице выпусков GitHub
- Подсказка: вы можете использовать
ash --help , чтобы получить быстрый лист всех доступных команд - В идеале, мы хотели бы сохранить пепел в качестве одного исполняемого файла
- Пепельный скрипт разделен на 2 файла: общий код (ASHPK_CORE.PY) и специфический код дистрибуции (то есть gentoo.py). Обратите внимание, что ни один из этих файлов не может быть запускать отдельно (импорт один сценарий в другой не предназначен). Разделение просто для того, чтобы облегчить использование файлов в качестве шаблонов в разработке золы для других распределений. Во время установки дистрибутива два файла просто объединяются.
- Чтобы не нужны дополнительные шрифты, мы используем стиль ASCII при печати пепельного дерева. Для более хорошего вывода, не стесняйтесь заменить Asciistyle () на Contile (), coundstyle () или Doublestyle ()
- Другая приятная вещь о Ashos-это ваши дитросы, очень похожие. Например, установщик для Arch и Manjaro очень похожи, разница, просто являясь пакетным репо!
Базовый снимок
- Снимок
0 зарезервирован для снимка базовой системы, его нельзя изменить и может быть обновлен только с помощью ash base-update
Управление снимками
Показать дерево файловой системы
- Вывод может искать, например, например:
root - root
├── 0 - base snapshot
└── 1 - multi-user system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Звездочка показывает, какой снимок в настоящее время выбирается в качестве дефолта
Вы также можете получить только количество загруженного снимка в настоящее время с
Добавить описание в снимки
- Снимки позволяют добавить им описание для более легкой идентификации
ash desc <snapshot> <description>
Удалить дерево
- Это удаляет дерево и все его ветви
Пользовательская конфигурация загрузки
- Если вам нужно использовать пользовательскую конфигурацию Grub, Chroot в снимок и редактировать
/etc/default/grub , затем разверните снимок и перезагрузку
Chroot в снимок
- Оказавшись внутри Chroot ОС ведет себя как обычная арка, поэтому вы можете установить и удалять пакеты с помощью Pacman или аналогичного
- Не запускайте пепел изнутри Chroot, он может нанести ущерб системе, на месте существует отказоустойчивость, который может быть обойден с
--chroot если вам действительно нужно (не рекомендуется) - Chroot должен быть выведен должным образом с
exit , в противном случае внесенные изменения не будут сохранены - Если вы не выйдете из Chroot «чистый» способ с
exit , рекомендуется запустить ash tmp , чтобы очистить временные файлы, оставшиеся позади
- Вы можете ввести разблокированную оболочку в текущий загрузочный снимок с
- Изменения, внесенные в живую сессию, не сохранены в новых развертываниях
Другие варианты Chroot
- Запускает указанную команду внутри снимка
ash run <snapshot> <command>
- Запускает указанную команду внутри снимка и все его ветви
ash tree-run <tree> <command>
Снимок клона
- Это клонирует снимок как новое дерево
Клонировать дерево рекурсивно
- Это клонирует все дерево рекурсивно
ash clone-tree <snapshot>
Создать новую ветвь дерева
- Добавляет новую ветку в указанный снимок
ash branch <snapshot-to-branch-from>
Снимок клона под тем же родителем
Снимок клона под указанным родителем
- Обязательно синхронизируйте дерево после
ash ubranch <parent> <snapshot>
Создать новое базовое дерево
Развернуть снимок
- Перезагрузитесь, чтобы загрузиться в новый снимок после развертывания
Обновить базу, которые построены новые снимки
- Примечание. Сама база расположена по адресу
/.snapshots/rootfs/snapshot-0 с его конкретными /var файлами и /etc расположенными по адресу /.snapshots/var/var-0 и /.snapshots/etc/etc-0 соответственно, поэтому, если вам действительно нужно сделать изменение конфигурации, вы можете снять с помощью Snapshot.
Управление пакетами
Установка программного обеспечения
- Запустите
ash deploy <snapshot> и перезагрузитесь после установки нового программного обеспечения для применения (если только не используйте Live Install, больше информации ниже) это больше не требуется по умолчанию. - Программное обеспечение также может быть установлено с использованием PACMAN в Chroot
- AUR может быть использован под Chroot
- Flatpak можно использовать для постоянной установки пакета
- Использование контейнеров для дополнительной установки программного обеспечения также является опцией. Легкий способ сделать это с Distrobox
ash install <snapshot> <package>
- После установки вы можете синхронизировать недавно установленные пакеты ко всем ветвям дерева с
- Синхронизация дерева также автоматически обновляет все снимки
- Если вы хотите синхронизировать без обновления (может вызвать дублирование пакета в базе данных), тогда используйте
- Эш также поддерживает установку пакетов без перезагрузки. Это больше не нужно. ### Review_later
ash install <snapshot> -p <package> --live
Удаление программного обеспечения
ash remove <snapshot> <package or packages>
ash tree-rmpkg <tree> <pacakge or packages>
Обновление
Перед тем, как обновить его, рекомендуется клонировать снимок, чтобы вы могли откатиться в случае сбоя
Это обновление только обновляет пакеты систем, чтобы обновить сам пепел см. В этом разделе
Чтобы обновить один снимок
- Рекурсивно обновить целое дерево
Это можно настроить в скрипте (т.е. сценарий Crontab) для простых и безопасных автоматических обновлений
Если система становится непрерывной после обновления, вы можете загрузить последнее рабочее развертывание (выберите в меню Grub), а затем выполнить откат
- Затем вы можете перезагрузиться в рабочую систему
Конфигурация снимка
- Ashos имеет систему конфигурации на снопок
- Используя эту систему, мы можем переключить некоторые функции. Например, для AUR (Arch User Repository), посмотрите под примечаниями Arch ниже.
- Вам нужно иметь текстовый редактор. Для Nano или VI, вообще пропустите Step0:
Шаг 0:
set $EDITOR environment variable (i.e. add 'EDITOR=nvim' line in ~/.bashrc)
reload it (i.e. source ~/.bashrc)
Add 'Defaults env_keep = "EDITOR PROMPT"' line to /etc/sudoers
- Сохранить изменения и уйти
Обратите внимание, что вы можете пропустить линию для /etc /sudoers, но каждый раз, когда вам следует вводить «Sudo -e Ash Edit», чтобы пройти переменную среды с помощью Sudo!
Дополнения
Сохранение изменений конфигурации, внесенных в /etc Постоянно
- Обычно конфигурация должна быть выполнена с помощью
ash chroot , но иногда вы можете применить изменения, которые вы внесли в загруженную систему, постоянно - Для этого используйте следующую команду
- Это позволяет вам настроить вашу систему путем изменения
/etc Как обычно, а затем сохраняя эти изменения.
Двойная загрузка
- Ashos поддерживает двойную загрузку, используя загрузчик Grub
- При установке системы используйте существующий раздел EFI
- Чтобы настроить двойную загрузку, мы должны начать с установки пакета
os-prober :
ash install <snapshot> os-prober
- Теперь мы должны настроить Grub
ash chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit
- Теперь просто разверните снимок для реконфигурирования загрузчика
Если Windows обнаруживается, пепел должен вернуть вывод вдоль линейки Found Windows Boot Manager on... Возможно, вам потребуется сначала установить ntfs-3g и повторно развернуть, если вы не видите запись Windows. ### Review_later
Обновление самого золы
- Эш не обновляется вместе с системой при
ash upgrade - Иногда может быть необходимо обновить сам пепел
- Пепель может быть обновлен с помощью одной команды
Разнообразный
Read-write Доступ к различным частям файловой системы: /.snapshots/rootfs/snapshot-*: ro /.snapshots/etc/etc-*: ro /var: rw /: rw, но сам снимок RW /USR: ro /etc: rw
Для профилей GNOME и KDE мы предполагаем, что пользователь просто хотим, чтобы все работало по умолчанию, и поэтому мы устанавливаем диспетчер входа в систему по умолчанию. Для любого другого профиля мы сосредоточены на минимализме и просто устанавливаем TBSM. Очевидно, можно легко изменить это, если они выберут.
При использовании более старого файла ISO убедитесь, что в сценарии PREP для соответствующего дистрибутизации нельзя не построить. В противном случае существуют обстоятельства, которые, даже если установка кажется успешной, вы можете получить ошибки диспетчера пакетов SYNC при загрузке в дистрибутиве. Этот FixDB может сделать начальную часть процесса установки очень медленной, но может стоить того.
Расширенные функции
Это некоторые расширенные функции, и мы предлагаем вам использовать их только в том случае, если вы готовы к поломке, выполнению резервных копий данных и случайных исправлений. Они могут не быть готовыми в прайм-тайм.
Мульти-боут
Для различных дистрибутов в нескольких загрузках, как правило, следуйте этой процедуре:
- Установите First Distro-A с опцией № 2 при запросе на начало установщика
- Установите последующие дистрибуции с опцией № 3 (Важные: Другие параметры будут уничтожать либо корневые, так и корневые и EFI разделы)
Люкс
Внедрение полного диска с использованием LUKS2 реализовано. Это означает также шифрование /загрузка, которая является экспериментальной особенностью Grub с V2.06. Прямо сейчас в мейнстриме он поддерживает только PBKDF2, а не ARGON2 по умолчанию. Это значительно замедлит загрузку, так как, например, Decryption Cryptomount составляет около 30 секунд на файле ключа 8 КБ. Если вы планируете провести несколько боутов с другими ОС, еще не используйте эту функцию! Мы внимательно развиваемся моннитором и обновляемся как можно скорее.
Изменение переключения
Красота настраиваемости Ashos заключается в том, что мы можем иметь смесь неизменных и невозможных узлов! В лесу/дереве Ашоса можно сделать любой снимок (кроме основания 0 ). Например, чтобы сделать узел 9 изменяемым запустить sudo ash immen 9 . Это делает узел и любые дети (которые создаются впоследствии) изменяемым.
Отладка пепла
- Иногда может быть необходимо отлаживать пепел
- Следующая команда полезна, поскольку она показывает выходы команд при запуске ashpk.py:
sed -e 's| >/dev/null 2>&1||g' /usr/bin/ash > ashpk.py
Отладка установщика
- Работая над любым проектом по развитию ОС, может возникнуть много проблем. Это просто характер отладки в этом проекте и требует терпения!
- При столкновении с проблемами в установке или после начальной настройки, перейдите к Grub и удалите
quiet из аргументов - Загрузку с использованием ctrl+x и сообщите, что вы наблюдаете
- Если возможно, перейдите в TTY2 от Ctrl+Alt+F2 и запустите
journalctl -b и сообщите обратно
Известные ошибки
- В конце установщика, если используется Luks, будет предупреждение
remove ioctl device or resource busy . Их можно игнорировать. Скорее всего, причина: Systemd-Journald - Перегородка не работает, рекомендуется использовать Swapfile или ZRAM вместо этого
- У Docker есть проблемы с разрешениями, исправить запуск
sudo chmod 666 /var/run/docker.sock
- Если вы столкнетесь с любыми проблемами, сообщите о них на странице проблем
Внося
- Светь это репо!
- Пожалуйста, посмотрите под
./src/profiles/ и добавьте настольную среду или Windows Manager, если отсутствует. Пожалуйста, постарайтесь быть максимально минимальными и ванильными. Если у пакета есть разные имена в разных дистрибуциях (например, NetworkManager в Arch и Network-Manager в Debian, создайте файл с суффиксом дистрибуции для профиля, т.е. - Если Ashos еще не поддерживает ваше дистрибутив, вы можете сделать это с «относительной» легкостью! Хорошим способом было бы использовать Arck в качестве шаблона (./src/distros/arch/) для insteller.py, обычно, только некоторые из пронумерованных разделов (обозначенные как
# 1. До # 6. ) необходимо адаптировать к новой ОС. Для Ashpk.py конвертируйте команды в новый менеджер пакетов. - При добавлении новых функций в ASHPK_CORE.PY или ASHPK_DISTRO.PY добавьте их в алфавитном порядке (кроме Main (), которая является последней функцией в ashpk_core.py для более легкого доступа)
- Мы хотели бы, чтобы Ashpk_distro.py максимально маленьким, поэтому легче перевести его на другие дистрибуты. Имейте это в виду, если добавить новые функции/функции ... как можно больше, сделайте функции дистрибесами. (т. Е. Добавить функции в общий ashpk.py, когда это возможно, вместо этого)
- Если вы добавляете новый профиль (Windows Manager, Desktop Environment), абсолютно включайте наиболее минимально требуемые пакеты. Взгляните на Gnome, JWM или i3, например. Чтобы придумать минимальные жизнеспособные пакеты, если у вас уже есть установка Ashos Target Distro (то есть Debian, Arch, Alpine и т. Д.), Создайте тестовый снимок и попытайтесь установить как мало пакетов и посмотреть, работает ли он. В качестве альтернативы, вы можете использовать чистую ванильную среду/chroot Destination Distro или в виртуальной машине или изображении Docker. Некоторые команды SystemD Service могут потребоваться. Обязательно включите их в файл CONF в профиле.
- Взносы кода и документации приветствуются!
- Отчеты об ошибках - хороший способ внести свой вклад в проект
- Перед отправкой проверки запроса на вытягивание вашего кода и обязательно прокомментируйте его должным образом
- Если часть кода нуждается в дальнейшем, укажите это с
### YOUR_COMMENT - При добавлении кода вклад в проект всегда следуйте подходу к вилке и клону: разделите основную организационную репо (Ashos/Ashos) под вашим личным GIT, внесите изменения, выдвините свои изменения в свой GIT и, наконец, создайте запрос на притяжение в основное репо.
Сообщество
- Пожалуйста, не стесняйтесь присоединиться к нам на Matrix или Discord для дальнейшего обсуждения и поддержки!
- Счастливого беззаботного снимка!
Тодос
- Чистый способ полностью уникальный пепел
- Внедрить обслуживание пакета AUR между снимками
- Сделайте Ashos более доступным для пользователей, не являющихся Advanced
Дистриблентные примечания
- Для Packages-distro.conf будет включен самый худой менеджер дисплея (Xorg или Wayland), который включен в официальное репо для данного дистрибутива. Например, для Arch Linux это было бы «стройным», хотя существуют более стройные управляющие отображения, такие как «ly», «tbsm», «CDM» и т. Д., Но, к сожалению, в Aur на момент написания этого документа.
Arch Linux
Аур
- Ашос поддерживает AUR изначально
- Ashos использует помощника Paru Aur для предоставления этой функции
- Если у
ash remove <snapshot> paru уже установлен Par - Чтобы включить поддержку AUR, сначала откройте конфигурацию снимка:
EDITOR=nano ash edit-conf <snapshot> # set the EDITOR variable
- Теперь мы можем включить AUR, редактируя файл так:
- Сохранить изменения и уйти
- Теперь поддержка AUR включена, вы можете использовать
ash install и ash upgrade как обычно, с пакетами AUR
Исправление коррупционных пакетов Pacman или ключевых проблем
- Менеджер пакетов Arch Pacman иногда требует обновления ключей PGP
- Чтобы решить эту проблему, мы можем просто переустановить, они архируют кейринг
ash install <snapshots> archlinux-keyring
Если это не решило проблему, запустите:
И в качестве последнего средства беги: (осторожность: это может иметь нежелательные эффекты)
Альпийский
- В настоящее время существует неустойчивое поведение с Grub Package (не Grub-EFI, что, хотя последнее зависит от прежнего), что приводит к наличию поврежденной базы данных APK на свежей установке / новом снимке! Это в результате, заставляет
ash in операциях тоже терпеть неудачу, поскольку мы проверяем ошибки. Чтобы исправить это, запустите:
ash un -p grub-efi grub -s <snapshot-number>
ash in -p grub-efi -s <snapshot-number>
Кахиос
- Вы можете использовать Arch ISO или Cachyos ISO для установки. Проведите дополнительные аргументы, если использовать прежние (посмотрите на примеры выше)
- Установщик CLI Достаточно, не нужно загружать установщик GUI.
Дебюн
- При выпуске
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ , может показаться, что установщик заморожен, но на самом деле он делает свое дело! Пожалуйста, будьте терпеливы, и вы получите подсказку для начала установки примерно за 30 секунд! По какой -то причине он не показывал то, что происходит в хорошем смысле, поэтому я отказался от команды set echo off . - Убедитесь, что не пропустите Sudo в приведенной выше команде, в противном случае возникнет ошибка разрешения при написании в /мнт/.snapshots/...
Endeavouros
- Запустите процесс загрузки из файла ISO
- Когда Grub будет представлен, нажмите клавиши «E», а затем заканчивайте, чтобы добавить «сингл» к концу параметров ядра. При запросе режима спасения нажмите Enter.
- Это бросит вас в однопользовательский режим вместо среды настольного компьютера по умолчанию
- Если доступ к Интернету не будет доступен, запустите
sudo dhclient - В противном случае, если установить из среды настольных компьютеров, прокомментируйте «SU» в Endevouros_live.sh, поскольку он запрашивает пароль. Вместо этого запустите сценарий как Sudo.
Proxmox
- Используйте Debian Live Iso-Hybrid
- Найдите последнюю версию PVE-KERNEL _*-PVE от http://download.proxmox.com/debian/dists/belease)
-
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ proxmox "Proxmox VE" - Примечание для пакета
postfix : настраивайте пакеты, которые требуют ввода пользователя при установке в соответствии с вашими потребностями. Если у вас есть почтовый сервер в вашей сети, вам следует настроить Postfix в качестве спутниковой системы. Ваш существующий почтовый сервер будет тогда ретрансляционным хостом, который будет направлять электронные письма, отправленные ProxMox VE, к их окончательному получателю. Если вы не знаете, что ввести здесь, выберите только локальный и оставьте имя системы как есть.
Ubuntu
- Ссылки загрузки: ссылка 1, ссылка 2
- В Grub вы можете перенести
single в качестве аргумента ядра Linux для загрузки в одиночном режиме и нажимать Enter для технического обслуживания (поскольку для этого установщика не требуется графический интерфейс, его гораздо быстрее загружается) - По состоянию на июль 2022 года Debian ISO не может быть использован для начальной загрузки «Jammy» (ZSTD BUG: https://bugs.debian.org/892664)
Этот проект лицензирован в соответствии с AGPLV3.