Bedrock Linux: Le kit Lego pour construire la distribution Linux parfaite





Depuis l'avènement de Linux, de nombreuses distributions sont apparues assez rapidement: Slack, RedHat, Debian, SUSE, etc. Puis le problème du choix d'une distribution s'est posé, car chacune d'elles a ses propres caractéristiques et avantages qui la rendent spéciale. RedHat et Debian sont les distributions les plus stables et les plus conservatrices, Ubuntu se concentre sur la convivialité et possède une excellente interface utilisateur, Gentoo est libre de choix et de flexibilité.



Chaque utilisateur de Linux a eu des moments où il lui manquait certaines des fonctionnalités implémentées dans d'autres distributions. Beaucoup de gens à un moment donné n'ont pas aimé que Debian passe à systemd et ils ont créé une nouvelle distribution basée sur lui - Devuan. Certains sont passés à Gentoo, où l'utilisateur peut créer un environnement avec deux systèmes init: openrc et systemd.



Différentes distributions gèrent ce problème différemment. L'installation d'un package qui ne se trouve pas dans le référentiel normal est résolue à l'aide de conteneurs Docker ou à l'aide des systèmes de packages autonomes snap et flatpak. Vous pouvez même installer des packages RPM sur des systèmes avec le gestionnaire de packages DEB. Gentoo prend en charge les packages RPM et DEB. Tout cela fonctionne, mais il ne s'adapte pas bien et n'est pas très stable.



Les créateurs de Bedrock Linux sont allés plus loin et ont créé une méta-distribution à part entière. Il est possible d'utiliser non seulement des packages, mais également des composants de diverses distributions Linux, comme des briques Lego. Dans un environnement, vous pouvez créer un système à partir de plusieurs OS Linux, par exemple en installant des packages Ubuntu supplémentaires en plus des composants de base Debian et Arch. Le script d'installation est disponible pour les plates-formes suivantes.



  • aarch64;
  • armv7hl;
  • armv7l;
  • mips64el;
  • mips64;
  • mips;
  • mipsel;
  • ppc64;
  • ppc64le;
  • ppc;
  • s390;
  • x86_64;
  • x86;


Au fait, pourquoi un script d'installation, et non un disque d'installation à part entière, ou une image? La raison en est que Bedrock Linux n'a pas sa propre distribution canonique, mais plutôt un ensemble de recettes pour assembler un système d'exploitation à partir d'un ensemble d'ingrédients. En cela, Bedrock Linux est similaire à une autre méta-distribution Gentoo, mais dans une tentative d'embrasser l'immensité, il a poussé jusqu'aux limites de la raison, et peut-être les a franchies.



Installation de Bedrock et commandes de base



En utilisant une distribution Linux traditionnelle déjà installée avec un script d'installation, Bedrock la transforme en un système hybride. Par exemple, vous avez déjà installé Debian, en utilisant le script d'installation, vous obtenez un environnement co-localisé avec Ubuntu. Vous devez d'abord exécuter en tant que root.



sh ./bedrock-linux-<release>-<arch>.sh --hijack
      
      





Le script vous avertira que ce ne sont pas des exercices.



* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                               *
* Continuing will:                                              *
* - Move the existing install to a temporary location           *
* - Install Bedrock Linux on the root of the filesystem         *
* - Add the previous install as a new Bedrock Linux stratum     *
*                                                               *
* YOU ARE ABOUT TO REPLACE YOUR EXISTING LINUX INSTALL WITH A   *
* BEDROCK LINUX INSTALL! THIS IS NOT INTENDED TO BE REVERSIBLE! *
*                                                               *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Please type "Not reversible!" without quotes at the prompt to continue:
> Not reversible!
__          __             __
\ \_________\ \____________\ \___
 \  _ \  _\ _  \  _\ __ \ __\   /
  \___/\__/\__/ \_\ \___/\__/\_\_\
          Bedrock Linux 0.7.19 Poki
      
      





Il est temps de vous familiariser avec le tableau de compatibilité des distributions Linux. Les principales distributions populaires ont un bon degré de support, en dehors éventuellement d'OpenSUSE. Le déchargement et les installations sans assistance ne sont pas pris en charge pour Linux Mint. N'oubliez pas non plus le tableau de compatibilité entre les composants . Les fichiers binaires, par exemple, se transfèrent bien d'une distribution à une autre, mais pas les polices.



Si toutes les vérifications réussissent, le script apporte les modifications nécessaires au système d'exploitation, après quoi vous devez redémarrer l'ordinateur pour que les modifications prennent effet. À partir de ce moment, l'utilisateur se trouve dans l'environnement Bedrock Linux. Vous pouvez maintenant installer un système d'exploitation supplémentaire dans un conteneur appelé strate - quelque chose comme un environnement chroot, dans lequel des trous spéciaux sont faits pour communiquer avec d'autres strates.

