Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Comment j'ai installé GuixSD sur un HP ProBook 6460b (nécessitant un adaptateur USB sans fil pour GNU/Linux-libre)
Prérequis : Télécharger et graver Superdisk grub2. Il est fort possible que vous en ayez besoin lors du redémarrage. Personnellement, c'est ce qui s'est produit chez moi. Heureusement, je l'avais déjà.
https://www.supergrubdisk.org/category/download/supergrub2diskdownload/
J'ai ensuite téléchargé GuixSD, la distribution de logiciels GNU Guix :
https://www.gnu.org/software/guix/download/
Démarrage à partir d'un DVD gravé avec 'guixsd-install-0.14.0.x86_64-linux.iso' (Note : Aujourd'hui ce serait plutôt la version 0.15.X.x86_64)
Sources du manuel :
L'image d'installation utilise la disposition du clavier qwerty. Si je veux le changer, je peux utiliser la commande loadkeys. Par exemple, la commande suivante sélectionne la disposition du clavier fr :
# loadkeys fr
Je ne vais pas aborder la question du Wi-Fi ici, car ma carte n’a pas de firmware libre. Pour avoir le Wi-Fi, voir ci-dessous:
https://www.gnu.org/software/guix/manual/html_node/Preparing-for-Installation.html#Networking
Ma carte wifi nécessite l'utilisation d'un firmware non libre (Broadcom Limited BCM4313 802.11bgn Wireless Network Adapter).
Je décide de commander une carte wifi USB Adaptateur USB sans fil Mini Technoethical N150 pour GNU/Linux-libre à l'adresse :
https://tehnoetic.com/adapters/tehnoetic-wireless-adapter-gnu-linux-libre-tet-n150
En attendant, j'exécute la commande suivante pour voir comment mes interfaces réseau sont nommées :
# ifconfig -a
Les interfaces filaires ont un nom commençant par ‘e’; Par exemple, l’interface correspondant au premier contrôleur Ethernet intégré est appelée «eno1».
# ifconfig enp0s25 up
À ce stade, je dois faire l'acquisition d'une adresse IP. Les adresses IP étant automatiquement attribuées via DHCP, je peux exécuter:
# dhclient -v enp0s25
Essayons d’envoyer une requête ping à un serveur pour voir si la mise en réseau est opérationnelle : (sachant que j'habite dans une zone non dégroupée, vitesse 2.0 Mbs :/ )
# ping -c 3 gnu.org PING gnu.org (208.118.235.148): 56 data bytes 64 bytes from 208.118.235.148: icmp_seq=0 ttl=51 time=138.917 ms 64 bytes from 208.118.235.148: icmp_seq=1 ttl=51 time=139.388 ms 64 bytes from 208.118.235.148: icmp_seq=2 ttl=51 time=138.998 ms --- gnu.org ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 138.917/139.101/139.388/0.206 ms
Partitionnement GPT ou EFI : Les tests que j'ai effectués dans les machines virtuelles n'ayant pas été très concluants, je n'en sais pas trop sur le sujet. Si vous souhaitez utiliser GPT ou EFI, veuillez vous reporter à la documentation :
https://www.gnu.org/software/guix/manual/html_node/Preparing-for-Installation.html#Disk-Partitioning
Dans mon cas, sachant que je n'aurai pas à m'inquiéter de cette question pour cause d'ordinateur datant de 2011, c'est parti :
# cfdisk Device Boot Start End Sectors Size Id Type /dev/sda1 2048 479995903 479993856 228.9G 83 Linux /dev/sda2 479995904 488397167 8401264 4G 82 Linux swap
(À ce stade, je ne pensais pas à l'option de partition amorçable *). En ce qui concerne votre propre installation, il est préférable d'activer l'option de démarrage maintenant (dans mon cas, l'astérisque * aurait dû être positionnée dans la colonne 'Boot' sur /dev/sda1).
De préférence, attribuez une étiquette aux systèmes de fichiers afin de pouvoir les consulter facilement et de manière fiable dans les déclarations de système de fichiers (voir Systèmes de fichiers). Cela se fait généralement à l'aide de l'option -L de mkfs.ext4 et des commandes associées. En supposant que la partition racine cible se trouve dans /dev/sda1, vous pouvez créer un système de fichiers portant le libellé my-root avec la commande suivante, personnellement, j'ai fait :
# mkfs.ext4 -L my-root /dev/sda1
Monter le système de fichiers cible sous /mnt avec cette commande (encore une fois, en supposant que my-root est l’étiquette du système de fichiers racine) :
# mount LABEL=my-root /mnt
Ma partition de swap étant /dev/sda2, j'ai exécuté :
# mkswap /dev/sda2 # swapon /dev/sda2
Procédons à l'installation
Avec les partitions cibles prêtes et la racine cible montée sur /mnt, on est bon. Premièrement :
# herd start cow-store /mnt
Cela crée une copie en écriture de /gnu/store, de telle sorte que les packages qui lui sont ajoutés au cours de la phase d’installation soient écrits sur le disque cible sur /mnt plutôt que conservés en mémoire. Cela est nécessaire car la première phase de la commande guix system init implique le téléchargement ou la compilation dans /gnu/store, qui est initialement un système de fichiers en mémoire.
Création du répertoire de configuration du système :
# mkdir /mnt/etc
Création du prochain fichier de configuration (vide pour l'instant) :
# touch /etc/configuration/perso.scm
Remarque : vous pouvez également éditer un fichier existant déjà dans /etc/configuration (par exemple, “desktop.scm” ou “bare-bones.scm” et le modifier à votre guise).
Pour adapter la configuration de l'ordinateur à mes besoins, j'ai utilisé vi , ne connaissant que celui-ci. Nano et Zile sont toutefois disponibles.
# vi /etc/configuration/perso.scm
;; This is an operating system configuration template ;; for a "desktop" setup, without full-blown desktop ;; environments. "host-name" is my own laptop. (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) (use-package-modules bootloaders certs ratpoison suckless wm) (operating-system (host-name "lxx-xxx-xx-xx-xxx-xxx-xx6") (timezone "Europe/Paris") (locale "en_US.utf8") ;; Assuming /dev/sda is the target hard disk, and "my-root" is ;; the label of the target root file system. (bootloader (grub-configuration (target "/dev/sda"))) (file-systems (cons (file-system (device "my-root") (title 'label) (mount-point "/") (type "ext4")) %base-file-systems)) (swap-devices '("/dev/sda2")) (users (cons (user-account (name "hubert") (comment "Cathy's brother") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video")) (home-directory "/home/hubert")) %base-user-accounts)) ;; Add a bunch of window managers; we can choose one at ;; the log-in screen with F1. (packages (cons* ratpoison i3-wm i3status dmenu ;window managers nss-certs ;for HTTPS access %base-packages)) ;; Use the "desktop" services, which include the X11 ;; log-in service, networking with Wicd, and more. (services %desktop-services) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))
Faisons maintenant une copie de ce fichier renommé 'config.scm' sur '/mnt/etc'
# cp /etc/configuration/perso.scm /mnt/etc/config.scm
Une fois la préparation du fichier de configuration terminée, le nouveau système doit être initialisé (rappelez-vous que le système de fichiers racine cible est monté sur /mnt) :
# guix system init /mnt/etc/config.scm /mnt
Ceci copie tous les fichiers nécessaires et installe GRUB sur /dev/sda, à moins que vous ne passiez l’option –no-bootloader . Cette commande peut déclencher des téléchargements ou des versions des packages manquants, ce qui peut prendre un certain temps.
Lors de cette initialisation, j'ai vu plusieurs messages d'erreur qui n'ont pas porté à conséquence :
"Some deprecated features have been used...
Il y avait aussi 3 ou 4 “collision encountered”
.......no-login .......ifconfig
Une douzaine de lignes concernant X11, le bureau, le clavier, etc.
.................................................................... file not found................................./X11/................ file not found.....
Copier sur / mnt [#####################################################]
L'installation est terminée, je peux redémarrer :
# reboot
Après le redémarrage, un message comme celui-ci: “No Operating System installed, please install on hard disk”
J'ai réussi à démarrer grâce au superdisk grub2 que j'avais gravé sur un CD \o/
https://www.supergrubdisk.org/category/download/supergrub2diskdownload/
Après avoir inséré le CD superdisk grub2, j'ai fini par trouver l'existence de cette ligne :
gnu linux-libre
J'ai validé et GuixSD a démarré \(^ o ^)/
On dirait que superdisk grub2 a restauré grub …? (J'ai également fait basculer l'indicateur d' amorçage avec cfdisk , un détail passé inaperçu lors de l'étape de partitionnement). Ça ressemble à ça maintenant :
# cfdisk Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 479995903 479993856 228.9G 83 Linux /dev/sda2 479995904 488397167 8401264 4G 82 Linux swap
Le démarrage est maintenant autonome. Je ne sais pas s'il faut remercier Superdisk grub2 ou cfdisk pour la restauration du démarrage, mais l'installation est un succès.
Ctrl-Alt-F2 pour passer en pleine console. l'accès à root est vide (autorisé) Il suffit d'appuyer sur [Entrée]. Après m'être créé un mot de passe utilisateur (moi, l'utilisateur final…)
# passwd hubert New password: Retype new password: passwd: password updated successfully
…l'utilisateur que je suis peut maintenant se connecter avec mon compte utilisateur.
Choix 'i3': un bureau minimal. La souris est ok.
Choix 'Ratpoison' : “Can't logging in …” Pas de souris, rien …
Depuis la console, Alt-F7 est utilisé pour passer à X11.
Ctrl-Alt-F2 et partez à l'exploration!
Un champ de possibilités semble enfin être dévoilé ;)
Pour voir la suite sur xfce, GNOME, ssh et plus encore :
Mes tentatives pour apprivoiser GuixSD
Les packages sont installés ou mis à niveau vers la dernière version disponible dans la distribution actuellement disponible sur votre ordinateur local. Pour mettre à jour cette distribution, avec les outils Guix, vous devez exécuter guix pull : la commande télécharge le dernier code source Guix et les dernières descriptions de paquetages et le déploie. Le code source est téléchargé depuis un référentiel Git .
Une fois l'opération terminée, guix package utilisera les packages et les versions de package de cette copie de Guix qui vient d'être récupérée. De plus, toutes les commandes Guix et tous les modules Scheme seront également repris de cette dernière version. De nouvelles sous-commandes guix ajoutées par la mise à jour sont également disponibles.
Tout utilisateur peut mettre à jour sa copie Guix à l'aide de guix pull. L'effet est limité à l'utilisateur qui exécute guix pull. Par exemple, lorsque l'utilisateur root exécute guix pull, cela n'a aucun effet sur la version de Guix visualisée par l'utilisateur, et inversement.
# guix pull loading... 26.0% of 665 filesrandom send for tests: 1519122060 compiling..32,5% of 665 files[ 6445.974339] perf: interrupt took too long (2520 > 2500), lowering kernel.perf_event_max_sample_rate to 79250 compiling..50,4% of 665 files[ 6789.721416] perf: interrupt took too long (3156 > 3150), lowering kernel.perf_event_max_sample_rate to 63250 compiling..75,0% of 665 files[ 7353.373930] perf: interrupt took too long (3951 > 3945), lowering kernel.perf_event_max_sample_rate to 50500 compiling..100.0% of 665 files ........................................................................ updated GNU Guix sussessfully deployed under '/root/.config/guix/latest'
Pour les mises à jour, j’utilise les lignes de commande suivantes, d’abord à partir du compte root , ensuite à partir de la session utilisateur (A noter comme on l'a vu, la commande guix package -u qui vient en complément de guix pull :
# guix pull # guix package -u
$ guix pull $ guix package -u
# guix system reconfigure /etc/config.scm
Maintenant, je veux modifier 'config.scm' pour affiner la configuration. Vi(m) n'est pas encore installé.
Il est temps de lancer ma première installation d'un logiciel à partir du compte root :
# guix package -i vim
Vim est téléchargé et installé.
Un regard sur la configuration du système me montre comment ajouter gnome et xfce :
# vim /etc/config.scm
;; This is an operating system configuration template ;; for a "desktop" setup with GNOME and Xfce and ;; where "host-name" is my own laptop. (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) (use-package-modules certs gnome) (operating-system (host-name "lxx-xxx-xx-xx-xxx-xxx-xx6") (timezone "Europe/Paris") (locale "en_US.utf8") ;; Assuming /dev/sda is the target hard disk, and "my-root" is ;; the label of the target root file system. (bootloader (grub-configuration (target "/dev/sda"))) (file-systems (cons (file-system (device "my-root") (title 'label) (mount-point "/") (type "ext4")) %base-file-systems)) (swap-devices '("/dev/sda2")) (users (cons (user-account (name "hubert") (comment "Cathy's brother") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video")) (home-directory "/home/hubert")) %base-user-accounts)) ;; This is where we specify system-wide packages. (packages (cons* nss-certs ;for HTTPS access gvfs ;for user mounts %base-packages)) ; Add GNOME and/or Xfce---we can choose at the log-in ;; screen with F1. Use the "desktop" services, which ;; include the X11 log-in service, networking with Wicd, ;; and more. (services (cons* (gnome-desktop-service) (xfce-desktop-service) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss))
Invocation de guix system
https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html#Invoking-guix-system
Maintenant que j'ai modifié la configuration du système, demandons à guix system de le reconfigurer :
# guix system reconfigure /etc/config.scm .............................................................................. .............................................................................. .............................................................................. guix system: error: exception caught while executing 'eval' on service 'root': ERROR: find-long-options: unbound variable Installing for i386-pc platform. Installation finished. No error reported.
Ces débuts d'utilisateur inexpérimenté sont palpitants. Malgré ces messages d'erreur, tout se passe bien.
# reboot
La nouvelle version du noyau est proposée.
Dans ma session utilisateur, je choisis le bureau par défaut xfce
Après quelques instants, le bureau xfce apparaît. Cela semble bien fonctionner, le navigateur Web de GNOME fonctionne parfaitement et il est fluide.
Je vais de surprises en surprises, même GNOME s’ouvre sans problèmes et le look est très sympa.
Dans le navigateur Web, je peux voir des vidéos et la carte son fonctionne très bien.
À ce stade, je remarque que les sessions de bureau prennent quelques instants pour démarrer.
J'essaie de continuer, car je dois appliquer les paramètres régionaux fr pour le clavier, ssh en mode utilisateur et essayer d'apprendre les règles de l'administrateur à la gestion des utilisateurs, de leurs droits, etc.
“Tout utilisateur peut mettre à jour sa copie Guix en utilisant 'guix pull', et l'effet est limité à l'utilisateur qui exécute guix pull. Par exemple, lorsque l'utilisateur root exécute 'guix pull', cela n'a aucun effet sur la version de Guix que cet utilisateur utilise. Alice voit, et vice versa. ”
$ guix pull ............................................................................... GNU Guix mis à jour et déployé avec succès sous '/home/hubert/.config/guix/latest'
Pour une mise à jour complète:
$ guix package -u
Vivant dans une zone numérique fracturée, je peux parfois observer un temps très long lors de la mise à jour de la session utilisateur par cette dernière commande. Une douzaine d'heures est parfois nécessaire. Une fois il m'avait fallu 22 heures et une autre fois 24 heures, ce furent les 2 seules fois. Je pense que c'est très différent dans les villes, peut-être 3 ou 4 heures?
Essayons de configurer le clavier pour les paramètres régionaux fr avec 'console-keymap-service':
Notez que j'ai effectué les opérations suivantes à mes risques et périls, peut-être faudrait-il procéder à une telle installation sous le compte utilisateur ? Pas assez câlé là-dessus pour l'instant… Donc mon tuto est à suivre avec précautions…
Depuis le compte root par défaut (console TTY2), j'ai tapé:
# guix package -i setxkbmap
setxkbmap est maintenant installé.
Ensuite, j'ai d'ajouté cette ligne (console-keymap-service “fr”) dans % desktop-services :
# vim /etc/config.scm
;; Add GNOME and/or Xfce---we can choose at the log-in ;; screen with F1. Use the "desktop" services, which ;; include the X11 log-in service, networking with Wicd, ;; and more, in this case by adding console-keymap-service (services (cons* (gnome-desktop-service) (xfce-desktop-service) (console-keymap-service "fr") %desktop-services))
Reconfiguration de 'config.scm'
# guix system reconfigure /etc/config.scm no error # reboot
En session utilisateur, à partir de l' émulateur de terminal xfce :
$ sudo -i
# loadkeys fr # setxkbmap fr
Fait :)
Mais je dois retaper ces 2 commandes à chaque redémarrage pour que les modifications soient effectives.
Edit: Le 2 mai 2018, avec GNOME, mes paramètres régionaux sont corrects. Dans la session Mate, je devais appliquer plusieurs fois la mise en forme “fr”, en cliquant sur le bouton correspondant. Dans la session xfce, je ne pouvais pas appliquer les paramètres régionaux corrects. Aujourd'hui, j'utilise exclusivement Gnome Shell.
La curiosité d'installer d'autres logiciels :
$ guix package -i vlc
Est téléchargé et installé sans aucun problème.
$ guix package -i icecat
Pareil. De plus IceCat est pour moi une excellente alternative à Firefox.
Je vais essayer d'obtenir ssh . À partir du compte root par défaut :
# vim /etc/config.scm
;; This is an operating system... in which i add ssh. (use-modules (gnu) (gnu system nss)) (use-service-modules desktop networking ssh) (use-package-modules certs gnome screen ssh) ;; This is where we specifiy ;; system-wide packages. (packages (cons* gvfs ;for users mounts nss-certs ;for HTTPS access screen ;screen openssh ;openssh %base-packages))
# guix system reconfigure /etc/config.scm # reboot
En mode utilisateur, je peux ajouter mon hébergement Web distant dans un signet Nautilus et ssh fonctionne parfaitement ;)
C'est la première fois de ma vie que je suis confronté à un système aussi impressionnant de stabilité et de cohérence. Mais je me demande parfois comment trouver mes marques et comment apprivoiser le système.
Le canal irc est une mine d'infos et l'accueil vraiment sympa : https://www.gnu.org/software/guix/contact/irc/
Et voilà, c'est un retour de ce que je réussis à faire en tant qu'utilisateur final de Logiciel Libre plus ou moins expérimenté