# OSTree: page de manuel ostree OSTree est un outil pour gérer plusieurs arborescences de système de fichiers versionné amorçable, ou simplement "arborescence" pour faire court. Dans le modèle OSTree, les systèmes d'exploitation ne vivent plus dans le répertoire racine "/" physique. Au lieu de cela, ils installent en parallèle dans le nouveau répertoire toplevel/ostree. Chaque système installé obtient son propre répertoire `/ostree/deploy/stateroot`. (stateroot est le nouveau terme pour osname). Contrairement à rpm ou dpkg, OSTree ne connaît que les arborescences complètes du système de fichiers. Il n'a aucune connaissance intégrée des composants utilisés pour créer l'arborescence du système de fichiers. Il est possible d'utiliser OSTree dans plusieurs modes; la forme la plus élémentaire consiste à répliquer des arbres prédéfinis à partir d'un serveur de génération. Habituellement, ces arbres pré-construits sont dérivés de packages. Vous pouvez également utiliser OSTree sous un outil de niveau supérieur qui calcule les arborescences de systèmes de fichiers localement. Il faut souligner que OSTree ne prend en charge que les arbres en lecture seule. Pour passer à une autre arborescence (mise à niveau, rétrogradation, installation du logiciel), une nouvelle arborescence est extraite et une fusion à 3 voies de la configuration est effectuée. L'arbre en cours d'exécution n'est jamais modifié; la nouvelle arborescence deviendra active lors d'un redémarrage du système. Les options suivantes sont comprises: | `--repo` | Pour la plupart des commandes, un référentiel est requis. S'il n'est pas spécifié, le répertoire actuel est utilisé s'il semble être un référentiel OSTree. Si ce n'est pas le cas, la variable d'environnement **OSTREE\_REPO** est utilisée ou le référentiel système situé dans `/sysroot/ostree/repo`.| | `-v, --verbose` | Produire une sortie de niveau de débogage.| | `--version` | Affiche les informations de version, y compris les fonctionnalités activées au moment de la compilation, et quitte.| # Commandes ## ostree-admin Utilise l'une des commandes d'administration ostree : * cleanup * config-diff * deploy * init-fs * instutil * os-init * pin * set-origin * status * switch * undeploy * unlock * upgrade ^ Options ^^ | `--help, -h` | Aide à l'utilisation | | `--sysroot="PATH"` | Crée un nouveau sysroot OSTree à PATH | | `--print-current-dir` | Affiche le chemin complet vers le répertoire de déploiement pour le déploiement actuellement actif dans le sysroot spécifié à standard out. Ceci est incompatible avec la spécification d'une sous-commande. | ### ostree-admin-cleanup ^ Synopsis | ostree-admin-cleanup - Supprime les déploiements non marqués et les objets de référentiel | ^ Usage | ostree admin cleanup | ^ Description | OSTree sysroot nettoie les autres bootversions et les anciens déploiements. Si/quand une extraction ou un déploiement est interrompu, un état partiellement écrit peut rester sur le disque. Cette commande nettoie ces états partiels. | #### Exemple ``` $ ostree admin cleanup ``` ### ostree-admin-config-diff ^ Synopsis | ostree-admin-config-diff - Configuration actuelle / etc de la différence par rapport à la valeur par défaut | ^ Usage | ostree admin config-diff [Options ...] | ^ Description | Affiche les différences entre le répertoire `/etc` actuel et la configuration par défaut dans `/usr/etc`. Les fichiers nouvellement ajoutés (présents dans `/etc` mais pas dans `/usr/etc`) seront préfixés par 'A'. Les fichiers modifiés seront préfixés avec «M» et les fichiers supprimés avec «D». | ^ Options ^^ | `--os="STATEROOT"` | Utiliser un stateroot de système d'exploitation différent de celui actuel. | #### Exemple ``` $ ostree admin config-diff M shadow A example.txt ``` ### ostree-admin-deploy ^ Synopsis | ostree-admin-deploy - Extraire une révision comme nouveau déploiement par défaut | ^ Usage | admin ostree deploy [Options ...] {REFSPEC} | ^ Description | Prend un commit ou une révision REFSPEC et met en file d'attente le nouveau déploiement par défaut au redémarrage. | ^ Options ^^ | `--os="STATEROOT"` | Utiliser une racine de système d'exploitation différente de celle actuelle.| | `--origin-file="FILENAME"` | Utiliser FILENAME comme origine, où OSTree recherchera les versions mises à jour de l'arborescence.| | `--retain` | Ne pas supprimer le déploiement précédent.| | `--retain-pending` | Ne pas supprimer les déploiements en attente.| | `--retain-rollback` | Ne pas supprimer les déploiements de restauration.| | `--not-as-default` | Ajouter plutôt que de préfixer un nouveau déploiement.| | `--karg-proc-cmdline` | Importer le courant /proc/cmdline.| | `--karg = "NAME = VALUE"` | Définir l'argument du noyau, comme root=/dev/sda1; cela remplace tout argument antérieur portant le même nom.| | `--karg-append="NAME=VALUE"` | Ajouter l'argument du noyau; utile avec par exemple `console=` qui peut être utilisé plusieurs fois.| #### Exemple ``` $ ostree admin status * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1ce3.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime $ ostree admin deploy gnome-ostree/buildmaster/x86_64-runtime ostadmin: Creating deployment /ostree/deploy/gnome-ostree/deploy/7e382b11d213a402a5313e61cbc69dfd5ab93cb07.1 ostadmin: Processing /etc: 3 modified, 0 removed, 29 added Transaction complete: bootconfig swap: no deployment count change: 0) $ ostree admin status gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.1 origin refspec: gnome-ostree/buildmaster/x86_64-runtime * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime ``` ### ostree-admin-init-fs ^ Synopsis | ostree-admin-init-fs - Initialise un nouveau système de fichiers racine | ^ Usage | ostree admin init-fs [OPTIONS ...] {CHEMIN} | ^ Description | Initialisez un système de fichiers racine physique vide dans le CHEMIN désigné, avec des niveaux supérieurs normaux et des autorisations correctes pour chaque répertoire. Principalement utile pour le fonctionnement | #### Exemple ``` $ mkdir /example $ ostree admin init-fs /example $ ls /example ``` ### ostree-admin-instutil ^ Synopsis | ostree-admin-instutil - Fonctions utilitaires destinées principalement aux programmes d'installation du système d'exploitation | ^ Usage | ostree admin instutil {SUBCOMMAND} [ARGS] | ^ Description | Utilise les sous-commandes pour basculer les utilitaires d'installation d'administration pour les stratégies selinux et les arguments du noyau. | #### Sous-commandes * Assure que tous les fichiers et répertoires sont étiquetés conformément à la politique SELinux du premier déploiement. * Remplace les arguments du noyau du déploiement par défaut. Les nouveaux arguments sont basés sur une liste vide (par défaut), les options actuelles `--merge` ou les arguments du noyau chargé `--import-proc-cmdline`, et de nouvelles options sont ajoutées à la fin `--append="NAME=VALUE"` ou remplace les arguments existants du même nom `--replace="NAME=VALUE"`. ### ostree-admin-os-init ^ Synopsis | ostree-admin-os-init - Initialise un état vide pour un système d'exploitation donné | ^ Usage | admin ostree os-init {STATEROOT} | ^ Description | Initialise un nouveau stateroot (AKA "osname") pour un système d'exploitation. Garantit que les sous-répertoires principaux de /var (/tmp, /lib, /run et /lock) existent et initialisent le STATEROOT donné en tant que stateroot OSTree. Chaque emplacement de déploiement est composé d'une seule var partagée et d'un ensemble de déploiements (chroots). | #### Exemple ``` $ ostree admin os-init exampleos ostree/deploy/exampleos initialized as OSTree root ``` ### ostree-admin-pin ^ Synopsis | ostree-admin-pin - Conserve explicitement le déploiement à un index donné | ^ Usage | ostree admin pin {INDEX} | ^ Description | Assure que le déploiement à INDEX, ne sera pas récupéré par défaut. C'est ce qu'on appelle «épingler». Si l'option -u est fournie, annule une opération d'épinglage. | ^ Options ^^ | `--unpin, -u` | Annule une opération d'épinglage.| ### ostree-admin-set-origin ^ Synopsis | ostree-admin-set-origin - Modifie l'"origine" (emplacement des mises à niveau) | ^ Usage | ostree admin set-origin {REMOTENAME} {URL} [BRANCH] | ^ Description | Ajoute un nouveau remote nommée REMOTENAME (si il n'existe pas déjà). Modifie ensuite le fichier d'origine pour le déploiement actuel. Il s'agit de la ref qui sera "suivie" et mise à niveau avec la mise à niveau d'administration ostree. | ^ Options ^^ | `--set=KEY=VALUE` | Définit une option pour le remote. | | `--index = INDEX` | Modifie l'origine du déploiement numéroté INDEX (à partir de 0). | #### Exemple ``` $ ostree admin set-origin exampleos http://os.example.com/repo exampleos/10.0/master/router ``` ### ostree-admin-status ^ Synopsis | ostree-admin-status - Liste des déploiements | ^ Usage | ostree admin status | ^ Description | Répertorie les déploiements disponibles pour démarrer. Inclut osname, la somme de contrôle suivie par la série de déploiement et la spécification de référence. Un astérisque indique le déploiement démarré en cours. | #### Exemple ``` $ ostree admin status * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime ``` ### ostree-admin-switch ^ Synopsis | ostree-admin-switch - Construit une nouvelle arborescence à partir de l'origine actuelle et la déploie, si elle a changé | ^ Usage | ostree admin switch {REF}{REF} | ^ Description | Choisi une autre référence pour le remote actuelle à suivre. Il s'agit de la ref qui sera "suivie" et mise à niveau avec la mise à niveau d'administration ostree. Comme pour une mise à niveau, l'état du système d'exploitation sera conservé. | ^ Options ^^ | `--os="STATEROOT"` | Utiliser une racine de système d'exploitation différente de celle actuelle.| #### Exemple ``` $ ostree admin switch fedostree/20/workstation/gnome/core ``` ### ostree-admin-undeploy ^ Synopsis | ostree-admin-undeploy - Supprime le déploiement à un index donné | ^ Usage | ostree admin undeploy {INDEX} | ^ Description | Supprime le déploiement chez INDEX. INDEX doit être à portée et ne pas référencer le déploiement actuellement démarré. | #### Exemple ``` $ ostree admin status * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime gnome-ostree ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime $ ostree admin undeploy 1 Transaction complete; bootconfig swap: no deployment count change: -1) Freed objects: 326.5 kB Deleted deployment ce19c41036cc45e49b0cecf6b157523c2105c4de1c.0 $ ostree admin status * gnome-ostree 67e382b11d213a402a5313e61cbc69dfd5ab93cb07.0 origin refspec: gnome-ostree/buildmaster/x86_64-runtime ``` ### ostree-admin-unlock ^ Synopsis | ostree-admin-unlock - Préparez le déploiement actuel pour le correctif ou le développement | ^ Usage | ostree admin unlock [Options...] | ^ Description | Supprime le montage de liaison en lecture seule sur `/usr` et le remplace par un système de fichiers de superposition inscriptible. Cette invocation par défaut de "unlock" est destinée à des fins de développement/test. Toutes les modifications de la superposition sont perdues au redémarrage. Cependant, cette commande prend également en charge les «correctifs», voir ci-dessous. | ^ Options ^^ | `--hotfix` | Si cette option est fournie, le déploiement actuel sera cloné en tant que cible de restauration. Cette option est destinée à des choses comme les mises à jour de sécurité d'urgence des composants de l'espace utilisateur tels que sshd. La sémantique diffère ici du mode de déverrouillage par défaut "développement" en ce que les redémarrages conserveront toutes les modifications (ce que vous voudrez probablement pour les correctifs de sécurité).| ### ostree-admin-upgrade ^ Synopsis | ostree-admin-upgrade - Construire une nouvelle arborescence à partir de l'origine actuelle et la déployer, si elle a changé | ^ Usage | ostree admin upgrade [Options...] | ^ Description | Télécharge la dernière version de la référence actuelle depuis le serveur de build et la déploie, si elle a changé. Redémarrez la machine pour que les modifications prennent effet. Ces phases peuvent être divisées via --pull-only et --deploy-only. | ^ Options ^^ | `--os="STATEROOT"` | Utilise une racine de système d'exploitation différente de celle actuelle.| | `--pull-only` | Effectue uniquement une extraction dans le référentiel; ne crée pas de déploiement. Cette option peut donc être utilisée en toute sécurité dans un travail planifié en arrière-plan avec l'assurance de ne pas changer l'état du système|. | `--deploy-only` | Crée un nouveau déploiement à partir de la dernière validation dans la spécification d'origine suivie. Cette option est destinée à être utilisée par un système planifié qui a détecté des modifications via `--pull-only` et est prêt à les déployer.| | `--reboot, -r` | Redémarre après une mise à niveau réussie.| | `--allow-downgrade` | Permettre le déploiement d'arbres chronologiquement plus anciens.| | `--override-commit="CHECKSUM"` | Déploit CHECKSUM au lieu de la dernière arborescence.| #### Exemple ``` $ ostree admin upgrade No update available. ``` ## Autres commandes ### ostree-cat ^ Synopsis | ostree-cat - Affiche ou concatène le contenu des fichiers | ^ Usage | ostree cat {COMMIT} {PATH...} | ^ Description | Cette commande fonctionne un peu comme la commande typique "cat" d'Unix, en ce sens qu'elle affiche le contenu d'un fichier ou les concatène en fonction de deux fichiers ou plus. Cependant, cette commande nécessite que l'utilisateur spécifie un commit - une somme de contrôle ou refspec correspondant à une construction donnée. Si on utilise qu'une spécification de ref , OSTree fera référence à la validation la plus récente, sauf si on spécifie une génération parent à l'aide du carat (`^`) à la fin de la spécification de ref. Il exécutera ensuite la commande dans ce commit donné. | #### Exemple ``` $ ostree cat my-branch helloworld.txt Bonjour le monde! ``` ### ostree-checkout ^ Synopsis | ostree-checkout - Récupère un commit dans un système de fichiers | ^ Usage | ostree checkout [Options...] {COMMIT} [DESTINATION] | ^ Description | Extrait le commit donné dans le système de fichiers sous le répertoire **DESTINATION**. Si **DESTINATION** n'est pas spécifié, le COMMIT deviendra la cible de paiement de destination. Si la destination COMMIT existe déjà, la commande affichera une erreur sauf si l'option **--union** est sélectionnée. | ^ Options ^^ | `--user-mode, -u` | Ne change pas la propriété du fichier et n'initialise pas les attributs étendus. | | `--subpath="PATH"` | Sous-répertoire d'extraction PATH. | | `--union` | Garde les répertoires existants et les fichiers inchangés, écrasez les fichiers existants. | | `--union-add` | Conserve les répertoires et fichiers existants. | | `--union-identical` | Comme --union, mais erreur en cas de remplacement d'un fichier par un autre. Ajoute de nouveaux fichiers et répertoires, ignore les fichiers identiques et conservez les répertoires existants. Nécessite -H. | | `--allow-noent` | Ne fait rien si le chemin spécifié n’existe pas. | | `--from-stdin` | Traite plusieurs extractions à partir de l'entrée standard. | | `--from-file="FILE"` | Traite plusieurs extractions à partir du fichier d'entrée. | #### Exemple ``` $ ostree checkout my-branch $ ls file1 file2 my-branch ``` ### ostree-checksum ^ Synopsis | ostree-checksum - Somme de contrôle d'un fichier ou d'un répertoire | ^ Usage | ostree checksum {PATH} | ^ Description | Génère une somme de contrôle pour un fichier ou un répertoire donné. | ^ Options ^^ | `--ignore-xattrs` | Ignore les attributs étendus lors de la somme de contrôle. | #### Exemple ``` $ ostree checksum file1 67e382b11d213a402a5313e61cbc69dfd5ab93cb07fbb8b71c2e84f79fa5d7dc ``` ### ostree-commit ^ Synopsis | ostree-commit - Valide une nouvelle révision | ^ Usage | ostree commit [Options...] --branch= {BRANCH} [PATH] | ^ Description | Cela vous permet de valider des modifications dans une branche. La spécification de la branche est obligatoire. La commande affichera la somme de contrôle d'une validation réussie. | ^ Options ^^ | `--subject, -s="SUBJECT"` | Sujet d'une ligne. (optionnel)| | `--body, -m="BODY"` | Description complète. (optionnel)| | `--editor, -e` | Ouvre un éditeur de texte pour la description de la validation. Il utilisera **OSTREE\_EDITOR**, **VISUAL**, **EDITOR** ou vi, par ordre décroissant de préférence. La validation sera abandonnée si le message est laissé vide.| | `--branch, -b="BRANCHE"` | Branche. Obligatoire, sauf si --orphan est indiqué.| | `--tree="dir=PATH" ou "tar=TARFILE" ou "ref=COMMIT"` | Superpose l'argument donné sous forme d'arbre. Lors de la validation d'une archive, le TARFILE peut être spécifié comme - pour lire l'archive à partir de l'entrée standard.| | `--add-metadata-string="KEY=VALUE"` | Ajoute une paire clé/valeur aux métadonnées.| | `--add-detached-metadata-string="KEY=VALUE"` | Ajoute une paire clé/valeur aux métadonnées détachées.| | `--owner-uid="UID"` | Définit l'ID utilisateur de la propriété du fichier.| | `--owner-gid="GID"` | Définit l'ID du groupe de propriétaires de fichiers.| | `--no-xattrs` | N'importe pas les attributs étendus.| | `--link-checkout-speedup` | Optimise pour les validations d'arbres composés de liens physiques dans le référentiel.| | `--tar-autocreate-parents` | Lors du chargement des archives tar, crée automatiquement les répertoires parents selon vos besoins.| | `--saut-si-inchangé` | Si le contenu est inchangé par rapport à la validation précédente, ne fait rien.| | `--consume` | Lors de la validation à partir d'un répertoire local (c'est-à-dire pas d'une archive ou `--tree= ref`), assume la propriété du contenu. Cela peut simplement impliquer sa suppression, mais si possible, le contenu peut simplement être renommé () dans le référentiel plutôt que de créer une nouvelle copie.| | `--statoverride="CHEMIN"` | Fichier contenant la liste des modifications à apporter aux autorisations (mode fichier, suivi de l'espace, suivi du chemin du fichier).| | `--skip-list="CHEMIN"` | Fichier contenant la liste des chemins de fichier à ignorer (un chemin par ligne).| | `--table-output` | Génére plus d'informations au format KEY: VALUE.| | `--generate-sizes` | Génére des informations de taille avec des métadonnées de validation.| | `--gpg-sign="ID-CLÉ"` | Identifiant de clé GPG avec lequel signer la validation (si GPGME - GNU Privacy Guard Made Easy).| | `--gpg-homedir="HOMEDIR"` | Répertoire d'accueil GPG à utiliser lors de la recherche de trousseaux de clés (si vous disposez de GPGME - GNU Privacy Guard Made Easy).| | `--timestamp="TIMESTAMP"` | Remplace l'horodatage de la validation de TIMESTAMP.| | `--orphan` | Créer un commit sans écrire dans une référence (branche)| | `--fsync="POLICY"` | POLICY est un booléen qui spécifie si fsync doit être utilisé ou non. Par défaut à vrai.| #### Exemple ``` $ ostree commit --branch=my-branch --subject="Initial commit" 67e382b11d213a402a5313e61cbc69dfd5ab93cb07fbb8b71c2e84f79fa5d7dc ``` ### ostree-config ^ Synopsis | ostree-config - Modifier les paramètres de configuration | ^ Usage | ostree config get {GROUPNAME.KEYNAME}\\ ostree config get {--group=GROUPNAME} {KEYNAME}\\ ostree config set {GROUPNAME.KEYNAME} {VALUE}\\ ostree config set {--group=GROUPNAME} {KEYNAME} {VALUE}\\ ostree config unset {GROUPNAME.KEYNAME}\\ ostree config unset {--group=GROUPNAME} {KEYNAME} ^ Description | * **ostree config get** affiche la valeur de KEYNAME dans le groupe GROUPNAME\\ * **ostree config set** définit la valeur de KEYNAME dans le groupe GROUPNAME sur VALUE.\\ * **ostree config unset** supprime la clé KEYNAME du groupe GROUPNAME afin que OSTree utilise la valeur par défaut pour cela. Ce n'est pas une erreur pour que le GROUPNAME ou le KEYNAME spécifiés n'existent pas. | #### Exemple ``` $ ostree config get core.mode bare $ ostree config set --group='remote "myremote"' url http://example.com/repo $ ostree config unset core.lock-timeout-secs ``` ### ostree-create-usb ^ Synopsis | ostree-create-usb - Place les références données sur un disque externe pour la distribution P2P. | ^ Usage | ostree create-usb [Options...] {MOUNT-PATH} {COLLECTION-ID REF} [COLLECTION-ID REF...] | ^ Description | Cette commande crée un référentiel dans MOUNT-PATH et y tire les REF données afin qu'elles puissent être trouvées et extraites (peut-être par un autre ordinateur hors ligne). Voir **ostree-find-remotes** pour plus d'informations sur la distribution P2P.\\ \\ Pour qu'ostree puisse extraire les références d'un système de fichiers monté (tel qu'une clé USB), le dépôt doit se trouver dans un emplacement standard. Plus précisément, les sous-répertoires de `.ostree/repos.d` sont vérifiés, puis `.ostree/repo`, `ostree/repo` et `var/lib/flatpak/repo` sont vérifiés. Par défaut, **ostree create-usb** utilise **.ostree/repo**, mais si on spécifie un autre emplacement à l'aide de **--destination-repo**, un lien symbolique sera créé dans `.ostree/repos.d`.\\ \\ Cette commande régénérera le fichier récapitulatif dans le référentiel de destination afin qu'il reste précis, vous ne devez donc pas essayer d'utiliser des signatures récapitulatives dans le référentiel de destination. Cela ne devrait pas être un problème car les clients qui prennent en charge l'extraction à partir de supports USB utilisent des métadonnées signées par repo et par validation au lieu de signatures de résumé. | ^ Options ^^ | `--disable-fsync` | N'appele pas fsync(). | | `--destination-repo=DEST` | Crée le référentiel dans DEST sous MOUNT-PATH, plutôt que l'emplacement par défaut.| | `--commit=COMMIT` | Tire COMMIT au lieu de ce sur quoi REF pointe. Cela ne peut être utilisé que si une seule référence est spécifiée.| #### Exemple ``` ostree --repo=/var/lib/flatpak/repo create-usb /run/media/mwleeds/f6d04c7a-60f6-4ba3-bb96-0f40498675be com.exampleos.Apps app/org.kde.Khangman/x86_64/stable com.exampleos.Apps ostree-metadata com.exampleos.Apps appstream/x86_64 5 metadata, 213 content objects imported; 1 KiB transferred in 1 seconds Copied 3/3 refs successfully from ‘/var/lib/flatpak/repo’ to ‘.ostree/repo’ repository in ‘/run/media/mwleeds/f6d04c7a-60f6-4ba3-bb96-0f40498675be’. ``` ### ostree-find-remotes ^ Synopsis | ostree-find-remotes - Trouver des remote pour servir les ref données | ^ Usage | ostree find-remotes [Options...] {COLLECTION-ID} {REF} [COLLECTION-ID REF...] | ^ Description | OSTree a la capacité d'effectuer des tirages non seulement à partir de serveurs distants configurés mais également à partir d'ordinateurs pairs sur le LAN et à partir de systèmes de fichiers montés tels que des lecteurs USB. Cette fonctionnalité nécessite l'utilisation d'ID de collection et la vérification GPG.\\ \\ La commande **find-remotes** recherche les remotes qui prétendent fournir une ou plusieurs des paires REF COLLECTION-ID données et imprime des informations à leur sujet, avec des télécommandes triées par latence (**Mounts\> LAN\> Internet**). Par défaut, OSTree recherche les remotes dans les fichiers de configuration, sur les systèmes de fichiers montés (dans un emplacement bien connu) et sur le réseau local à l'aide d'Avahi. La recherche de remotes LAN nécessite que OSTree ait été compilé avec le support Avahi, et il nécessite un démon Avahi pour être exécuté. On peut remplacer l'ensemble de finders par défaut (sources pour remotes) en utilisant l'option **--finders** documentée ci-dessous.\\ \\ La commande create-usb est le moyen recommandé de placer des ref sur un périphérique USB de telle sorte que **find-remotes** les découvre. Voir `ostree-create-usb`. | ^ Options ^^ | `--disable-fsync` | N'appele pas fsync().| | `--finders=FINDERS` | Utilise la liste de sélecteurs séparée par des virgules spécifiée plutôt que l'ensemble par défaut. Valeurs possibles: config, lan et mount (ou toute combinaison de celles-ci).| | `--pull` | Tire le commit le plus récent trouvé pour chaque référence.| #### Exemple ``` $ ostree find-remotes --finders=mount,lan com.exampleos.Os exampleos/x86_64/standard Result 0: http://10.0.64.202:43381/0 - Finder: OstreeRepoFinderAvahi - Keyring: exampleos.trustedkeys.gpg - Priority: 60 - Summary last modified: 2018-01-12T19:00:28Z - Refs: - (com.exampleos.Os, exampleos/x86_64/standard) = c91acd964b3fda561b87bfb7f7c80e36220d76b567f0ce90c0e60742ef33c360 1/1 refs were found. ``` ### ostree-diff ^ Synopsis | ostree-diff - Compare un répertoire avec une révision | ^ Usage | ostree diff [Options...] {REV} {TARGETDIR} | ^ Description | Compare le répertoire **TARGETDIR** avec la révision **REV**. Affiche les fichiers et répertoires modifiés, ajoutés et supprimés. S'il y a un fichier dans **TARGETDIR** pas dans **REV**, il s'affichera avec un **A** pour "ajouté". Si un fichier dans **REV** n'est pas dans **TARGETDIR**, il affiche **D** pour "supprimé". **M** pour "modifié" s'affichera également. | ^ Options ^^ | `--Stats` | Affiche diverses statistiques.| | `--fs-diff` | Affiche le système de fichiers diff.| | `--owner-uid` | Utilise l'ID utilisateur de propriété de fichier pour les fichiers locaux.| | `--owner-gid` | Utilise l'ID du groupe de propriétaires de fichiers pour les fichiers locaux.| #### Exemple ``` $ ostree diff my-branch^ my-branch A /testdirectory M /helloworld.txt $ ostree diff my-branch my-branch^ D /testdirectory M /helloworld.txt ``` ### ostree-export ^ Synopsis | ostree-export - Génère une archive tar à partir d'une validation OSTree | ^ Usage | ostree export [OPTIONS...] {BRANCH} | ^ Description | Cette commande génère une archive au format GNU tar à partir d'une validation OSTree. Ceci est utile pour des cas tels que les sauvegardes, la conversion des validations OSTree en images Docker, etc. | #### Exemple ``` $ ostree export exampleos/x86_64/standard | gzip > exampleos-standard.tar.gz ``` ### ostree-gpg-sign ^ Synopsis | ostree-gpg-sign - Signer un commit | ^ Usage | ostree gpg-sign [Options...] {COMMIT} {KEY-ID...} | ^ Description | Ajoute une nouvelle signature à un commit pour chaque clé GPG spécifiée. Actuellement, cela ajoutera une nouvelle signature même si le commit est déjà signé avec une clé donnée. | ^ Options ^^ | `--delete` | Supprime les signatures ayant l'un des ID de clé GPG.| | `--gpg-homedir="HOMEDIR"` | GPG Homedir à utiliser lors de la recherche de porte-clés. | ### ostree-init ^ Synopsis | ostree-init - Initialise un nouveau référentiel vide | ^ Usage | ostree init [Options...] | ^ Description | Crée un nouveau référentiel vide. | ^ Options ^^ | `--mode="MODE"` | Initialiser le référentiel en mode donné (**bare**, **bare-user**, **bare-user-only**, archive). La valeur par défaut est **bare**. Le mode **bare** stocke les fichiers tels qu'ils sont, de sorte qu'ils peuvent être directement liés en dur, **bare-user** utilise des attributs étendus pour stocker la propriété et les informations xattr, permettant des opérations non root, **bare-user-only** ne stocke pas les informations de propriété et archive les magasins fichiers compressés, à diffuser sur le réseau, **archive**, le fichier de configuration du référentiel sera en fait archive-z2, car il s'agit du nom historique.| | `--collection-id=ID-COLLECTION` | Définit l'ID de collection du référentiel. Les télécommandes des clones de ce référentiel doivent configurer la même valeur afin d'extraire les références provenant de ce référentiel sur un poste à poste. Cet ID de collection doit être persistant et globalement unique. Il est formaté comme un nom DNS inversé (comme une interface D-Bus). Il doit être défini sur un domaine DNS inversé sous votre contrôle. Cette option peut être omise (par défaut) pour laisser la distribution d'égal à égal non prise en charge pour le référentiel. Un ID de collection peut être ajouté à un référentiel existant à l'avenir pour permettre la distribution d'égal à égal à partir de ce point. Si l'ID de collection est modifié pour le référentiel à l'avenir, la distribution d'égal à égal des références du référentiel sera interrompue pour tous les homologues qui ne mettent pas à jour leur configuration distante vers le nouvel ID de collection.| ### ostree-ls ^ Synopsis | ostree-ls - Liste les chemins d'accès aux fichiers | ^ Usage | ostree ls [Options...] {COMMIT} [CHEMINS...] | ^ Description | Imprime une liste de chemins de fichiers dans le commit donné, et dans le ou les chemins donnés si spécifié. La première lettre de la sortie de la ligne de fichier spécifie le type: "-" pour le fichier normal, "d" pour le répertoire, "l" pour le lien symbolique. Voir la section Exemple pour plus de détails sur la sortie spécifique. | ^ Options ^^ | `--dironly, -d` | Ne rentre pas dans les arguments du répertoire.| | `--recursif, -R` | Affiche les répertoires récursivement.| | `--checksum, -C` | Affiche la somme de contrôle.| | `--xattrs, -X` | Affiche les attributs étendus.| | `--nul-filenames-only` | Affiche uniquement les noms de fichiers, séparés par NUL.| #### Exemple ``` $ ostree ls my-branch d00644 0 0 0 / -00644 0 0 2 /helloworld.txt d00755 0 0 0 /testdirectory ``` Ici, la première colonne est le symbole de type de fichier (comme expliqué dans la section Description) suivi du type de fichier **S\_IFMT**. Les deux colonnes suivantes (ici: 0 0) sont respectivement l'ID utilisateur et l'ID groupe pour le fichier. Après la pause, le nombre suivant représente la taille standard de ce fichier. La dernière colonne est le chemin du fichier. ### ostree-pull ^ Synopsis | ostree-pull - Télécharger des données à partir d'un référentiel distant | ^ Usage | ostree pull {REMOTE} [BRANCH] | ^ Description | Cette commande peut récupérer uniquement une validation spécifique, ou aller jusqu'à effectuer un miroir complet du référentiel distant. Si aucun BRANCH n'est spécifié, toutes les branches configurées sont récupérées.\\ \\ Une syntaxe spéciale dans le caractère @ permet de spécifier un commit spécifique à récupérer à partir d'une branche. Les cas d'utilisation pour cela sont quelque peu similaires à l'extraction d'une balise git spécifique; on pourrait par exemple script une mise à niveau du système vers une version connue, plutôt que la dernière du fournisseur de contenu. | ^ Options ^^ | `--commit-metadata-only` | Récupére uniquement les métadonnées de validation.| | `--disable-fsync` | N'appele pas fsync().| | `--localcache-repo` | Comme le clone de git, réutilise le dépôt OSTree fourni en tant que cache d'objets local lorsqu'on effectue des récupérations HTTP. Peut être spécifié plusieurs fois.| | `--untrusted` | Ne fait pas confiance aux sources locales, ne vérifie pas les sommes de contrôle et ne crée pas de lien dur vers la source.| | `--disable-static-deltas` | N'utilise pas de deltas statiques.| | `--mirror` | Écrit des références adaptées à un miroir, c'est-à-dire que les références sont stockées dans le répertoire `heads/` plutôt que dans le répertoire `remotes/`. Cela rend le référentiel cible apte à être exporté pour que d'autres clients puissent l'utiliser comme un remote ostree. Si aucune référence spécifique n'est spécifiée, toutes les ref seront récupérées (le remote doit avoir un fichier récapitulatif présent).| | `--subpath=SUBPATH` | Tire uniquement sur le sous-chemin fourni.| | `--depth=DEPTH` | Traverse les parents DEPTH (-1=infini) (par défaut: 0).| | `--network-retries=N` | Spécifie combien de fois chaque téléchargement doit être retenté en cas d'erreur (par défaut: 5)| #### Exemple ``` ostree --repo=repo pull --depth=-1 --mirror remote_name ``` Effectue un miroir complet de la télécommande. (Ceci est probablement plus utile si le référentiel est également en mode archive) ``` $ ostree --repo=repo pull remote_name exampleos/x86_64/standard ``` Récupére le commit le plus récent dans `exampleos/x86_64/standard`. ``` $ ostree --repo=repo pull remote_name exampleos/x86_64/standard@98ea6e4f216f2fb4b69fff9b3a44842c38686ca685f3f55dc48c5d3fb1107be4 ``` Télécharge le commit spécifique commençant par 98ea6e comme s'il s'agissait du dernier commit pour `exampleos/x86_64/standard`. ### ostree-pull-local ^ Synopsis | ostree-pull-local - Copie des données d'un référentiel source | ^ Usage | ostree pull-local [Options ...] {SOURCE\_REPO} [REFS ...] | ^ Description | Copie les données d'un référentiel donné; optimisé pour les copies uniquement entre les référentiels sur le même système. | ^ Options ^^ | `--remote="REMOTE"` | Ajoute REMOTE à refspec.| | `--disable-fsync` | N'appele pas fsync().| | `--untrusted` | Ne fait pas confiance à la source, ne vérifie pas les sommes de contrôle et ne lie pas en dur la source| #### Exemple ``` $ ostree pull-local /ostree/repo Enumerating objects... pull: 25709/25709 scanned, 0 objects copied Writing 5 refs ``` ### ostree-remote ^ Synopsis | ostree-remote - Contrôle la configuration du référentiel distant | ^ Usage | ostree remote add [OPTIONS...] {NAME} {URL} [BRANCH...]\\ ostree remote delete {NAME}\\ ostree remote show-url {NAME}\\ ostree remote list [OPTIONS...] {NAME}\\ ostree remote gpg-import [OPTIONS...] {NAME} [KEY-ID...]\\ ostree remote refs {NAME}\\ ostree remote summary [OPTIONS...] {NAME}\\ ostree remote add-cookie {NAME} {DOMAIN} {PATH} {COOKIE\_NAME} {VALUE}\\ ostree remote delete-cookie {NAME} {DOMAIN} {PATH} {COOKIE\_NAME} {VALUE}\\ ostree remote list-cookies {NAME} | ^ Description | Modifie les configurations du référentiel distant. Le NOM fait référence au nom du remote.\\ Les arguments BRANCH de la sous-commande add spécifient les branches configurées pour la télécommande. Voir la section branches dans ostree.repo-config pour plus d'informations.\\ La sous-commande `gpg-import` peut associer des clés GPG à un référentiel distant spécifique à utiliser lors de l'extraction de validations signées de ce référentiel (si la vérification GPG est activée).\\ Les clés GPG à importer peuvent être au format OpenPGP binaire ou blindées ASCII. La liste [KEY-ID] facultative peut restreindre les clés importées à partir d'un fichier de clés ou d'un flux d'entrée. Toutes les clés sont importées si cette liste est omise. Si aucune option `--keyring` ni `--stdin` n'est indiquée, les clés sont importées à partir du trousseau GPG personnel de l'utilisateur.\\ Les différentes commandes liées aux cookies permettent de gérer un fichier cookie spécifique à distance. | ^ Options d'ajout ^^ | `--set="KEY=VALUE"` | Définit l'option de configuration KEY=VALUE pour le remote.| | `--if-not-exists` | Ne fait rien si le remote existe.| | `--force` | Remplace le remote si il existe.| | `--no-gpg-verify` | Désactive la vérification GPG.| | `--gpg-import=FICHIER` | Importe une ou plusieurs clés GPG à partir d'un fichier. Equivalent à `ostree remote gpg-import --keyring=FILE`.| | `--collection-id=ID-COLLECTION` | Définit l'ID de collecte pour le remote sur une valeur fournie par le propriétaire du référentiel, ce qui permet aux références de ce remote d'être partagées d'égal à égal.| ^ Options de liste ^^ | `-u, --show-urls` | Afficher les URL distantes dans la liste| ^ Options d'importation Gpg ^^ | `-k, --keyring=FICHIER` | Importe une ou plusieurs clés à partir d'un fichier. Cette option peut être répétée pour importer à partir de plusieurs fichiers, mais ne peut pas être utilisée en combinaison avec `--stdin`.| | `--stdin` | Importe une ou plusieurs clés depuis l'entrée standard. Cette option ne peut pas être utilisée en combinaison avec `--keyring`.| ^ Options de résumé ^^ | `--raw` | Affiche les données brutes des variantes| #### Exemple ``` $ ostree remote show-url local http://192.168.122.1/repo ``` ### ostree-reset ^ Synopsis | ostree-reset - Réinitialise une référence à un commit précédent | ^ Usage | ostree reset {REF} {REF\_TO\_RESET\_TO} | ^ Description | Étant donné un commit, cette commande réinitialisera la référence à un commit spécifié précédent. | #### Exemple ``` $ ostree log my-branch commit 67e382b11d213a402a5313e61cbc69dfd5ab93cb07 Date: 2014-06-12 13:42:54 +0000 This is the second commit commit ce19c41036cc45e49b0cecf6b157523c2105c4de1c Date: 2014-06-12 11:20:08 +0000 Initial commit $ ostree reset my-branch my-branch^ $ ostree log my-branch commit ce19c41036cc45e49b0cecf6b157523c2105c4de1c Date: 2014-06-12 11:20:08 +0000 Initial commit ``` ### ostree-rev-parse ^ Synopsis | ostree-rev-parse - Affiche la cible d'un tour | ^ Usage | ostree rev-parse {REV} {PATH} | ^ Description | Étant donné un REV, génère la somme de contrôle de la dernière validation de cette révision. | #### Exemple ``` $ ostree rev-parse ma-branche ce19c41036cc45e49b0cecf6b157523c2105c4de1ce30101def1f759daafcc3e ``` ### ostree-show ^ Synopsis | ostree-show - affiche les métadonnées d'un objet | ^ Usage | ostree show [Options ...] {OBJET} | ^ Description | Étant donné un objet, affiche les métadonnées de cet objet. Pour une révision particulière, il affichera les données de la validation la plus récente de cette révision. | ^ Options ^^ | `--print-related` | Affiche les validations "liées".| | `--print-variant-type="TYPE"` | Mappe la mémoire OBJECT (dans ce cas un nom de fichier) à la chaîne de type GVariant.| | `--print-metadata-key="KEY"` | Affiche la valeur de chaîne de la clé de métadonnées.| | `--print-détaché-metadata-key="KEY"` | Affiche la valeur de chaîne de la clé de métadonnées détachée.| | `--raw` | Affiche les données de variantes brutes.| | `--gpg-homedir="HOMEDIR"` | Répertoire d'accueil GPG à utiliser lors de la recherche de trousseaux de clés.| #### Exemple ``` $ ostree show my-branch commit 67e382b11d213a402a5313e61cbc69dfd5ab93cb07 Date: 2014-06-12 13:42:54 +0000 ``` ### ostree-trivial-httpd ^ Synopsis | ostree-trivial-httpd - Serveur Web simple | ^ Usage | ostree trivial-httpd [Options ...] [DIR] | ^ Description | Cela exécute un simple serveur Web et le fait fonctionner jusqu'à ce qu'il soit tué. Si DIR n'est pas spécifié, il revient par défaut au répertoire courant. | ^ options ^^ | `--daemonize, -d` | Forq en arrière-plan lorsque prêt. | | `--autoexit` | Quitter automatiquement lorsque le répertoire est supprimé. | | `--port-file, -p="PATH"` | Écrire le numéro de port dans PATH (- pour la sortie standard). | | `--port, -P` | Utiliser le port TCP spécifié pour écouter. | | `--force-range-requests` | Forcer les demandes de plage en ne desservant que la moitié des fichiers. | #### Exemple ``` $ ostree trivial-httpd ``` ### rofiles-fuse ^ Synopsis | rofiles-fuse - Utilise FUSE pour créer une vue où les répertoires sont accessibles en écriture, les fichiers sont immuables | ^ Usage | rofiles-fuse SRCDIR MNTPOINT | ^ Description | La création d'une extraction à partir d'un référentiel OSTree utilise par défaut des liens matériels, ce qui signifie qu'une muodification de n'importe quel fichier corrompt le référentiel et toutes les extractions. Cela peut être problématique si l'on ne souhaite exécuter effectuer ces modifications que dans une extraction. Par exemple, RPM% post scripts ou équivalent.\\ \\ Dans le cas où l'on souhaite créer une validation d'arborescence dérivée d'un autre contenu, l'utilisation de **rofiles-fuse** de concert avec ostree commit --link-checkout-speedup (ou l'API sous-jacente) peut garantir que seuls les nouveaux fichiers sont additionnés. | #### Exemple mettre à jour un commit Ostree ``` # Initialiser un branch-checkout et le monter $ ostree --repo=repo checkout somebranch branch-checkout $ mkdir mnt $ rofiles-fuse branch-checkout mnt ``` ``` # Désormais, les modifications arbitraires de mnt/ sont reflétées dans le branch-checkout $ echo somenewcontent > mnt/anewfile $ mkdir mnt/anewdir $ rm mnt/someoriginalcontent -rf ``` ``` # Valider et nettoyer $ fusermount -u mnt $ ostree --repo=repo commit --link-checkout-speedup -b somebranch -s 'Commit new content' --tree=dir=branch-checkout $ rm mnt branch-checkout -rf ```