
[Čeština] | [中文] | [پارسی]
Nous avons besoin de votre aide pour traduire cette lecture. Regardez ici!
Ashos (tout système d'exploitation hiérarchique)
Une méta-distribution en forme d'arbre immuable utilisant des instantanés
(Non, ce n'est pas encore une autre peau / "Distro"!)
Veuillez noter que, aux fins de ce projet, se conformer à la manière «pythonique» n'était pas un objectif car à l'avenir, la mise en œuvre pourrait changer en rouille, C, C ++, etc. Nous aimerions être aussi proches que possible de la coquille sans bassin conforme à POSIX.
Table des matières
- Qu'est-ce que Ashos?
- Ashos par rapport à d'autres distributions similaires
- Documentation Ash et Ashos
- Installation
- Post-installation
- Gestion des instantanés et déploiements
- Gestion des forfaits
- Configuration instantanée
- Documentation supplémentaire
- Mise à jour des clés Pacman
- Enregistrer les modifications de configuration apportées à / etc.
- Configuration du double démarrage
- Mise à jour des cendres elle-même
- Divers
- Fonctionnalités avancées
- Multi-boot
- Luks
- Basculer de mutabilité
- Débogage de cendres
- Installateur de Debuggin
- Bogues connues
- Contributif
- Communauté
- Todos
- Notes spécifiques à la distribution
- Cambre
- AUR
- Fixation de packages corrompus Pacman ou de problèmes clés
- Alpin
- Cachyos
- Debian
- Entourer
- Proxmox
- Ubuntu
Qu'est-ce que Ashos?
Vous avez toujours voulu essayer Fedora Rawhide, mais après quelques jours, sa fragilité vous est nerveuse. Ensuite, peut-être que vous avez essayé le cuir brut Fedora Silverblue, mais ses opérations d'ostree compliquées et lentes de type Git ont tué votre humeur! Eh bien, plus! Maintenant, vous pouvez essayer cette distribution de saignement (et bien d'autres distros comme Debian Sid) avec plus de tranquillité d'esprit. Ashos offre une flexibilité ultime pour l'installation de systèmes d'exploitation, par exemple, vous pouvez facilement configurer un proxmox VE immuable!
Ashos est une méta-distribution unique qui:
- vise à apporter l'immuabilité même aux distros qui n'ont pas cette fonctionnalité très utile, c'est-à-dire arch linux, gentoo, etc.
- Enveloppez toute distribution Linux qui peut être amorcée (à peu près n'importe quelle distribution majeure)
- cible pour devenir un installateur universel pour différentes distros et différents environnements de bureau / gestionnaires de fenêtres
- peut installer, déploier et multiboot n'importe quel nombre de distros
Initialement inspiré par Arch Linux, Ashos utilise un système de fichiers racine immuable (en lecture seule) pour se démarquer de toute autre distribution. Le logiciel est installé et configuré dans des arbres instantanés individuels, qui peuvent ensuite être déployés et démarrés. Il n'invente pas encore un autre format de package ou gestionnaire de package, mais s'appuie plutôt sur le gestionnaire de package natif par exemple Pacman d'Arch.
Les cendres sont l'un des arbres les plus anciens du monde et ils ont inspiré le nom de Ashos.
Dans Ashos, il y a plusieurs mots clés:
- Vanille: Nous essayons d'être aussi près de la version "Vanille" de la distribution cible qui est installée.
- Minimalisme: nous adhérons à un système de construction LEGO. Commencez petit et construisez un système aussi complexe que vous le souhaiteriez. L'objectif principal du développement est d'avoir un instantané minimal installé solide, en fonction de quel utilisateur peut avoir des permutations immuables infinies!
- Généralité: Nous nous efforçons de répondre au dénominateur le plus courant entre les distros et les architectures (x64, Aarch64, SPARC, etc.). En tant que tel, lorsqu'il y a un choix entre la commodité et l'exhaustivité / la généralité, nous allons avec ce dernier. Pour clarifier avec un exemple, il peut être plus facile d'utiliser GRUB-BTRFS au lieu d'implémenter notre propre mécanisme de mise à jour GRUB, mais parce que ce package particulier peut ne pas être facilement disponible dans toutes les distros, nous développons une solution spécifique d'Ashos. De cette façon, nous pouvons potentiellement répondre à n'importe quelle distribution à l'avenir!
Cela présente plusieurs avantages:
Sécurité
- Même si l'exécution d'une application avec des autorisations élévées, elle ne peut pas remplacer les bibliothèques du système par des versions malveillantes
Stabilité et fiabilité
- En raison de la montée du système en tant que lecture, il n'est pas possible de remplacer accidentellement les fichiers système
- Si le système rencontre des problèmes, vous pouvez facilement faire reculer le dernier instantané de travail en quelques minutes
- Mises à jour atomiques - La mise à jour de votre système en même temps est plus fiable
- Grâce à la fonction d'instantané, Ashos peut expédier un logiciel de pointe sans devenir instable
- Ashos a besoin de peu de maintenance, car il dispose d'un outil de mise à jour entièrement automatique intégré qui crée des instantanés avant les mises à jour et vérifie automatiquement si le système a mis à niveau correctement avant de déployer le nouvel instantané
Configurabilité
- Avec les instantanés organisés en arbre, vous pouvez facilement avoir plusieurs configurations différentes de votre logiciel disponibles, avec des packages variables, sans aucune interférence
- Par exemple: vous pouvez installer un seul bureau Gnome, puis avoir 2 instantanés sur le dessus - l'un avec vos jeux vidéo, avec le plus récent noyau et les pilotes, et l'autre pour le travail, avec le noyau LTS et un logiciel plus stable, vous pouvez ensuite basculer entre ceux-ci en fonction de ce que vous essayez de faire
- Vous pouvez également essayer facilement un logiciel sans avoir à vous soucier de casser votre système ou de le polluer avec des fichiers inutiles, par exemple, vous pouvez essayer un nouvel environnement de bureau dans un instantané, puis supprimer l'instantané après, sans modifier du tout votre système principal
- Cela peut également être utilisé pour les systèmes multi-utilisateurs, où chaque utilisateur a un système complètement séparé avec différents logiciels, et pourtant ils peuvent partager certains packages tels que les grains et les pilotes
- Ashos vous permet d'installer un logiciel en chrooting dans des instantanés, donc (par exemple dans la saveur d'Arch), vous pouvez utiliser des logiciels tels que l'AUR pour installer des packages supplémentaires
- Ashos est, très personnalisable, vous pouvez choisir exactement le logiciel que vous souhaitez utiliser (tout comme Arch Linux)
Grâce à sa fiabilité et à ses mises à niveau automatiques, Ashos convient bien aux appareils à usage unique ou intégrés
Il en fait également un bon poste de travail ou une distribution générale à l'aide de conteneurs de développement et FlatPak pour les applications de bureau
Remarque importante: Essayez d'abord Ashos dans une machine virtuelle et soyez à l'aise avant de l'installer sur du métal nu. L'installateur d'Ashos est * impitoyable et il suppose que l'utilisateur sait ce qu'ils font. Exécution du programme d'installation comme cela est en train d'essuyer le disque!
Alors qu'Ashos s'efforce d'être solide et de suivre une structure de type LEGO (démarrer petit, personnaliser au fur et à mesure), nous concentrons principalement le développement sur la base, ce qui signifie par défaut qu'aucun environnement de bureau (pas même le gestionnaire de fenêtres) n'est installé. C'est par conception car, autrement, l'équipe doit soutenir de nombreux DES sur de nombreuses distros. Ce qui est fourni, ce sont profiles . Comme les DES / WMS ne sont que des packages, avec une puissance d'instantané, on peut utiliser Ash pour installer le DE / WM souhaité. Par exemple pour installer Gnome dans Snapshot 1:
`ash clone 0` : create snapshot #1
`ash install 1 -P gnome` : install gnome in snapshot #1
`ash deploy 1`
`reboot`
Ashos par rapport à d'autres distributions similaires
- Nixos / GNU Guix - Par rapport à Nixos, Ashos est un système plus traditionnel avec la façon dont il est configuré et maintenu. Bien que Nixos soit entièrement configuré à l'aide du langage de programmation NIX, Ashos utilise le gestionnaire de packages natif de la distribution cible, par exemple Pacman pour Arch, APT-get pour Debian, etc. Ashos consomme moins de stockage et la configuration de votre système est plus rapide et plus facile (moins reproductible cependant), il vous offre également plus d'options de personnalisation. Ashos est conforme à FHS, garantissant une bonne compatibilité des logiciels. Contrairement à Nixos, vous n'avez pas besoin d'avoir un doctorat. en informatique pour simplement exécuter un système d'exploitation immuable
- Ashos permet une configuration déclarative en utilisant ANSIBLE, pour des fonctionnalités quelque peu similaires à Nixos
- Fedora SilverBlue / Kinoite - Ashos est plus personnalisable, mais nécessite plus de configuration manuelle. Ashos prend en charge la double botte, contrairement à SilverBlue.
- OpenSUSE MICROOS - Ashos est un système plus personnalisable, mais nécessite encore une fois un peu plus de configuration manuelle. Les microos fonctionnent de manière similaire dans la façon dont il utilise des instantanés BTRFS. Ashos a une installation officielle de KDE, mais prend également en charge d'autres environnements de bureau, tandis que les microos ne prennent en charge que GNOME. Ashos prend en charge le double démarrage, ainsi que le système en direct du système et l'installation de packages sans redémarrer
Installation
- (Remarque: tous les scripts pendant l'installation doivent être exécutés avec des privilèges de super utilisateur)
- Ashos est installé à partir de l'ISO officielle en direct pour la distribution cible. Par exemple, Arch Linux, Debian / Debian Netinstaller etc.
- Arch Iso peut généralement être utilisé pour bootstrap d'autres distros, sauf: utilisez Debian Live Iso-Hybrid pour bootstrap Debian, Ubuntu Iso pour bootstrap Ubuntu
- Selon l'ISO en direct, il est très important que les scripts dans
./src/prep/ soient exécutés (préparation de l'environnement en direct ainsi que de partition / formatage), sinon il y aurait une erreur car le temps n'est pas synchronisé, etc. - Les commandes pour résoudre les problèmes de base de données du package dans ISO en direct (c'est-à-dire arch_live.iso) prennent beaucoup de temps à exécuter. On peut les commenter pour que l'installateur fonctionne beaucoup plus rapidement. Ils sont principalement inclus pour l'installation de la machine virtuelle où les problèmes de synchronisation du temps sont abondants.
- Si vous rencontrez des problèmes d'installation de packages pendant l'installation, assurez-vous d'utiliser la dernière ISO et mettez à jour le clés du gestionnaire de packages si nécessaire
- Si vous exécutez à partir d'un ancien arch ISO, exécutez les commandes de la section
# Fix signature invalid error dans ./src/prep/arch-live.sh - Vous avez besoin d'une connexion Internet pour installer Ashos
- Ashos expédiait avec 3 profils d'installation, un pour les installations minimales et deux pour le bureau (gnome, plasma KDE). Pour le rendre plus modulaire, nous l'avons repensé et, par défaut, il installe un instantané minimum de base minimum. Une fois cela fait, vous pouvez installer n'importe quel environnement de bureau que vous souhaitez. Par exemple pour Gnome, une fois démarré dans un instantané de base, exécutez:
ash branch 0 # This produces node #N
ash install N --profile gnome
ash deploy N
- La prise en charge de plus de DE sera ajoutée, mais elle ne fera pas partie de l'installation de base.
- Le script d'installation est facilement configurable et ajusté pour vos besoins (mais cela fonctionne très bien sans aucune modification)
Installer Git First - Cela nous permettra de télécharger le script d'installation
Référentiel de clones
git clone "https://github.com/ashos/ashos"
cd ashos
Lecteur de partition et de format
- Si vous installez sur un système de bios, utilisez une table de partition DOS (MBR)
- Sur EFI, vous pouvez utiliser GPT
- La partition EFI doit être formatée sur FAT32 avant d'exécuter le programme d'installation (
mkfs.fat -F32 /dev/<part> ) - Il y a des scripts de préparation sous
./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!
Exécuter le programme d'installation
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.
Les arguments à l'intérieur des crochets sont facultatifs. En ce qui concerne le quatrième argument: disons si vous souhaitez installer Alpine Linux à l'aide d'Arch Linux ISO, exécutez python3 setup.py /dev/vda2 /dev/vda /dev/vda1 alpine .
Configuration de la publication
- La configuration du post d'installation n'est pas nécessaire si vous installez l'une des éditions de bureau (Gnome ou KDE)
- Beaucoup d'informations sur la façon de gérer la configuration post-stalle sont disponibles sur la page Archwiki
- Voici un petit exemple de procédure de configuration:
- Commencez par créer un nouvel instantané à partir de
base à l'aide ash clone 0 - Chroot à l'intérieur de ce nouveau instantané (
ash chroot <snapshot> ) et commencez à configurer- Commencez par ajouter un nouveau compte utilisateur:
useradd username - Définir le
passwd username du mot de passe utilisateur - Définissez maintenant un nouveau mot de passe pour Root User
passwd root - Vous pouvez désormais installer des packages supplémentaires (environnements de bureau, technologies de conteneurs, Flatpak) à l'aide de Pacman
- Une fois terminé, quittez le chroot avec
exit - Ensuite, vous pouvez le déployer avec
ash deploy <snapshot>
Documentation supplémentaire
- Pour plus d'informations qui ne sont pas couvertes dans ce projet, il est conseillé de se référer à la distribution cible IE Arch Wiki
- Signaler les problèmes / bogues sur la page des problèmes GitHub
- Astuce: vous pouvez utiliser
ash --help pour obtenir une feuille de triche rapide de toutes les commandes disponibles - Idéalement, nous aimerions garder Ash comme un seul fichier exécutable
- Le script ASH est divisé en 2 fichiers: code commun (ashpk_core.py) et code spécifique à la distribution (c'est-à-dire gentoo.py). Notez qu'aucun de ces fichiers ne peut être exécuté autonome (importer un script dans l'autre n'est pas destiné). La division vise simplement à faciliter l'utilisation des fichiers comme modèles dans le développement de cendres pour d'autres distributions. Au moment de l'installation d'une distribution, les deux fichiers sont simplement concaténés.
- Pour ne pas avoir besoin de polices supplémentaires, nous utilisons le style ASCII lors de l'impression d'arbre à cendre. Pour une sortie plus agréable, n'hésitez pas à remplacer Asciistyle () par contstyle (), contoundStyle () ou Doublestyle ()
- L'autre bonne chose à propos d'Ashos est que vos distros connexes sont très construits. Par exemple, l'installateur pour Arch et Manjaro est très similaire, la différence étant juste les références de package!
Instantané de base
- L'instantané
0 est réservé à l'instantané du système de base, il ne peut pas être modifié et ne peut être mis à jour qu'à l'aide de ash base-update
Gestion des instantanés
Afficher l'arbre du système de fichiers
- La sortie peut ressembler à ceci:
root - root
├── 0 - base snapshot
└── 1 - multi-user system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
Ajouter une description à un instantané
- Les instantanés vous permettent d'ajouter une description à eux pour une identification plus facile
ash desc <snapshot> <description>
Supprimer un arbre
- Cela supprime l'arbre et toutes ses branches
Configuration de démarrage personnalisée
- Si vous avez besoin d'utiliser une configuration de grub personnalisée, chroot dans un instantané et modifier
/etc/default/grub , déploiez l'instantané et redémarrez
chroot dans un instantané
- Une fois à l'intérieur du chroot, le système d'exploitation se comporte comme une arche ordinaire, afin que vous puissiez installer et supprimer des packages à l'aide de Pacman ou similaire
- Ne faites pas de cendres de cendre de l'intérieur d'un chroot, cela pourrait endommager le système, il y a une sécurité en place, qui peut être contournée avec
--chroot si vous en avez vraiment besoin (non recommandée) - Le chroot doit être sorti correctement avec
exit , sinon les modifications apportées ne seront pas enregistrées - Si vous ne sortez pas de chroot la manière "propre" avec
exit , il est recommandé d'exécuter ash tmp pour effacer les fichiers temporaires laissés
- Vous pouvez entrer une coque déverrouillée à l'intérieur de l'instantané démarré actuel avec
- Les modifications apportées à la session en direct ne sont pas enregistrées sur de nouveaux déploiements
Autres options de chroot
- Exécute une commande spécifiée dans Snapshot
ash run <snapshot> <command>
- Exécute une commande spécifiée dans un instantané et toutes ses branches
ash tree-run <tree> <command>
Instantané clone
- Cela clones l'instantané comme un nouvel arbre
Cloner un arbre récursivement
- Cela clones un arbre entier récursivement
ash clone-tree <snapshot>
Créer une nouvelle branche d'arbre
- Ajoute une nouvelle branche à un instantané spécifié
ash branch <snapshot-to-branch-from>
Clone instantané sous le même parent
Clone instantané sous un parent spécifié
- Assurez-vous de synchroniser l'arbre après
ash ubranch <parent> <snapshot>
Créer un nouvel arbre de base
Déploier un instantané
- Redémarrez pour démarrer dans le nouveau instantané après le déploiement
Mettre à jour la base de nouveaux instantanés
/.snapshots/etc/etc-0 : La base elle-même est située sur /.snapshots/rootfs/snapshot-0 avec ses fichiers spécifiques /var et /etc situés à /.snapshots/var/var-0
Gestion des forfaits
Installation de logiciels
- Exécutez
ash deploy <snapshot> et redémarrez après l'installation de nouveaux logiciels pour les modifications à appliquer (sauf en utilisant l'installation en direct, plus d'informations ci-dessous) Ce n'est plus nécessaire par défaut. - Le logiciel peut également être installé à l'aide de Pacman dans un chroot
- Aur peut être utilisé sous le chroot
- Flatpak peut être utilisé pour une installation de forfait persistant
- L'utilisation de conteneurs pour une installation de logiciels supplémentaires est également une option. Un moyen facile de le faire est avec Distrobox
ash install <snapshot> <package>
- Après l'installation, vous pouvez synchroniser les packages nouvellement installés sur toutes les branches de l'arbre avec
- La synchronisation de l'arborescence met également à jour automatiquement tous les instantanés
- Si vous souhaitez vous synchroniser sans mettre à jour (pourrait entraîner la duplication du package dans la base de données), utilisez
- Ash prend également en charge l'installation de packages sans redémarrer. Ce n'est plus nécessaire. ### review_later
ash install <snapshot> -p <package> --live
Suppression du logiciel
ash remove <snapshot> <package or packages>
ash tree-rmpkg <tree> <pacakge or packages>
Mise à jour
Il est conseillé de cloner un instantané avant de le mettre à jour, afin que vous puissiez revenir en cas d'échec
Cette mise à jour ne met à jour que les packages système, afin de mettre à jour Ash lui-même, voir cette section
Pour mettre à jour un seul instantané
- Pour mettre à jour récursivement un arbre entier
Cela peut être configuré dans un script (c'est-à-dire un script crontab) pour des mises à jour automatiques faciles et sûres
Si le système devient unootable après une mise à jour, vous pouvez démarrer le dernier déploiement de travail (sélectionner dans le menu Grub), puis effectuer un Rollback
- Ensuite, vous pouvez redémarrer à un système de travail
Configuration instantanée
- Ashos a un système de configuration par snapshot
- En utilisant ce système, nous pouvons basculer certaines fonctionnalités. Par exemple pour AUR (Repository d'utilisateur Arch), consultez les notes Arch ci-dessous.
- Vous devez avoir un éditeur de texte. Pour Nano ou VI, sautez complètement Step0:
Étape0:
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
- Enregistrer les modifications et arrêter
Notez que vous pouvez sauter la ligne pour / etc / sudoers, mais chaque fois que vous devez plutôt taper 'sudo -e Ash edit' pour passer la variable d'environnement avec sudo!
Extras
Enregistrer les modifications de configuration apportées à /etc
- Normalement, la configuration doit être effectuée avec
ash chroot , mais parfois vous voudrez peut-être appliquer les modifications que vous avez apportées au système démarré de manière persistante - Pour ce faire, utilisez la commande suivante
- Cela vous permet de configurer votre système en modifiant
/etc comme d'habitude, puis en enregistrant ces modifications.
Double démarrage
- Ashos prend en charge le double démarrage à l'aide du chargeur de démarrage GRUB
- Lors de l'installation du système, utilisez la partition EFI existante
- Pour configurer le double démarrage, nous devons commencer par installer le package
os-prober :
ash install <snapshot> os-prober
- Maintenant, nous devons configurer Grub
ash chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit
- Maintenant, déployez simplement l'instantané pour reconfigurer le chargeur de démarrage
Si Windows est détecté, Ash doit retourner la sortie sur les lignes de Found Windows Boot Manager on... Vous devrez peut-être installer ntfs-3g d'abord et redéployer si vous ne voyez pas une entrée Windows. ### review_later
Mise à jour des cendres elle-même
- Ash n'est pas mis à jour à côté du système lorsque
ash upgrade est utilisée - Parfois, il peut être nécessaire de mettre à jour Ash lui-même
- Ash peut être mis à jour avec une seule commande
Divers
Accès en lecture-écriture à différentes parties du système de fichiers: /
Pour les profils GNOME et KDE, nous supposons que l'utilisateur voulait que les choses fonctionnent par défaut et en tant que tel, nous installons le gestionnaire de connexion par défaut. Pour tout autre profil, nous nous concentrons sur le minimalisme et installons simplement TBSM. On peut évidemment modifier cela s'ils le choisissent.
Lorsque vous utilisez un fichier ISO plus ancien, assurez-vous de décommenter la ligne FixDB dans le script de préparation pour la distribution correspondante. Sinon, il y a des circonstances qui, même si l'installation semble réussir, vous pouvez obtenir des erreurs de base de données Sync Package Manager lorsque vous êtes démarré dans votre distribution. Ce FIXDB peut rendre la partie initiale du processus d'installation très lent, mais peut en valoir la peine.
Fonctionnalités avancées
Ce sont une fonctionnalité avancée et nous vous suggérons de les utiliser uniquement si vous êtes prêt pour la rupture, effectuant des sauvegardes de données et des correctifs occasionnels. Ils peuvent ne pas être prêts aux heures de grande écoute.
Multi-boot
Pour multipaser différentes distributions, suivez généralement cette procédure:
- Installez la première distribution avec l'option numéro 2 lorsqu'elle est invitée au début de l'installateur
- Installez les distributions conséquentes avec l'option numéro 3 (important: d'autres options essuieront les partitions racine ou racine et EFI)
Luks
Le chiffrement à disque complet à l'aide de LUKS2 est implémenté. Cela signifie également le cryptage / démarrage qui est une caractéristique expérimentale de Grub depuis V2.06. À l'heure actuelle, dans le grand public, il ne prend en charge que PBKDF2 et non l'Argon2 par défaut. Cela ralentira considérablement le démarrage, car par exemple le décryptage de Cryptomount est d'environ 30 secondes sur le fichier de clé de 8 kb. Si vous prévoyez de multi-butin avec d'autres systèmes d'exploitation, n'utilisez pas encore cette fonctionnalité! Nous avons le développement de Grub de près et nous mettrons à jour dès que possible.
Basculer de mutabilité
La beauté de la personnalisation des Ashos est que nous pouvons avoir un mélange de nœuds immuables et non immuables! Dans la forêt / arbre d'Ashos, on peut faire un instantané (autre que la base 0 ) mutable. Par exemple, pour faire du nœud 9 mutable run sudo ash immen 9 . Cela rend mutable un nœud et tous les enfants (créés par la suite).
Débogage de cendres
- Parfois, il peut être nécessaire de déboguer les cendres
- La commande suivante est utile car elle affiche des sorties de commandes lors de l'exécution de ashpk.py:
sed -e 's| >/dev/null 2>&1||g' /usr/bin/ash > ashpk.py
Installateur de débogage
- Tout en travaillant sur n'importe quel projet de développement du système d'exploitation, de nombreux problèmes pourraient survenir. C'est juste la nature du débogage dans ce projet et a besoin de patience!
- Lorsque vous faites face à des problèmes dans l'installateur ou une fois la configuration initiale terminée, allez à Grub et supprimez
quiet des arguments - Démarrer en utilisant Ctrl + X et signaler ce que vous observez
- Si possible, accédez à TTY2 par Ctrl + Alt + F2 et exécutez
journalctl -b et reportez-vous
Bogues connues
- À la fin de l'installateur, si LUKS est utilisé, il y aurait un avertissement
remove ioctl device or resource busy . Ils peuvent être ignorés. Cause très probablement: SystemD-Journald - La partition d'échange ne fonctionne pas, il est recommandé d'utiliser un fichier d'échange ou ZRAM à la place
- Docker a des problèmes avec les autorisations, pour réparer l'exécution
sudo chmod 666 /var/run/docker.sock
- Si vous rencontrez des problèmes, signalez-les sur la page des problèmes
Contributif
- Star ce repo!
- Veuillez jeter un coup d'œil sous
./src/profiles/ et ajoutez un environnement de bureau ou Windows Manager en cas de manque. Veuillez essayer d'être aussi minimal et de vanille que possible. Si un package a des noms différents dans différentes distros (comme NetworkManager dans Arch et Network-Manager dans Debian, créez un fichier avec le suffixe de distribution pour le profil IE sous Gnome: Packages-Arch.txt vs Packages-debian.txt - Si Ashos ne prend pas déjà en charge votre distribution, vous pouvez le faire avec une facilité «relative»! Un bon moyen serait d'utiliser Arch comme modèle (./src/distros/arch/) pour installateur.py, généralement, seulement certaines des sections numérotées (indiquées comme
# 1. À # 6. ) Doivent être adaptées à un nouveau système d'exploitation. Pour Ashpk.py, convertissez les commandes en New Package Manager. - Lorsque vous ajoutez de nouvelles fonctions à ashpk_core.py ou ashpk_distro.py, ajoutez-les dans l'ordre alphabétique (sauf main () qui est la dernière fonction dans ashpk_core.py pour un accès plus facile)
- Nous aimerions garder Ashpk_distro.py aussi petit que possible, il est donc plus facile de le traduire par d'autres distros. Gardez cela à l'esprit si l'ajout de nouvelles fonctionnalités / fonctions ... autant que possible, faites des fonctionnalités agridées. (c'est-à-dire ajouter des fonctions dans le Ashpk.py partagé lorsque cela est possible à la place)
- Si vous ajoutez un nouveau profil (Windows Manager, Desktop Environment), incluez absolument les packages les plus minimes. Jetez un œil à Gnome, JWM ou i3 par exemple. Pour trouver un minimum de packages viables, si vous avez déjà une installation Ashos de la distribution cible (c'est-à-dire Debian, Arch, Alpine, etc.), créez un instantané de test et essayez d'installer en tant que quelques packages et voyez si cela fonctionne. Alternativement, vous pouvez utiliser un environnement / chroot vanille propre de la distribution de destination ou dans une machine virtuelle ou une image Docker. Certaines commandes de service SystemD peuvent être nécessaires. Assurez-vous également de les inclure dans le fichier de profil conf.
- Les contributions du code et de la documentation sont les bienvenues!
- Les rapports de bogues sont également un bon moyen de contribuer au projet
- Avant de soumettre un test de demande de traction, votre code et assurez-vous de le commenter correctement
- Si une partie du code a besoin de todo, indiquez-la avec
### YOUR_COMMENT - Lorsque vous ajoutez un code contributif au projet, suivez toujours l'approche Fork and-Clone: fourchez le principal référentiel organisationnel (Ashos / Ashos) sous votre Git personnel, apportez les modifications, poussez vos modifications à votre GIT et enfin créez une demande de traction vers le dépôt principal.
Communauté
- N'hésitez pas à nous rejoindre sur Matrix ou Discord pour plus de discussions et de soutien!
- Bonnes instantanée sans souci!
Todos
- Une façon propre de se désinterir complètement
- Implémentez la maintenance des packages AUR entre les instantanés
- Rendre les Ashos plus accessibles aux utilisateurs non avancés
Notes spécifiques à la distribution
- Pour Packages-Distro.Conf, le gestionnaire d'affichage le plus maigre (soit Xorg ou Wayland) qui est inclus dans le dépôt officiel de la distribution donnée serait inclus. Par exemple pour Arch Linux, ce serait «mince», même s'il y a des gestionnaires d'affichage plus minces comme «ly», «tbsm», «cdm» etc. Mais malheureusement, il y a dans AUR au moment de la rédaction de ce document.
Arch Linux
AUR
- Ashos soutient l'AUR native
- Ashos utilise le paru auur assistant pour fournir cette fonctionnalité
- Si vous avez déjà installé PARU, assurez-vous qu'il est d'abord supprimé de l'instantané:
ash remove <snapshot> paru , puis passez aux autres étapes - Pour activer la prise en charge de l'AUR, ouvrez d'abord la configuration de l'instantané:
EDITOR=nano ash edit-conf <snapshot> # set the EDITOR variable
- Maintenant, nous pouvons activer AUR en modifiant le fichier comme tel:
- Enregistrer les modifications et arrêter
- Maintenant, le support AUR est activé, vous pouvez utiliser
ash install et ash upgrade comme d'habitude avec les packages AUR
Fixation de packages corrompus Pacman ou de problèmes clés
- Le gestionnaire de packages Pacman d'Arch nécessite parfois un rafraîchissement des clés PGP
- Pour résoudre ce problème, nous pouvons simplement réinstaller leur clés
ash install <snapshots> archlinux-keyring
Si cela ne résolvait pas le problème, exécutez:
Et en dernier recours, courez: (Attention: cela pourrait avoir des effets indésirables)
Alpin
- Actuellement, il y a un comportement erratique avec Package Grub (pas Grub-EFI qui, même si ce dernier dépend de l'ancien), ce qui se traduit par une base de données APK endommagée sur une nouvelle installation / nouvelle instantanée! En conséquence, ce qui fait échouer
ash in les opérations car nous vérifions les erreurs. Pour résoudre ce problème, exécutez:
ash un -p grub-efi grub -s <snapshot-number>
ash in -p grub-efi -s <snapshot-number>
Cachyos
- Vous pouvez utiliser ISO ISO ou CACHYOS ISO pour l'installation. Passez des arguments supplémentaires si vous utilisez ancien (regardez les exemples ci-dessus)
- L'installateur CLI suffit, pas besoin de télécharger l'installateur de GUI.
Debian
- Lors de la publication
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ , il peut sembler que l'installateur a figé mais il fait en fait son truc! Veuillez être patient et vous obtiendrez une invite pour initier l'installation en environ 30 secondes! Pour une raison quelconque, cela ne montrait pas ce qui se passe de manière agréable, alors j'ai mis une commande set echo off . - Assurez-vous de ne pas manquer Sudo dans la commande ci-dessus, sinon il y aurait une erreur d'autorisation lors de l'écriture à /mnt/.snapshots / ...
Entourer
- Démarrer le processus de démarrage à partir du fichier ISO
- Lorsque GRUB est invité, appuyez sur Keys 'E', puis terminez pour ajouter 'single' à la fin des paramètres du noyau. Lorsqu'il est invité en mode de sauvetage, appuyez sur Entrée.
- Cela vous déposera en mode utilisateur unique au lieu d'un environnement de bureau par défaut
- Si l'accès à Internet n'est pas disponible, exécutez
sudo dhclient - Sinon, si vous installez à partir de l'environnement de bureau, commentez "Su" dans Endevouros_Live.sh car il demandera un mot de passe. Exécutez plutôt le script comme sudo.
Proxmox
- Utiliser Debian Live Iso-hybride
- Trouvez la dernière version de PVE-Kernel _ * - PVE de http://download.proxmox.com/debian/dists/{release }/pve-no-subscription/binary-amd64/ et mettez à jour Kernel_version.
-
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ proxmox "Proxmox VE" - Remarque pour le package
postfix : configurer les packages qui nécessitent une entrée utilisateur lors de l'installation en fonction de vos besoins. Si vous avez un serveur de messagerie dans votre réseau, vous devez configurer Postfix en tant que système satellite. Votre serveur de messagerie existant sera alors l'hôte de relais qui acheminera les e-mails envoyés par Proxmox VE à son destinataire final. Si vous ne savez pas quoi entrer ici, choisissez uniquement local et laissez le nom du système tel quel.
Ubuntu
- Télécharger les liens: lien 1, lien 2
- Dans Grub, vous pouvez passer
single comme argument au noyau Linux pour démarrer en mode unique et appuyer sur Entrée pour la maintenance (car aucune interface graphique n'est requise pour ce programme d'installation, il est beaucoup plus rapide à démarrer) - En juillet 2022, Debian ISO ne peut pas être habitué à bootstrap 'Jammy' (ZSTD Bug: https://bugs.debian.org/892664)
Ce projet est sous licence dans l'AGPLV3.