Synthèse de mon installation de Bazzite Gnome Nvidia
Documentation Bazzite
Bazzite releases
Blog généraliste sur Linux avec astuces
| Partiton | Taille | Type de partition |
|---|---|---|
| /boot/efi | 100 Mo | EFI |
| /boot | 1 Go | EXT4 |
| /systemfile | > 40 Go | BTRFS |
Détail pour un partitionnement manuel Fedora Manual Partitioning.
Commande pour lister les partitions: lsblk
Article pour retrouver les commandes de changement de droits sur les répertoires: linux file permissions
Update manuel ujust update.
Affiche le contenu du script ujust ujust --show <script>.
Liste des environnements rpm-ostree status -v.
Conservation de l'environnement actuel (=0) sudo ostree admin pin <n>.
Dé-conservation d'un environnement sudo ostree admin pin --unpin <n>.
Rollback vers le précédent environnement rpm-ostree rollback.
Rechercher un package dans le dépôt ostree rpm-ostree search <package>.
Installation d'un package sur la couche de base rpm-ostree install <package>.
Désinstallation d'un package sur la couche de base rpm-ostree uninstall <package>.
Suppression d'un package livré par défaut dans la couche de base rpm-ostree override remove <package>.
rpm -qi <nom du package/programme>: description de diverses informations sur le package (version, release, date d'installation...)passwd username: forçage du mot de passe sans tenir compte des restriction de format
Suivre ce guide pour réinstaller le Secure Boot
Documentation Bazzite - Secure Boot Instructions.
Passer le clavier en Français et non en Français (alternative)
Changement du nom du PC
hostnamectl set-hostname <hostname>
Installer sous forme de layer Kvantum rpm-ostree install kvantum
- Thème global -> Fedora Light (Ne pas installer le thème global WhiteSur, il ne fonctionne pas)
- Couleurs -> Installer WhiteSur et sélectionner WhiteSurAlt
- Style d'applications -> kvantum, -> Configurer un style pour application GNOME / GTK -> Breeze
- Style Plasma -> Breeze
- Décoration des fenêtres -> Installer Utterly-Round-Light et le sélectionnner
- Icônes -> Installer WhiteSur et sélectionner WhiteSur-light
- Pointeurs -> Bibata Modern Classic ou WhiteSur Cursors
- Ecran de démarrage -> Aucun
Depuis le menu Applications & Fenêtres / Gestion des fenêtres / Effets de bureau, il est possible de gérer les effets de fenêtre et leur transparence
Ressources: WhiteSur KDE
- Depuis la page du thème WhiteSur, télécharger les deux fichiers de configuration Kvantum
- Les charger depuis Kvantum Manager, et sélectionner le thème WhiteSur
- Il est possible de modifier les fonds d'écran à utiliser pour les deux processus.
- Pour garder le thème, le fond d'écran WhiteSur peut être utilisé.
- A faire à la main, vidéo youtube explicative: Personnalisation de KDE Plasma pour débutants
- Installer le widget
Panel Colorizeret le paramétrer sur chacune des barres (panneaux) pour les rendre transparet - Pour la météo
Weather Widget Plusest bien
Modification du fichier de configuration /etc/nanorc :
- Auto indentation:
set autoindent - Affichage du numéro de la ligne:
set linenumbers - Gestion de la souris:
set mouse - Thèmes:
include /usr/share/nano/*.nanorcetinclude /usr/share/nano/extra/*.nanorc - Key bindings: décommenter les raccourcis nécessaires :
Crl+X, C, V, Q, S, F, G, Z, Y
- Liste les sessions
flatpak remotes - Liste les flatpack d'une session
flatpack remote-ls <remote> - Installation et désinstallation sur la session utilisateur
flatpak install <remote> <package>/flatpak uninstall <remote> <package> - Rechercher un package
flatpak search <package> - Lancer un package
flatpak run <package> - Permissions d'un package
flatpak info --show-permissions <package> - Supprime les 'pins' des packahes
flatpak pin | xargs -n 1 -t sudo flatpak pin --remove - Suppression des packages inutilisés et des données cache d'applications supprimées
flatpak remove --delete-data --unused
Ajouter pour toutes les applications les permissions suivantes:
Accélaration GPU : enable
A installer sur la session System pour éviter les doublons des packages de base et gagner de la place:
flatpak install system vivaldi simplescan solaar onlyoffice Betterbird
digiKam = gestionnaire de photos.
solaar = gestionnaire de périphériques Logitech.
Autre service d'applications notamment pour celles achetées.
Gestion à partir de l'application Levier de vitesse / Gear Level.
Créer un répertoire ~/.AppImages pour les stocker.
- Cider (acheté via itch.io)
- Chiaki-ng: releases (le flatpak génère trop d'entrées obsolètes ou en doublon)
Applications et services sans GUI. Permet l'installation d'applications utilisées dans les lignes de commande.
- exiftool : manipulation de fichiers images et vidéo par ligne de commande
Utiliser les paramètres DateTimeOriginal ou CreateDate pour ces commandes
// Renomme les fichiers par leur date de prise de vue (format YYY-MM-DD_HH:MM_id)
exiftool '-FileName<DateTimeOriginal' -d '%Y-%m-%d_%H:%M_%%-c.%%e' -r ~/Images/Google Photos/
// Crée des répertoires de type YYYY/MM et y déplace les fichiers selon leur date de prise de vue
exiftool -r -d %Y/%m "-directory<createdate" ~/Images
// Remplace les dates de dernière modification des fichiers par leur date de prise de vue
exiftool -overwrite_original '-FileModifyDate<DateTimeOriginal' -r ~/Images/
- rclone : montage des disques Webdav
// Créer le fichier de configuration comme indiqué dans la documentation
rclone config
-> n) New remote
-> name> kdrive
-> type of storage> 63 / WebDAV
-> url> https://123456.connect.kdrive.infomaniak.com avec 123456 à remplacer par son id
-> vendor> 8/ Other site
-> User name> mail de connexion à kdrive
-> Password> y) Yes puis saisir son mot de passe
-> bearer_token> Enter to leave empty
-> edit advanced config> n) No
-> keep this remote ?> y) Yes
// Montage sous forme de service systemd
Créer un fichier pour le service: sudo nano /etc/systemd/system/rclone-kdrive.service
Contenu:
[Unit]
Description=Rclone mount Kdrive
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=xxx
Group=xxx
ExecStartPre=/usr/bin/mkdir -p /home/xxx/Kdrive
ExecStart=/home/linuxbrew/.linuxbrew/bin/rclone mount kdrive: /home/xxx/Kdrive --config=/home/xxx/.config/rclone/rclone.conf --vfs-cache-mode full --allow-other
ExecStop=/usr/bin/fusermount3 -uz /home/xxx/Kdrive
[Install]
WantedBy=multi-user.target
Le rendre exécutable: sudo chmod +x /etc/systemd/system/rclone-kdrive.service
Essayer de le lancer:
sudo systemctl daemon-reload
sudo systemctl start rclone-kdrive.service
Vérification par:
sudo systemctl status rclone-kdrive.service
ou
sudo journalctl -u rclone-kdrive.service -b
En cas d'erreur, essayer de lancer la ligne saisie pour vérifier s'il ne s'agit pas d'une typo:
sudo -u xxx /home/linuxbrew/.linuxbrew/bin/rclone mount kdrive: /home/xxx/Kdrive --config=/home/xxx/.config/rclone/rclone.conf --vfs-cache-mode full --allow-other
Si cela ne fonctionne pas, pb SELinux. Vérification:
getenforce -> Si Enforcing, teste temporairement :
sudo setenforce 0
Si le service se lance, c'est bien un pb SELinux. Solution:
sudo setenforce 1 # Remettre le service
sudo systemctl start rclone-kdrive.service # Reproduire le problème
sudo ausearch -m avc -ts recent # Récupère les logs SELinux
sudo ausearch -m avc -ts recent | audit2allow -M rclone_local # Génère une règle autorisant ce comportement
sudo semodule -i rclone_local.pp # Installe la règle
Retester le fonctionnement
Programmer le service au démarrage:
sudo systemctl enable rclone-kdrive.service
Pour supprimer un service:
systemctl stop <nom service>
systemctl disable <nom service>
rm /etc/systemd/system/<nom service>
rm /usr/lib/systemd/system/<nom service>
systemctl daemon-reload
systemctl reset-failed
Solution dérivée de configuration du répertoire steam et de source pour la commande setfacl.
Répertoire utilisé comme bibliothèque: /var/steam-library/.
Création du nouveau groupe gamers
sudo groupadd gamers
Ajout des utilisateurs au nouveau groupe
sudo usermod -a -G gamers user1
sudo usermod -a -G gamers user2
sudo mkdir /var/steam-library
Attribue le propriétaire puis fait en sorte de le conserver sur les nouveaux éléments
sudo chgrp -R gamers /var/steam-library/
sudo chmod -R 2775 /var/steam-library
sudo setfacl -RP -m u::rwX,g:gamers:rwX,o::r /var/steam-library
sudo setfacl -RP -m d:g:gamers:rwX /var/steam-library
Quelques commmandes pour références:
- Pour vérifier les ACL :
getfacl /var/steam-library - Pour supprimer une autorisation (différent d'un ACL, -R = récursif) :
chmod -R o-x - Pour ajouter une autorisation (différent d'un ACL, -R = récursif) :
chmod -R o+x
Modifier dans steam, pour tous les utilisateurs, le répertoire de stockage des jeux.
L'installation de git sur le poste principal est très simple grace à l'utilisation de GitHub CLI.
Le choix du protocole HTTPS permet un clonage effectif des répertoires avec un git clone <lien https>
git config --global user.name "Imasu"
git config --global user.email "user@mail"
brew install gh
gh auth login
Guides synthétiques d'utilisation de git:
Quelques commandes utiles:
-git init pour initialiser un dépôt local
-git add . pour ajouter tous les fichiers du répertoire au dépôt local
-git commit -m "commit message" pour sauvegarder les changements fait aux fichiers locaux
-git remote add origin <url.git> pour attacher le dépôt à un serveur distant Git
-git remote -v pour vérifier l'attachement au serveur distant
-git pull pour synchroniser depuis le serveur distant
-git push -u origin main pour envoyer les modifications sur le serveur distant (il est possible de changer la branche avec la commande git branch -M main)
Installation d'une distrobox selon cette commande. Il ne faut pas utiliser la version GUI BOXES qui ne propose pas toutes les options.
Il est important de spécifier un chemin HOME dédié pour éviter que les fichiers de l'hôte soient modifiés par ceux du conteneur.
Liste de containers distrobox containers distros
Distributions testées et fonctionnelles (wayland):
- Fedora : --image quay.io/fedora/fedora-toolbox:latest,
- Archlinux : --image quay.io/toolbx/arch-toolbox:latest,
Exemples avec implémentation du driver nvidia et une isolation renforcée (--unshare-all --init). Attention au répertoire pour le dossier $HOME du conteneur
distrobox create --image quay.io/fedora/fedora-toolbox:latest --name <Name>-FedoraOS --nvidia --unshare-all --home /home/$USER/.containers-home/<Name>-FedoraOS
Avec Distrobox + --nvidia, le GPU est bien exposé, mais l’accès au display (X11/Wayland) n’est pas automatique. KDE Plasma 6 tourne souvent en Wayland, ce qui complique encore plus XCB
Autoriser l’accès X11, sur l’hôte, lancer la commande:
xhost +si:localuser:$(whoami)
Installation des paquets essentiels : nano, git...
Sous FEDORA:
sudo dnf update
sudo dnf install gcc nano git chromium
gcc: outil de compilationgit: configuration comme guide supra
Rappel, dans les projets, pour éviter la synchronisation de certains fichiers ou répertoires, créer un fichier.gitignoreavec les paramètrages nécessaires.chromium: requis pour disposer des librairies graphiques et pour qu'un navigateur soit actif sur le conteneur (nécessaire par exemple pour la documentation des programmes Rust)
Optionnel:
- Configuration de
nanoen suivant le guide supra.
Languages testés:
-
Rust : Install Rust in Fedora. Installer via Rustup.
- Debugger :
lldb ou moldà installer séparément. Il faudra configurer le fichier~/.cargo/config.tomlen conséquence. Exemple:# This file is .cargo/config.toml # 1. Use the "lld" oe "mold" linker for faster linking. # On Windows, this is "rust-lld.exe", # On MacOS, this is "lld", # On Linux, you can use "lld" or, even better, "mold". [target.x86_64-pc-windows-msvc] linker = "rust-lld.exe" rustflags = ["-Zshare-generics=y"] [target.x86_64-apple-darwin] rustflags = ["-C", "link-arg=-fuse-ld=lld"] [target.x86_64-unknown-linux-gnu] rustflags = ["-C", "link-arg=-fuse-ld=mold"] # 2. Configure our development buid profile for speed. [profile.dev] # This is our code. We want to compile it as fast as possible. # 'opt-level = 1' provides a good balance of speed and # fast compilation opt-level = 1 # 3. Configure dependencies (like Bevy) differently. # We don't change Bevy's code, so we can afford to # spend more time optimizing it one. [profile.dev.package."*"] # 'opt-level = 3' is a high optimization level. # This makes our dependencies run fast, but we only # pay the compile-time cost for them once. opt-level = 3 - (Optionnel) Créer un fichier
rustfmt.tomldans un répertoire~/.config/rustfmt/avec les valeurs de formatage à appliquer à tous les programmes Rust source. - Rust / Bevy : suivre le guide d'installation. Dépendances Bevy à installer:
sudo dnf install gcc-c++ alsa-lib-devel systemd-devel libX11-devel wayland-devel libxkbcommon-devel - Installation de RustRover (JetBrains):
- Depuis la racine du $HOME du container (cd ~/), suivre la procédure de JetBrains
- Il est possible après de créer un symlink vers ~/.local/bin pour pouvoir lancer RustRover directement sans aller dans son répertoire d'installation (/opt/RustRover...)
ln -s /opt/RustRover-YYYY.V/bin/rustrover ~/.local/bin/rustrover ln -s ~/.local/bin/rustrover ~/.local/bin/RR - Lors de la première connexion, l'enregistrement de la license est nécessaire. Sélectionner la méthode par token.
- Configurer les Rust External Linters
Settings > Rust > External LintersavecClippyen remplacement deCargo Check, passer sur la channelStableet renseigner la ligne d'arguments avecCe qui rend Clippy pedantic mais avec quelques exceptions pour Bevy. Explication: [Simple case of pedantic clippy](https://rust.code-maven.com/simple-case-of-pedantic-lints]-- -Dclippy::pedantic -Aclippy::needless_pass_by_value -Aclippy::too_many_lines - Configurer Rustfmt
Settings > Rust > Rustfmten passant sur la channelnightlyce qui débloque les options instables.
Le fichier de configurationrustfmt.tomlest à placer dans le dossier du projet
- Debugger :
-
Odin : Installer les packages
odin lldb. Le dernier correspond au debugger. -
Go : install go in arch using Pacman. Installation sans difficulté. Pas besoin de mettre à jour le GOPATH. Un répertoire go sera créé avec les packages et binaires associés nécessaires.
-
Julia : install Julia in Arch (wiki Arch). Installation sans difficulté. Il convient de paramétrer le chemin de l'exécutable dans l'extension VSCode source.
-
C++ : Installation & fonctionnement avec make ; fonctionnement avec cmake
fin