Cependant, avant de commencer, il est conseillé de se familiariser avec le manuel d'instructions en appelant brl tutorial basics. Les commandes Bedrock les plus simples, le but de chacune est évident.



# brl update
# brl version
# brl ctatus
      
      





Consultez la liste des distributions disponibles et installez-la.



# brl fetch --list
# brl fetch alpine
# brl fetch void
      
      







Comment les distributions Bedrock interagissent-elles?



Dans certaines situations, vous pouvez exécuter des commandes à partir de différentes strates comme si elles faisaient partie du même système d'exploitation Linux familier. Par exemple, les commandes void et alpine peuvent être utilisées dans le même pipeline. La première commande définit le package jq sur alpine, la seconde - jo sur void. Le pipeline lit du second et se transfère au premier, tout se passe de manière transparente pour l'utilisateur.



$ sudo apk add jq
$ sudo xbps-install -y jo
$ jo "distro=bedrock" | jq ".distro"
      
      





Le système d'exploitation Linux d'origine Debian, qui était affecté par --hijack, n'est plus qu'une strate. Son existence peut être devinée en exécutant certaines de ces commandes.



$ brl which ls	
debian
$ brl which /
debian
      
      





Plus spécifiquement, la sortie de ces commandes correspondra au contenu du fichier / etc / os-release tel qu'il est vu à partir du processus shell actuel. C'est logique, puisque chaque strate ne voit que son propre fichier local, sinon Debian et Ubuntu installés en parallèle trébucheraient sur le contenu du fichier /etc/apt/sources.list.



Cependant, si tous les fichiers étaient locaux, différentes distributions ne pourraient pas communiquer entre elles. Pour que cela soit possible, des fichiers globaux sont nécessaires. De tels fichiers existent.



$ brl which /bedrock/etc/bedrock.conf	
global
$ brl which /run	
global
$ brl which /tmp
global

      
      





Pour les cas où les processus d'une distribution doivent atteindre les fichiers locaux d'une autre, des chemins croisés sont implémentés. Par exemple, pour lire le fichier os-release d'une strate à une autre, vous devez accéder aux ressources du système de fichiers en utilisant le chemin / bedrock / strata /. Le substrat rocheux lui-même ne sert qu'à la lecture croisée et à l'écriture de fichiers. En interne, crossfs est un système de fichiers FUSE dans lequel les fichiers demandés sont écrasés à la volée pour assurer la compatibilité entre les différentes strates.



$ brl which /bedrock/strata/bedrock/etc/os-release 
bedrock
$ cat /bedrock/strata/bedrock/etc/os-release
NAME="Bedrock Linux"
ID=bedrock
ID_LIKE=bedrocklinux
VERSION="0.7.19 (Poki)"
VERSION_ID="0.7.19"
PRETTY_NAME="Bedrock Linux 0.7.19 Poki"
HOME_URL="https://bedrocklinux.org"
$ brl which /bedrock/strata/my-alpine/etc/os-release 
my-alpine
      
      





Si vous devez exécuter une commande interne d'une strate spécifique, vous devez utiliser le préfixe approprié.



$ strat void sh -c 'apk --help'
      
      





Mise à jour du substrat rocheux



Bedrock est simple et direct à mettre à jour Comme toutes les distributions Linux, exécutez simplement brl update en tant que root. Cette commande mettra à jour uniquement la strate Bedrock, le reste des strates est mis à jour avec leurs propres outils standard: par exemple, yum update, ou dnf update pour Redhat et CentOS.



Suppression de strates



Rien de trop compliqué - d'abord la distribution est désactivée, puis la désinstallation suit.



$ sudo brl disable alpine
$ sudo brl remove alpine
$ sudo remove -d void
      
      





La dernière commande combine les opérations de désactivation et de suppression.



À quoi sert réellement Bedrock Linux?



À ce stade, de nombreux lecteurs se posent probablement la question: pourquoi avez-vous besoin d'élever un hérisson avec un serpent et de créer un système d'exploitation hybride, car un poste de travail Linux lui-même n'est pas toujours assez stable, en particulier avec des pilotes de carte graphique fermés, ou dans un Session Wayland . Essayons de lister quelques scénarios d'utilisation de Bedrock Linux dans la pratique.



  • Vous préférez les distributions Linux stables telles que RedHat et Debian, mais vous avez également besoin de support pour un nouveau matériel: CPU ou une imprimante nouvellement achetée. Pour obtenir ce support, vous devez installer un noyau plus récent et des packages cups, hplips. Cette tâche peut être résolue une fois, mais un système stable avec des packages instables n'est plus le même
  • , . , systemd openrc, runit, Ubuntu.
  • , Linux, . sh bash Debian, /bin/sh /bin/bash. Bedrock Linux stratum Debian Linux.
  • Linux OS. .





All Articles