Planet Libre

Journal du hacker : Liens intéressants Journal du hacker semaine #13

Pour la 13ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

La vache libre : Aide-mémoire Terminal : DPKG (Debian Package)

dpkg (Debian package) est un outil bas niveau utilisable en ligne de commande, conçu pour la gestion des paquets .deb sous Debian et dérivés. Il permet en autres l’installation, la suppression et la gestion des paquets Debian (.deb), mais aussi la gestion de paquets provenants de sources extérieures aux dépôts apt. dpkg peut également s’avérer utile (voir indispensable) pour intervenir sur un conflit, un blocage d’apt, ou sur la gestion d’un paquet possédant beaucoup de dépendances. Ne gérant pas ces dernières il permet en effet d’intervenir sur un paquet sans bouleverser ses dépendances. Il est d’ailleurs assez souvent utilisé par Synaptic et d’autres gestionnaires d’applications. Enfin dpkg permet d’obtenir pas mal d’informations sur les paquets installés, voir même au besoin d’en recréer un depuis une application déjà installée. Je pose ici quelques commandes que j’utilise régulièrement et comme d’habitude n’hésitez pas à intervenir dans les commentaires pour une éventuelle correction ou pour un complément d’info. Je sais comment et quand je dois les utiliser, mais j’avoue que parfois l’idée que je m’en fais (le descriptif) ne correspond pas toujours à la façon dont elle agissent réellement. Donc n’hésitez pas.

Installation de paquets :
  • Installer un paquet au format .deb :
~$ sudo dpkg -i [paquet.deb]
  • L’option -R (recursive) installera l’ensemble des paquets présents dans un répertoire et ses sous-répertoires) :
~$ sudo dpkg -i -R *.deb

NB : Les deux commandes suivantes m’ont souvent aidé quand une installation c’était mal passée et que quelque chose était manquant ou flingué.

  • Compléter l’installation d’un paquet qui nécessite des dépendances non satisfaites :
~$ sudo apt install -f
  • Reconfiguration de dpkg et pour faire simple, des paquets cassés. Peut être associé (et ou complété) par apt install -f :
~$ sudo dpkg --configure -a

NB : Si un paquet refuse de s’installer il est possible de forcer la chose à l’aide de certaines options, mais je ne vais pas les lister ici. Cela présente des risques qui bien souvent n’en valent pas la peine. Si vous voulez en savoir plus sur le sujet vous pouvez jeter un œil sur cet article.

Suppression de paquets :
  • Supprimer un paquet mais pas les fichiers de configuration associés :
~$ sudo dpkg -r [paquet.deb]
  • Supprimer un paquet et les fichiers de configuration associés :
~$ sudo dpkg -P [paquet.deb]

!!! La commande suivante peut être dangereuse et ne doit être utilisée que dans des contextes bien particuliers. Je la liste quand même car elle m’a déjà sorti de la panade, mais soyez prudents et renseignez-vous avant de l’utiliser !!!

  • Forcer la suppression d’un paquet et de ses fichiers de configuration quand apt se trouve bloqué par exemple :
~$ sudo dpkg --force-all --purge [paquet.deb] Lister et rechercher ses paquets :
  • Afficher la liste complète des paquets installés sur le système (peut être redirigé dans un fichier texte via >> list.txt) :
~$ dpkg -l
  • Vérifier la présence et l’état d’un paquet :
~$ dpkg -l [paquet]
  • Lister l’ensemble des paquets liés à une application :
~$ dpkg -l *nom_du_paquet*
  • Afficher la liste paquets contenant le fichier relatif au terme de recherche) (je ne sais pas comment la décrire de manière moins bancale :)) :
~$ dpkg -S [paquet] Aide : ~$ man dpkg (manuel de dpkg)
~$ dpkg --help (aide de dpkg)

Voilou. La liste est courte mais pour le moment je n’ai jamais eu besoin de plus.

source : doc.ubuntu-fr.org

Dernière modification le 30/03/2019 22h00

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

Articles similaires

La vache libre : Aide-mémoire Terminal : APT (Avanced Packaging Tool)

Salut mes choupinoux(nettes). J’inaugure une suite de billets qui ne vont pas obligatoirement vous intéresser, mais qui auront l’avantage d’être là quand j’en aurais besoin. Le terminal est un outil formidable certes, mais il faut bien se rendre à l’évidence cela demande un minimum de mémoire. À moins d’être une brutasse ou de l’utiliser tous les jours, il est parfois difficile de se rappeler de tout ce dont on a besoin. J’ai donc crée une catégorie « Aide-mémoire », qui va me permettre de lister dans l’étable les commandes et les applications en CLI que j’utilise assez souvent. Si en utilisation courante un « man » ou un « –help » font largement l’affaire, cela me sera surtout utile en cas de réinstallation. Il y a toujours quelques softs ou réglages dont je ne me souviens plus et les avoir sous la patte me fera gagner du temps. Le but n’est donc pas d’approfondir les commandes et les options que je vais lister ici, mais de disposer d’un petit kit correspondant à mes besoin réels. Je commence avec APT et je vous fais de gros bisous.

APT (Avanced Packaging Tool)

APT (Avanced Packaging Tool) est un gestionnaire de paquets et de mises à jour complet. Disponible sur un grand nombre de distributions GNU/Linux, il a été conçu dans le but de vous permettre d’installer, de supprimer et de mettre à jour votre système, vos sources et vos applications.

Recherche et installation de paquets :

~$ sudo apt search [paquet](rechercher un paquet)
~$ sudo apt install [paquet](installer un paquet)
~$ sudo apt install -f (permet de régler des éventuels problèmes de dépendances manquantes avec dpkg)

Mises à jour :

~$ sudo apt update (rechercher les mises à jour)
~$ sudo apt ugrade (installer les mises à jour)
~$ sudo apt full-upgrade (supprimer/installer et mettre à jour les paquets)
~$ sudo apt dist-upgrade (mettre à jour la distribution y compris le kernel)

Suppression de paquets et nettoyage :

~$ sudo apt remove [paquet] --purge (désinstaller un paquet et purger ses fichiers de configuration)
~$ sudo apt autoremove [paquet] (désinstaller un paquet et les dépendances inutilisées) (peut être associé à --purge)
~$ sudo apt autoclean (supprimer tout le cache apt)

Informations paquets et dépendances :

~$ sudo apt -l (lister les paquets installés) (>> fichier.txt peut rediriger le résultat dans un fichier)
~$ apt --version (afficher la version d'apt)
~$ sudo apt show [paquet] (afficher les détails d'un paquet)
~$ sudo apt depends [paquet] (lister les dépendances d'un paquet)

Gestion des sources :

~$ sudo apt edit-sources (permet de modifier les sources .list)

Aide :

~$ man apt (afficher le manuel d'apt)
~$ apt --help (afficher l'aide d'apt)

Extra :

~$ apt moo (parce que les vaches c'est cool!)

NB : L’option « -y » associée aux différentes commandes permet de ne pas avoir à confirmer la commande par o/n, y/n.

Dernière modification le 27/03/2019 à 00h20

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Syspatch : patch VMM - GDT+IDT - 6.3+6.4

L'équipe OpenBSD nous livre un nouveau correctif nommé "vmmints".

  • Les limites GDT et IDT sont improprement restaurées lorsque le contexte VMM change. 6.3 : patch n°32 ; 6.4 : patch n°16.

Le redémarrage de votre machine est nécessaire, car cela affecte le noyau.

Architectures concernées : amd64 et i386

Note : Ce patch est utile si et seulement si vous utilisez la virtualisation VM !

 

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Renault : [F30] Participez à la journée de test consacrée à la modularité

Aujourd'hui, ce mardi 26 mars est une journée dédiée à un test précis : sur la modularité. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants ou nouveautés afin de remonter un maximum de problèmes sur le sujet.

Elle fournit en plus une liste de tests précis à effectuer. Il vous suffit de les suivre, comparer votre résultat au résultat attendu et le notifier.

En quoi consiste ce test ?

La modularité est le résultat de la réflexion de Fedora.next, amorcé en 2014. L'objectif est de découpler le cycle de vie des applications avec celui de Fedora afin qu'un utilisateur de Fedora bénéficie de plus de flexibilité. Il serait par exemple possible de choisir une version native de Python plus récente ou plus ancienne que celle disponible par défaut. Auparavant cela n'était possible qu'en choisissant une autre version de Fedora ce qui pouvait être contraignant.

Les modules se comportent comme des dépôts supplémentaires proposant un ensemble de paquets destinés à remplacer ceux des dépôts officiels. Mais bien entendu, tout cela est géré par le projet Fedora avec la même qualité et les mêmes mainteneurs.

Pour le moment Fedora propose quelques modules comme Docker, Django, NodeJS et le langage Go.

Les tests du jour couvrent :

  • Lister les modules disponibles et installés ;
  • Installer un nouveau module ;
  • Activer un nouveau module ;
  • Mettre à jour un module.

Comme vous pouvez le constater, ces tests sont assez simples et ne devraient prendre que quelques minutes seulement. Il vous faudra bien évidemment installer le dépôt modular avant (paquet fedora-repos-modular).

Comment y participer ?

Vous pouvez vous rendre sur la page des tests pour lister les tests disponibles et rapporter vos résultats. La page wiki récapitule les modalités de la journée.

Si vous avez besoin d'aide lors du déroulement des tests, n'hésitez pas de faire un tour sur IRC pour recevoir un coup de main sur les canaux #fedora-test-days et #fedora-fr (respectivement en anglais et en français) sur le serveur Freenode.

En cas de bogue, il est nécessaire de le rapporter sur le BugZilla. Si vous ne savez pas faire, n'hésitez pas à consulter la documentation correspondante.

De plus, si une journée est dédiée à ces tests, il reste possible de les effectuer quelques jours plus tard sans problème ! Les résultats seront globalement d'actualité.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Soucis rencontrés avec Borg

J'utilise Borg en production depuis quelques mois maintenant et voici donc un retour d'expérience. Je n'ai pas de métrique /temps pour une volumétrie donnée de sauvegarde, je verrai pour faire ça dans un prochain billet je pense. Dans le présent billet je voudrais me concentrer sur les soucis que j'ai pu rencontré avec Borg. Par soucis c'est un bien grand mot. J'ai rencontré différents types d'erreur sans conséquences et pour lesquelles j'ai toujours pu avoir une résolution.

Borg est un logiciel fiable et de qualité, cela faisait partie de mes critères de test et de choix qui ont fait que j'ai d'abord utilisé Borg à titre personnel avant de passer à un usage en production.

Les messages de Borg dans le cas d'erreur sont assez explicites et parlant. Voici les quelques erreurs rencontrées et leurs résolutions.

Problème de lock -Failed to create/acquire the lock

borg create -v --stats /Backup/Dossier_borg/::Projets_`date +%Y-%m-%d-%H:%m:%S` /Projets/
Failed to create/acquire the lock /root/.cache/borg/4f59d52b3ca46decce6e3dedee7a057b64300a49f827629abff259af2bfbe297/lock.exclusive (timeout).

Problème rencontré La sauvegarde Borg refuse de se lancer sur un dossier. Le message parle d'un problème d'un fichier .lock en indiquant le chemin concerné par le lock.

Cause Lorsque Borg lance une sauvegarde sur un dossier, il crée un fichier .lock dans l'espace de sauvegarde qu'il utilise pour ses données. Si le processus Borg a été coupé / interrompu (lancement à travers SSH et perte de réseau ; interruption manuelle de la sauvegarde en cours...)

Résolution On supprime le fichier .lock et le dossier lock à l'endroit indiqué dans le message d'erreur. Et on relance la sauvegarde qui peut alors correctement se dérouler.

Qui des interruptions de Borg ?

Si on lance une sauvegarde Borg à travers SSH et que l'on a une coupure réseau, Borg est capable de reprendre là où il s'était arrêté.

Le nom de la sauvegarde prend alors une extension ".checkpoint" dans son nom, ce qui permet de savoir facilement que cette sauvegarde est incomplète / non achevée. A la relance suivante, si le nom est indentique, Borg repart et finalise cette sauvegarde. Si le nom est différent (dans mon cas je fais des sauvegardes avec un nom de la forme YYY-MM-DD-HH:MM), Borg conserve la sauvegarde avec un .checkpoint dans son nom.

Autres cas

Problème rencontré

Warning: The repository at location ssh://linagora@machine/Backup/Projet was previously located at ssh://linagora@machine2/Backup2/Projet
Do you want to continue? [yN] y
Cache is newer than repository - this is either an attack or unsafe (multiple repos with same ID)

Cause

Sur un espace de stockage avec un seul disque, j'ai eu un soucis de perte du disque. Par sécurité, selon la règles des 3-2-1, je fais une deuxième sauvegarde Borg identique sur un autre espace. J'ai donc récupéré les données sauvegardées également avec Borg sur un autre espace. Un Rsync, assez long.

Résolution

Pour que Borg retrouve ses petits, j'ai relancé Borg sur cet espace. Borg indique que l'espace de sauvegarde a changé de chemin, on valide. Et les sauvegardes suivantes se poursuivent en utilisant ce nouvel espace et les données des sauvegardes précédentes.

Cela nous montre qu'un espace de sauvegarde Borg peut être lui même sauvegardé par copie intégrale / déplacé, Borg se débrouillera et fera juste un warning quand on lance l'usage des données de cet espace de sauvegarde.

Conclusion

J'espère que ce retour sera utile à d'autres. N'hésitez pas à laisser en commentaire votre propre expérience de soucis rencontrés dans les usages de Borg. Merci à vous.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #12

Pour la 12ème semaine de l'année 2019, voici 12 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Cenwen : Welcome à OpenShot 2.4.4 !

Avec l’arrivée des beaux jours,  je vous annonce la sortie (et donc la disponibilité ) de la nouvelle version d’OpenShot 2.4.4. Bien que la liste des nouveautés soit longue je ne vais pas m’attarder trop dessus et donc me contenter de présenter les grandes lignes de celle-ci. Mais avant tout et comme il est de tradition, voici la vidéo de présentation de ce nouveau opus de Jonathan.

Voici la liste des principales nouveautés de cette version :

  • résolution d’un bogue au niveau des images clés lors du changement des taux de frames
  • amélioration des performances de la timeline et de visualisation des vidéos
  • amélioration du rendu Svg en utilisant maintenant la librairie resvg
  • amélioration sur les pistes et l’affichage de la totalité des propriétés dans une fenêtre unique, quelle soit dockée à droite ou à gauche

  • amélioration de l’installateur Windows
  • création de la portabilité (utilisation d’un projet sur la même machine, une autre ou bien carrément un autre système) d’un projet openshot (*.osp)
  • création de présets personnalisés
  • ajout de nouveaux langages : Hindi, Arabe et Chinois (Traditionnel et Simplifié) pour le logiciel et openshot.org

  • ajout du CRF (Constant Rate Factor) pour les presets à l’export
  • Intégration du changelog pour chaque version : dorénavant vous saurez qui a fait quoi…

  • correction d’un bogue survenant lors de la coupe d’un clip audio : la waveforme ne s’affichant plus…
  • amélioration de la procédure de test par la création d’un manifeste de test pour chaque nouvelle version. Celui-ci a pour but de plus impliquer la procédure de test par plus de personnes (autre que Jonathan lui-même) et donc de déceler plus rapidement et en amont les bogues éventuels à chaque nouvelle version. Voici le manifeste en question.
  • création d’une nouvelle communauté OpenShot sur Reddit où tout à chacun peut poser des questions. Elle remplace le site historique (http://www.openshotusers.com) ouvert par Andy et moi-même il y a maintenant près d’une décennie.
  • Développement à plein temps (au moins pour 2019) : ce rêve (et je le confirme depuis la décision de créer la version Qt ) de travailler à plein temps sur ce projet qui dure depuis une décennie devient dorénavant une réalité pour cette année.
  • Voici la liste de tous les changements effectués sur openshot-qt, libopenshot et libopenshot-audio :openshot-qt
    • Bump version to 2.4.4 (minimum libopenshot to 0.2.3)
    • Scale keyframe coordinates when changing Profile or Exporting using a different FPS (#2620)
    • Large performance improvements on AngularJS Timeline (and solved some Async issues) (#2533)
    • Integration of resvg SVG library (gitlab and freeze updates) (#2540)
    • Improved Tracks (simpler numbering, faster inserting, prevent deletion of locked tracks) (#2491)
    • Improved Docking (Timeline widget is now dockable and Properties works in pillar mode) (#2490)
    • Windows Installer: Remove invalid files (system32/zlib1.dll) (#2678)
    • Use libopenshot to generate preview images for our Title editor, and no longer use Qt’s SVG parsing by default. (#2544)
    • Improving UTF-8 path detection and conversion (#2525)
    • Rewrite conversion of relative and absolute path support in OpenShot (#2477)
    • Fixing many Python issues reported in our automatic exception tracking (#2482)
    • Fixing Various Breakages in our Release Testing Plan (#2669)
    • Fixing regressions to Split Audio (#2660)
    • Integrate Constant Rate Factor (CRF) into Export Dialog (#2543)
    • Separating PrepareStreams() from Open(), to allow SetOption() to correctly function (#2568)
    • Adding h265 export preset (thanks Peter) (#2680)
    • Adding ~/.openshot_qt/presets/ User-defined Presets, so users can easily install custom export presets (devices and formats) (#2555)
    • Dragging an OSP file into the Project Files widget will open the entire project file (and prompt to save unsaved changes) (#2616)
    • Persist undo/redo history correctly across OpenShot sessions (#2474)
    • Fix audio waveform display when slicing clips or resizing/trimming clips
    • Color picker: Never use native dialog (#2425)
    • Adding Git Changelog screen (#2566)
    • Converting to new Settings class, instead of the old ENV VAR method (#2520)
    • Reverting Angular from 1.7.2 to 1.6.0 (for stability reasons) (#2479)
    • Updating GitHub Templates (for bug report, question, and feature request) (#2608)
    • Updating GitHub README: features list, translation urls, and badges (#2597)
    • Completed Arabic, Hindi, Chinese (Simplified and Traditional) translations (#2594)
    • Update messaging integration on build server (#2426)
    • Add __init__.py file for installed module (#2419)
    • launch.py: Path-detect via openshot_qt init (#2419)
    • Exit using sys.exit() (#2409)
    • preferences: Tweak item layout (#2401)
    • Widen export window (#2373)
    • Pass remaining command line args to Qt (#2355)
    • Copy (cleaned up) xdg icon to src/images (#2316)
    • Add strings to be translated and fix tuple error (#2275)
    • added browse button in file properties dialog, to allow relinking of individual media files (#2275)
    • fix for automatic relinking of missing media files during project open (#2275)
    • Add the same browse type for inkscape and blender field (#2255)
    • Remove CRLF line endings from chromebook preset (#2204)
    • Convert `language.py` line endings (#2204)
    • Missing files are now automatically deleted from the recent menu (#2202)
    • Append correct extension to snapshot frames (#2196)
    • Simplify version number and file name logic in build server (especially for releases) (#2136)
    • Update Contributors & Translations (#2679)

    libopenshot

    • Bumping version to 0.2.3 (SO 17)
    • Integration of resvg SVG library (optional during build) (#185)
    • Improved Keyframe Performance (#197)
    • MP3 Special Handling & Missing Frame Refactor (#196)
    • Fix default sizes on readers without MAX_WIDTH and MAX_HEIGHT settings (#188)
    • Adding new settings class to be used for changing realtime settings used by libopenshot, such as scaling mode for preview vs final render, or hardware decode, etc… (#183)
    • Integrate Constant Rate Factor (CRF) for FFmpegWriter (#186)
    • Improving cache performance by preventing the cache from getting behind the currently displaying frame # (#179)
    • Set video bit rate to 0 if an invalid bit rate detected (which happens when using crf) (#191)
    • Invalid SetMaxSize Logic and Invalid CRF q settings in FFmpegWriter (#198)
    • Refactor FFmpegWriter Open() and PrepareStreams() methods, so that SetOption() can be called between them. (#193)
    • Some polishing for the cmake ReSVG discovery (#187)
    • Adding condition before calling av_frame_free (in AV_FREE_FRAME macro) (#184)
    • tests/CMakeLists: Use same dependencies as src/ (#163)
    • Remove Eclipse files and add to gitignore (#178)
    • Fixing Scale Mode (None) in previews (#182)
    • Exclude git tags from kicking off GitLab builds (for libopenshot)
    • Update readme to use markdown and update copyright to 2019 (#94)
    • Update README and INSTALL files (including build instructions) (#194)
    • Add git log file with commits up to the previous release (#192)

    libopenshot-audio

    • Bumping version to 0.1.8 (SO remains 6)
    • Create README.md, INSTALL.md, INSTALL-WINDOWS.md, INSTALL-MAC.md, INSTALL-LINUX.md (#32)
    • Adding git log to build artifacts (since last release tag) (#31)
    • Exclude git tags from kicking off GitLab builds (for libopenshot-audio) (#26)

 

Finalement…

Cette nouvelle version s’inscrit dans la finalité du projet: installation facilité, stabilité, facilité d’utilisation. Sans rentrer dans les sujets évoqués plus haut, un me semble plus intéressant que les autres.

Et , à mon avis, il est de taille : le travail à plein temps de Jonathan sur le projet. C’est effectivement un vieux rêve et je suis très curieux de voir ce qui va en résulter dans les mois qui vont venir.

 

Gravatar de Cenwen
Original post of Cenwen.Votez pour ce billet sur Planet Libre.

Articles similaires

La vache libre : Draw On Your Screen – Une extension GNOME Shell amusante

Vous connaissez bien ma devise maintenant. Si c’est utile c’est bien, si c’est inutile c’est indispensable! L’extension GNOME Shell que je vais vous présenter rapidement dans ce billet répond très bien à ce critère, dans la mesure où si pouvoir dessiner sur son écran ne sert fondamentalement à rien, que peut il y avoir de plus cool?!! Sans doute pas mal de choses, mais à cet instant précis je ne vois pas quoi! Draw On Your Screen, c’est son nom, est une extension pour GNOME Shell conçue dans le but de vous permettre de dessiner ou d’écrire sur votre écran. Cela faisait un moment que je n’avais pas eu envie de tester une extension GNOME, mais celle-là m’a attiré car je l’ai trouvée bien faite et très amusante. Si ça vous tente voyons vite fait comment ça marche.

Pour commencer il va falloir chercher la bête sur cette page, et vérifier la compatibilité de cette dernière avec votre version de GNOME Shell. Ça va de la 3.26 à la 3.32 je crois, ce qui ne vous empêche pas de tester avec d’autres versions. Parfois ça marche quand même.

Une fois que c’est fait placez et décompressez l’archive dans le répertoire suivant ~/.local/share/gnome-shell/extensions et IMPORTANT renommez le dossier de la sorte : drawOnYourScreen@abakkk.framagit.org (sinon ça ne fonctionne pas).

Quand tout est en place lancez un ALT + F2 et entrez R dans le champs requis, suivi de ENTER pour relancer GNOME Shell.

Si tout est OK vous n’avez plus qu’à activer l’extension en passant par GNOME Tweak Tools (Ajustements).

Pour commencer à dessiner il suffit d’appeler l’extension à l’aide de la combinaison super + alt + D

Vous pourrez alors faire des jolis ronds fins :

ou épais :

des carrés ou des rectangles :

et si vous préférez les lignes pas de soucis :

Comme le montre l’image d’illustration du billet vous pouvez également dessiner à main levée et il y a apparemment un mode texte, mais chez moi cela n’a pas fonctionné. Je n’ai pas encore trouvé pourquoi.

La sélection des différents modes se fait à l’aide du middle click et pour effacer vos œuvres vous pouvez utiliser la combinaison super + alt +E.

Pour quitter l’application utilisez à nouveau super + alt + D.

Bien entendu vous pouvez choisir différentes couleurs, les raccourcis clavier sont configurables et vous disposez d’un certains nombres d’options supplémentaires dans le menu de l’application, que je vous laisse découvrir par vous même.

Pour résumer ça ne sert pas à grand-chose, mais c’est bien foutu et ça a le mérite d’exister. D’autres applications font la même chose, mais l’idée de pouvoir le faire à l’aide d’une simple extension est suffisamment intéressant pour que l’on s’y attarde.

C’est bien pour finir la semaine :D

Amusez-vous bien!

source

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

Articles similaires

blog-libre : Vous avez 4 heures

Je me suis dit que ça pourrait être marrant de vous faire participer aux casse-têtes auxquels je suis confronté. Je lance le truc pour voir si ça vous plaît/amuse, si il n’y a pas de retours je remballerai mon idée ha ha.

On m’a demandé de récupérer les logs du 22/01 à partir de 11h40 sur quelques 130 serveurs. On peut utiliser ansible ou un outil de ce type pour balancer la commande sur tous ces serveurs mais comment récupérer tous les logs (ligne entière) à partir de 11h40 ?

Ci-dessous 50 lignes de logs d’un serveur (j’ai trafiqué et tronqué les infos) qui vous serviront à tester la solution que vous proposez, je vous invite à les copier-coller dans un fichier sur votre poste pour effectuer vos tests. Tous les coups sont permis : Scripts (tous langages : Python, Perl…), shell one-liner, site web qui fournit la solution en 1 clic, corruption de l’auteur (je suis hétérosexuel et j’accepte les virements bancaires), etc.

monpetitserveur.net 87.122.70.72 - - [22/Jan/2019:00:54:21 +0100] "POST monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:00:54:22 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:00:55:52 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:01:26:23 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:01:26:23 +0100] "POST monpetitserveur.net 112.156.104.2 - - [22/Jan/2019:02:12:08 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:02:36:39 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:02:36:40 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:02:46:21 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:03:46:31 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:03:46:34 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:03:46:34 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:03:46:46 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:04:26:51 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:04:26:51 +0100] "POST monpetitserveur.net 105.204.123.56 - - [22/Jan/2019:05:00:17 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:05:27:22 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:05:27:22 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:05:27:22 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:05:57:47 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:05:57:59 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:06:57:41 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:08:38:50 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:08:38:50 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:08:39:08 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:08:39:23 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:08:59:15 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:08:59:20 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:09:06:19 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:10:19:40 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:10:19:41 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:10:19:51 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:10:49:44 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:10:49:45 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:11:19:51 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:11:22:17 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:11:40:57 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:11:40:57 +0100] "POST monpetitserveur.net 104.48.123.201 - - [22/Jan/2019:12:16:45 +0100] "GET monpetitserveur.net 84.12.145.4 - - [22/Jan/2019:12:49:41 +0100] "GET monpetitserveur.net 84.12.154.4 - - [22/Jan/2019:12:49:43 +0100] "GET monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:12:49:44 +0100] "POST monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:12:50:02 +0100] "GET monpetitserveur.net 45.85.135.74 - - [22/Jan/2019:13:15:27 +0100] "GET monpetitserveur.net 45.85.135.74 - - [22/Jan/2019:13:15:27 +0100] "GET monpetitserveur.net 42.248.86.23 - - [22/Jan/2019:13:46:11 +0100] "GET monpetitserveur.net 53.56.8.95 - - [22/Jan/2019:13:48:09 +0100] "POST monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:13:48:09 +0100] "POST monpetitserveur.net 190.18.127.56 - - [22/Jan/2019:20:06:48 +0100] "POST monpetitserveur.net 2a00:1450:1:815:124::1 - - [22/Jan/2019:20:06:50 +0100] "POST

Vous avez le droit de poser des questions. Je laisse jusqu’à lundi 17h30 puis je fermerai les commentaires, ça laisse du temps pour ceux qui voudraient s’amuser dessus ce week-end. Je fournirai ensuite une solution (la mienne) soit dans les commentaires soit dans un autre article.

En général on a un temps imparti pour effectuer une tâche : Vous avez 4 heures.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Thuban : Syspatch : patch PF - ICMP - multi-arch - 6.3+6.4

L'équipe OpenBSD nous livre ce jour le patch "pficmp" :

  • Un état dans PF peut transmettre des paquets ICMP à une adresse IP de destination qui ne correspond pas à cet état. ! 6.3 : patch n°31 ; 6.4 : patch n°15.

Le redémarrage de votre machine est nécessaire, car cela affecte le noyau.

Architectures concernées : amd64, arm64 et i386

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Full Circle Magazine FR : Le numéro 142 est à votre disposition

Bonjour,

Notre petite équipe - de trois personnes - est fière de pouvoir vous présenter le numéro 142, celui de février 2019, en français, bien avant la sortie du numéro 143 en anglais, prévue pour la fin du mois ! Comme d'habitude, il est disponible sur notre page Numéros ou directement, en cliquant sur la photo de couverture ci-dessous.

issue142.png

Outre les rubriques habituelles, notamment les tutoriels Python, Freeplane et Inkscape, il y a une deuxième partie sur Darktable qui vous explique comment modifier une photo assez terne pour obtenir de belles couleurs plus semblables à la réalité telle que vous l'avez vue.

Dans la rubrique Ubuntu au Quotidien, vous trouverez la cinquième partie de la série de Richard sur le rétro-gaming. Cette fois-ci, c'est vraiment la toute dernière à ce sujet, du moins pendant un certain temps.

En parlant de jeux rétro, Erik nous donne des renseignements supplémentaires sur Hatari, un émulateur avec lequel on peut jouer à presque tous les jeux de presque toutes les consoles Atari (mais attention aux droits d'auteur).

Vous y trouverez aussi trois pages de Questions et Réponses, le récit des tribulations de Hansrudolph qui avait des problèmes à n'en plus finir avec sa carte son ALSA, et une critique littéraire sur "Assembly Language Programming With Ubuntu" qui est gratuit, ce qui est un avantage non négligeable, mais qui n'existe pas en français.

Nous vous en souhaitons bonne lecture...

À la prochaine fois,

Bab, scribeur et relecteur, d52fr, traducteur et relecteur, et AE (moi-même), traductrice et relectrice.

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Julien L : GNU GuixSD 0.16 sur Dell Precision M4400

Dans un précédent article, j’ai décrit ma découverte de la distribution GNU GuixSD.

Dans cet article, je vais résumer, comme je l’avais fait avec la distribution Salix, la compatibilité de la distribution GNU GuixSD, en version 0.16, avec mon ordinateur, un Dell Precision M4400 :

Photo de l’ordinateur portable Dell Precision M4400
Affichage
Matériel : WUXGA 39 cm (15,4″) 2CCFL (résolution de 1920 x 1200 pixels) + NVIDIA Corporation G96GLM [Quadro FX 770M] [10de:065c]
Compatibilité : OK, avec le pilote nouveau.
Interface Ethernet
Matériel: Intel Corporation 82567LM Gigabit Network Connection [8086:10f5]
Compatibilité : OK.
Inferface Wifi
Matériel : Broadcom Limited BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b]
Compatibilité : OK, avec le pilote propriétaire (module noyau wl), après installation du paquet linux-libre+broadcom-sta-x86_64 (combinant le pilote propriétaire avec le noyau Linux-libre).
Interface Bluetooth
Compatibilité : non testée.
Interface 3G (UMTS)
Compatibilité : non testée.
Clavier
Matériel : AT Translated Set 2 keyboard
Compatibilité : OK, avec les trois touches de contrôle du volume reconnues comme des touches multimédia standard dans X.org (XF86AudioLowerVolume, XF86AudioRaiseVolume, XF86AudioMute).
Pavé tactile
Matériel : AlpsPS/2 ALPS DualPoint TouchPad
Compatibilité : OK, sauf tap (problème qui semble assez fréquent) et défilement horizontal.
Bouton de pointage (trackpoint)
Matériel : AlpsPS/2 ALPS DualPoint Stick
Compatibilité : OK.
Son
Matériel : Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e]
Compatibilité : OK pour haut-parleurs et micro intégré ; non testée pour sortie casque et entrée micro.
Caméra
Matériel : Microdia Integrated Webcam [0c45:63f1]
Compatibilité : OK.
Batterie
Compatibilité : OK (pleine charge bien indiquée à 100 %).
CD/DVD
Compatibilité : non testée.
Interface avec cartes mémoire
Matériel : Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822]
Compatibilité : OK (testée seulement avec une carte SD, seulement en lecture).
Interface USB
Compatibilité : OK (testée avec une souris USB, une clé USB et un lecteur de livres électroniques).
Interface eSATA
Compatibilité : non testée.
Interface Firewire
Matériel : Ricoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832]
Compatibilité : non testée.
Lecteur d’empreintes digitales
Matériel : Broadcom Corp. BCM5880 Secure Applications Processor with fingerprint swipe sensor [0a5c:5801]
Compatibilité : non testée.
Lecteur de cartes à puce (PC/SC)
Matériel : Ricoh Co Ltd RL5c476 II [1180:0476]
Compatibilité : OK, après installation des paquets pcsc-lite et ccid.
Lecteur de cartes sans contact
Compatibilité : non testée.
Boutons de gestion d’alimentation
Compatibilité : OK pour touche Lune (Fn + F1), ouverture et fermeture du couvercle (bouton lid) et bouton d’alimentation (On/Off).
Lecteur de cartes d’extension (ExpressCard 54, PCMCIA)
Compatibilité : non testée.
Interface pour station d’accueil
Compatibilité : non testée.
Interface avec moniteur (VGA, DisplayPort)
Compatibilité : non testée.

Comme vous pouvez le constater, je n’ai pas eu l’occasion de tout tester, mais les fonctionnalités essentielles sont opérationnelles, et la plupart le sont dès l’installation de la distribution. Si vous avez une question concernant cet ordinateur et sa compatibilité avec Linux, n’hésitez pas me contacter via les commentaires.

Gravatar de Julien L
Original post of Julien L.Votez pour ce billet sur Planet Libre.

Articles similaires

La vache libre : zRam – Un kernel module qui peut être utile

Si vous possédez une machine récente embarquant beaucoup de mémoire vive, zRam (ex Compcache) est un module présent dans le noyau Linux dont vous n’aurez sans doute pas à vous préoccuper. En revanche si vous tournez sur un vieux clou et que vous sentez qu’il rame un peu (oui je sais elle est facile celle-là), vous pouvez tenter le coup et essayer d’optimiser un peu votre mémoire vive.

Pour ceux qui ne le savent pas encore les fameuses barrettes de RAM (Random Acces Memory) présentes dans vos ordinateurs, permettent le stockage temporaire de certaines informations afin que votre système puisse y accéder plus rapidement. Quand vous lancez un programme par exemple, celui-ci se charge dans la mémoire vive et pourra au besoin être rappelé et relancé plus vite. C’est très intéressant dans la mesure où l’accès à la mémoire vive est plus rapide que sur un disque dur traditionnel, car contrairement à vos barrettes de RAM celui-ci fonctionne à l’aide d’éléments mécaniques. Le petit bras que vous entendez grattouiller quand vous bossez. En revanche quand une certaine quantité de mémoire vive est occupée son contenu va être déplacé sur le disque dur, qui va alors commencer à swapper. Une zone de celui-ci, le swap, est entièrement dédiée à cette tâche.

Si vous avez bien suivi vous comprenez qu’à se stade vous allez perdre un peu en performances et qu’il peut être intéressant d’optimiser votre RAM afin que celle-ci dump le plus tard possible vers le swap. Pour cela vous avez *deux solutions. Si c’est possible matériellement vous en ajoutez et si ça ne l’est pas vous compressez. C’est la que zRam entre en jeu. Il s’agit d’un module présent nativement dans le noyau Linux, qui permet une fois configuré de compresser les instructions déjà présentes en RAM afin de disposer de plus d’espace pour les suivantes. En un sens cela permet d’augmenter virtuellement la quantité d’espace mémoire disponible. Bien entendu et je le précise car je sais que vous êtes rusés, la mémoire compressée va être de ce fait un peu plus lente. Cela va demander aussi un tout petit peu plus de boulot au CPU, qui devra compresser et décompresser les instructions avant de les traiter. Malgré tout le gain est réel et le ratio restera positif si on compare à un disque dur traditionnel.

La deuxième question que vous pourriez vous poser c’est de savoir si zRam peut-être utile avec un SSD, qui lui ne fonctionne pas avec des éléments mécaniques. Je dirais oui et non. Tout dépend de votre configuration et de votre utilisation. Si vous avez assez de RAM pour que votre SSD n’ait pas à swaper je dirais que vous n’en avez pas besoin. Dans le cas contraire vous pourriez commencer à y réfléchir, car même si les SSD d’aujourd’hui sont moins fragiles que ceux de première génération, swaper dessus activement ne doit pas être très bon à moyen terme. Ça multiplie les cycles d’écriture et je pense, mais c’est un avis personnel, qu’il peut claquer plus vite.

Donc en résumé si vous n’avez pas assez de RAM ou si vous ne voulez pas swaper sur votre SDD, activer zRam peut s’avérer utile d’autant plus qu’il n’y a pas grand chose à faire. Il suffit d’entrer ceci dans votre terminal :

sudo apt install zram-config

Normalement vous n’avez rien d’autre à faire, mais assurez quand même que les modifications aient été prises en compte à l’aide de la commande suivante :

cat /proc/swaps

ou :

swapon -s

Chez moi par exemple, si zRam n’est pas activé j’ai le retour suivant :

Comme vous pouvez le voir sur l’image ci-dessus le retour m’indique que le swap est en un bloc, donc zRam n’est pas actif. Si vous êtes dans ce cas là entrez ceci dans votre terminal :

sudo service zram-config start

Comme vous pouvez le constater ce n’est plus la même chose. les différents espaces sont compressés (ils correspondent aux nombres de cœurs processeurs) et que tout est en place.

On peut le voir également dans l’analyseur de disque.

Si pour une raison spécifique vous souhaitez revenir en arrière et désactiver zRam, il suffit d’entrer ceci dans votre terminal :

sudo swapoff /dev/zram1 sudo zramctl --reset /dev/zram1

Voilà. Ça ne casse pas trois pattes à un canard mais ça peut servir.

*Si vous tournez sur un SSD avant de compresser il peut être intéressant de vous intéresser aux paramètres swapiness. Sur Ubuntu par exemple, le système est prévu pour dumper et commencer à swapper lorsque la RAM affiche un taux d’occupation de 40%. Si sur un serveur cela peut s’avérer utile, c’est un peu moins cohérent sur un PC de bureau. Laisser 60% de RAM inutilisée n’a pas de sens. Si vous voulez en savoir plus à ce sujet vous pouvez jeter un œil là-dessus.

Amusez-vous bien!

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Installer des extensions GnomeShell depuis le navigateur

Dans ce billet, je ne listerai pas les extensions Gnome Shell que j'utilise (ce n'est pas le but), je parlerai juste du comment installer facilement ces extensions.

En 2017, Antistress publiait sur son blog Libre-ouvert Gérer les extensions pour GNOME Shell avec Firefox en 2017. Nous sommes en 2019 et son billet est toujours d'actualité. Ayant eu besoin d'installer quelques extensions Gnome Shell sur une machine Ubuntu 18.04, j'ai pu vérifié. Et j'ajouterai à son billet quelques compléments ci-dessous.

Le site des Extensions Gnome https://extensions.gnome.org/ liste les différentes extensions disponibles et installables pour différents versions de Gnome.

Une fois l'extension installée, il est possible d'installer puis d'activer ou de désactiver des extensions directement depuis son navigateur (Ce que l'on peut également faire avec l'outil Gnome Tweak pour les applications installées).

Lorsque que vous n'en avez pas usage, je conseillerai de désactiver voir de désinstaller l'extension. L'extension en elle-même n'alourdit pas Firefox (about:performance, cf Quels onglets et quelles extensions ralentissent votre Firefox confirme que ce n'est pas ce qui consomme le plus de mémoire). Mais pour des questions de sécurité, vu que cette extension modifie le comportement de votre environnement de bureau (en ajoutant la possibilité d'ajouter des modules, de les activer ou non), ce pourrait être une porte d'entrée en cas de faille de sécurité (et tout code informatique peut présenter des failles de sécurité).

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Articles similaires

Julien L : Découverte de GNU GuixSD

Dans un précédent article, j’avais expliqué (et tenté de justifier) ma migration vers la distribution GNU GuixSD sur mon ordinateur personnel.

Dans cet article, je vais tenter de décrire comment j’ai installé cette distribution, comment je l’ai configurée et quelles ont été mes impressions.

Mon ordinateur personnel est un Dell Precision M4400.

Logo de GuixSD

Installation

J’ai suivi les instructions données dans le manuel. La procédure n’est pas trop compliquée pour peu qu’on ait une connaissance minimale de la ligne de commande.

J’ai opté pour la version 0.15 (dernière version en date au moment de mon installation) en 64 bits (x86_64).

Comme je m’y attendais, mon adaptateur Wifi n’est pas supporté. J’ai donc dû tirer un câble Ethernet pour avoir accès à Internet.

Ce qui était moins prévisible, c’est que je suis tombé au moment où le dépôt principal des paquets binaires (appelés substituts dans Guix), hydra.gnu.org, était indisponible pour maintenance et que le seul miroir disponible, berlin.guixsd.org, était instable. Cela a pas mal compliqué l’installation et j’ai dû m’armer de patience avant de pouvoir aller jusqu’à la fin de la procédure.

C’est pourquoi je suis parti sur la configuration système la plus simple, dite bare bones, dont le modèle est fourni sur le support d’installation. Cette version du système ne contient pas d’environnement graphique.

Au redémarrage, nous arrivons sur un menu de GNU GRUB avec le logo Guix (une tête de gnou stylisée) en fond. C’est plutôt propre.

Le démarrage du système se fait par contre en mode texte. C’est moins beau mais on voit ce qui s’y passe. Cela ne me dérange pas.

Configuration post-installation

Une fois avoir démarré sur le système fraîchement installé, j’ai commis une grave erreur en voulant immédiatement lancer une reconfiguration du système (guix system reconfigure) afin d’améliorer quelques aspects. C’est une erreur car cela a pour conséquence d’appliquer un downgrade du système ! Le manuel consielle pourtant fortement de mettre à jour GNU Guix en fin d’installation et GNU Guix m’a bien donné un avertissement mais j’ai passé outre. Le pire, c’est que j’ai lancé la re-configuration plusieurs fois, appliquant à chaque fois un downgrade ! Pourquoi ce comportement ? J’ai trouvé une réponse sur la liste de diffusion du projet mais je dois avouer ne pas trop la comprendre.

Quoi qu’il en soit, il est important de suivre jusqu’au bout les instructions du manuel et de lancer une mise à jour de GNU Guix (guix pull) avant toute autre chose.

À partir de là, j’ai pu amélioré correctement ma configuration petit à petit et la peaufiner jusqu’à l’obtention d’un système entièrement fonctionnel.

Dans la suite de cet article, je vais détailler comment j’ai obtenu cette configuration.

Adaptateur Wifi

Matériel : Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b]

Comme le microcode (firmware) disponible pour cette puce n’est pas libre, il n’est pas inclus dans le noyau Linux-libre. De toute façon, la documentation officielle du noyau Linux indique que le support pour cette puce est partielle et les différents essais que j’avais faits sous Salix n’avaient pas été concluants.

Je me suis donc rabattu, une fois de plus, sur le pilote propriétaire, appelé Linux STA driver et matérialisé par un module noyau nommé wl.

Je me suis, pour cela, lancé dans la création d’un paquet Guix pour ce pilote (disponible ici).
Pour l’intégrer au noyau, j’ai également dû créer un autre paquet Guix qui regroupe le noyau Linux-libre et le pilote (disponible ici).

Ce paquet de noyau modifié doit être référencé dans la configuration du système :

(operating-system (kernel linux-libre+broadcom-sta-x86_64)

Je dois dire que j’ai pas mal galéré pour faire ces deux paquets mais le résultat est que je ne dois (presque) plus me soucier des mises à jour de noyau. À la mise à jour du système, le pilote propriétaire ainsi que le noyau modifié sont ré-empaquetés puis installés automatiquement. Et, avec GNU Guix, si quelque chose échoue lors de ce processus, rien n’est modifié sur le système. Si le résultat n’est pas satisfaisant, la version précédente du système est disponible dans GNU GRUB.

Environnement graphique

Afin de profiter d’un environnement graphique, j’ai d’abord changé la configuration du système en prenant le modèle d’une configuration dite desktop. Celle-ci active plusieurs services de base, dont le gestionnaire de connexions SLiM. Une fois cette configuration appliquée, le gestionnaire de connexions est apparu automatiquement, avec, encore une fois, une tête de gnou stylisée. Je trouve que c’est du plus bel effet.

Ensuite, j’ai créé un paquet avec la dernière version le gestionnaire de fenêtres Notion, que j’utilise depuis de nombreuses années déjà. Le paquet est disponible ici. Il est fondé sur l’excellent paquet créé par Jeff Mickey.
Après avoir installé Notion en tant que simple utilisateur, je l’ai référencé dans mon fichier ~/.xsession :

exec notion

J’ai eu quelques soucis à récupérer ma configuration de Notion, dûs aux chemins non standard des logiciels installés, mais j’ai finalement obtenu un environnement graphique dans lequel je me sentais à l’aise.

Disposition de clavier BÉPO

Je suis habitué à la disposition de clavier BÉPO. L’activer a été une de mes premières tâches.

Comme presque toujours dans GNU Guix, cela passe par le fichier de configuration du système :

(define bepo-evdev "Section \\"InputClass\\" Identifier \\"evdev keyboard catchall\\" Driver \\"evdev\\" MatchIsKeyboard \\"on\\" Option \\"xkb_layout\\" \\"fr\\" Option \\"xkb_variant\\" \\"bepo\\" EndSection")

(operating-system

(services (cons (console-keymap-service « fr-bepo »)
(modify-services %desktop-services
(slim-service-type config =>
(slim-configuration
(inherit config)
(startx (xorg-start-command
#:configuration-file
(xorg-configuration-file
#:extra-config
(list bepo-evdev)))))))))

…)

L’entrée console-keymap-service permet de charger une disposition de clavier pour la console.
Tout le reste permet de changer la disposition de clavier dès le démarrage du gestionnaire de connexions SLiM.

Je trouve un peu dommage qu’une chose basique comme la disposition de clavier ne puisse pas être changée plus facilement.

Gestion des paquets

Au fur et à mesure de ma découverte du système, j’ai installé quelques paquets en tant qu’utilisateur régulier.

J’essaie de limiter le nombre de paquets installés au niveau système à son strict minimum. Pour les programmes que j’utilise régulièrement, j’installe les paquets en tant qu’utilisateur régulier.

Pour installer un paquet, il suffit de taper :

guix package -i

Le paquet ainsi que tous les paquets dépendants sont automatiquement téléchargés et installés dans le profil de l’utilisateur. Si un paquet binaire (appelé substitut) n’est pas disponible (cela peut arriver), les sources sont téléchargées et le paquet binaire est construit puis installé. À ce propos, il faut noter l’option -n (–dry-run), qui permet de voir préalablement ce qui sera téléchargé et ce qui sera construit. Ainsi, cela donne une idée de l’effort à fournir pour installer le paquet.

Chaque opération (ajout, suppression, mise à jour) peut prendre du temps car une nouvelle version du profil est créée à chaque fois.

Pour voir tous les paquets installés dans un profil, il suffit de taper :

guix package -I

Ceci ne liste que les paquets qui ont été explicitement installés, et pas les paquets dépendants.

Si on désinstalle un paquet (guix package -r ), les paquets dépendants seront également supprimés du profil.

Comme pour les paquets au niveau système, j’essaie de limiter les paquets installés au niveau utilisateur en gardant les paquets que j’utilise quotidiennement.

Lorsque je souhaite tester un logiciel ou que j’ai besoin d’un paquet ou d’un ensemble de paquets pour une tâche ponctuelle, j’ai pris l’habitude d’utiliser guix environment. Par exemple, si je veux travailler sur un projet de développement en OCaml qui utilise Mercurial, je vais lancer la commande suivante :

guix environment --ad-hoc ocaml mercurial

Ceci lance un shell avec un profil Guix dans lequel les commandes ocaml (du paquet du même nom) et hg (du paquet mercurial) sont disponibles. À la fin de ma session de travail, je quitte simplement ce shell. Ainsi, mon profil principal n’est pas touché et je n’y accumule pas des dizaines d’outils.

En ajoutant le fait que les opérations se font de manière transactionnelle, je trouve que GNU Guix propose à l’utilisateur une façon assez propre de gérer les paquets.

Mise à jour du système

Afin de mettre de mettre à jour le système et les logiciels qui y sont installés, il est nécessaire de mettre à jour GNU Guix lui-même ainsi que la définition des paquets. Cela se fait par la commande suivante :

guix pull

Ici, j’ai pu noter deux écueils :

  • même si je sais que les développeurs ont travaillé sur ce point lors des derniers mois, cette opération peut être assez longue (plusieurs minutes) ;
  • cette opération doit être effectuée pour chaque utilisateur du système.

Une fois cette opération terminée, une re-configuration du système peut être effectuée (guix systeme reconfigure) ou tous les paquets installés peuvent être mis à jour (guix package -u).

Ainsi, pour mettre à jour un système (somme toute classique de nos jours) utilisé par un seul utilisateur, il faut lancer 5 commandes :

  • en tant qu’administrateur (root) : guix pull guix system reconfigure guix package -u
  • en tant qu’utilisateur régulier : guix pull guix package -u

C’est un peu lourd (chacune de ces opérations pouvant prendre un certain temps). Néanmoins, c’est, d’une certaine manière, le prix à payer pour tous les avantages apportés par GNU Guix (transaction, gestion de paquets par utilisateur…).

Nettoyage du système

Toutes ces mises à jour et créations de profil laissent des paquets (ou des anciennes versions de paquets) présents sur le système, sans qu’ils soient utilisés. Cela peut prendre pas mal de place sur le système de fichiers. Et cela peut même finir par saturer l’espace disponible. C’est ce qui m’est arrivé.

Pour cela, il y a la possibilité de lancer un ramasse-mièttes via la commande guix gc.

Malheureusement, cette commande, lancée sans paramètre particulier, échoue sur mon système avec le message d’erreur suivant :

guix gc: error: build failed: executing SQLite statement: FOREIGN KEY constraint failed

Si vous avez également cette erreur, il y a une bonne et une mauvaise nouvelles.

La mauvaise nouvelle, c’est que, sur la liste de diffusion d’assistance aux utilisateurs, les experts de GNU Guix sont formels : une manipulation manuelle a été faite dans le dépôt de paquets, ce qui l’a rendu incohérent. Et, pour résoudre cette erreur, il n’y a pas d’autres choix que de réinstaller le système… Pourtant, je suis presque sûr de ne pas avoir touché quoique ce soit dans ce dépôt de paquets…

La bonne nouvelle, c’est qu’il existe une solution de contournement à ce problème (la seule que j’ai trouvée). Elle consiste à supprimer un paquet en particulier. En choisissant un paquet volumineux (par exemple, le noyau Linux) ou sur lequel il y a beaucoup de dépendances (par exemple, une librairie comme glib), l’espace gagné peut être assez conséquent.
Pour cela, je lance d’abord la commande suivante :

guix gc --list-dead

Ceci liste les paquets inutilisés.

Il suffit alors de choisir judicieusement un paquet dans la liste puis de lancer la commande suivante :

guix gc -d

Par exemple :

guix gc -d /gnu/store/yrq6wh410fabc4jsvg7rzpm3jp39myj8-gtk+-3.24.0

On peut facilement gagner des centaines de Mio.

Mozilla Firefox et Thunderbird

Je suis habitué à Mozilla Firefox et Thunderbird. Ces deux logiciels sont malheureusement absents des paquets disponibles. C’est un point qui m’a fait longtemps hésiter à passer sur cette distribution.

En remplacement de Mozilla Firefox, l’équipe Guix fait la promotion de GNU Icecat. Je l’ai essayé mais je n’ai pas aimé le simple fait qu’il soit fourni avec tout un tas d’extensions par défaut, certaines étant spécifiques à certains sites Web. J’ai donc assez rapidement passé mon chemin, même si j’essaie de le garder au cas où j’en aurais besoin.

Devant l’absence de paquets Guix pour Mozilla Firefox et Thunderbird, j’ai décidé d’en créer moi-même. Celui pour Mozilla Firefox est disponible ici. Celui pour Thunderbird est disponible . Ce sont pour l’instant des anciennes versions ESR (versions 52) mais je compte migrer vers les dernières versions ESR dans un futur proche.

N’ayant ni les capacités matérielles ni le temps pour compiler ces logiciels, j’ai choisi de créer des paquets à partir des versions binaires officielles, telles que fournies par Mozilla. Pour réaliser ces paquets, je me suis fondé sur l’astuce donnée par Solène Rapenne sur son blog. Elle consiste à lancer un binaire pré-compilé via l’éditeur de lien (ld-linux-x86-64.so.2) en prenant soin de préciser toutes les dépendances logicielles dans une variable d’environnement LD_LIBRARY_PATH.

Le résultat fonctionne plutôt bien, y compris le son (via pulseaudio) et la vidéo (via ffmpeg).

Le seul problème rencontré est que Mozilla Firefox ne fonctionne pas en mode multi-processus. Il faut donc le désactiver en mettant les propriétés browser.tabs.remote.autostart et browser.tabs.remote.autostart.2 à false dans about:config. Je n’ai pas trouvé d’alternative mais j’espère que le problème disparaîtra en passant à une version supérieure.

Numérisation de documents

Matériel : Canon Pixma MP450

Je souhaitais numériser des documents avec mon imprimante-scanner, connectée au port USB.

J’ai d’abord installé le paquet sane-backends en tant qu’utilisateur mais le scanner n’était pas reconnu.

Le problème était l’accumulation de trois causes :

  1. Le fichier périphérique (/dev/…) pas n’était créé. Le paquet contient bien des règles udev qui rend le scanner disponible pour les applications. Cependant, il est impératif (et assez logique) d’installer le paquet au niveau système afin que ces règles udev soient utilisables.
  2. Étrangement, le paquet officiel ne supporte pas le protocole USB. J’ai dû créer mon propre paquet afin d’activer le support USB.
  3. Le groupe lp était manquant au niveau de mon compte utilisateur afin de donner accès au fichier périphérique créé par les règles udev. Ceci doit être fait au niveau de la configuration système.

Une fois toutes les actions prises, le scanner a fonctionné comme attendu.

Son

Matériel : Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e]

Le contrôleur est bien reconnu et la gestion du son fonctionne de base avec une configuration dite desktop (liste de services %desktop-services dans la configuration système). C’est le couple ALSA + PulseAudio qui fait fonctionner le tout.

Pour régler le volume, le paquet pavucontrol peut être installé. De base, de nombreuses icônes sont absentes. Ceci peut être réglé en installant le paquet gnome-icon-theme.

C’est aussi avec pavucontrol qu’on peut activer le microphone (dans l’onglet Configuration, choisir le profil Duplex stéréo analogique).

Batterie et gestion de l’énergie

Lorsqu’on utilise un ordinateur portable, avoir le niveau de la batterie est quasiment indispensable. J’avais l’habitude d’utiliser une extension Notion appelée linuxbatt. Cependant, j’ai remarqué que celle-ci ne fonctionnait plus sous GNU GuixSD car l’interface /proc/acpi/battery n’existe plus.

Ceci est probablement lié à la version du noyau mais c’est maintenant l’interface /sys/class/power_supply qui fournit les informations sur le niveau de la batterie. J’ai adapté l’extension linuxbatt en conséquence et je l’ai proposée au mainteneur de Notion, qui l’a acceptée. La nouvelle version est disponible ici.

Cette nouvelle interface me paraît plus précise. Lorsque la batterie est totalement chargée, elle me présente un niveau de 100 % alors que l’ancienne interface me donnait un niveau de 139 %…

La mise en veille (appelée aussi suspend-to-ram) fonctionne généralement bien, aussi bien que sous Salix en tout cas. Sans que je n’ai eu besoin de configurer quoi que ce soit, l’appui sur la touche Lune (Fn + F1) provoque la mise en veille. Il en est de même lorsque je rabats l’écran de l’ordinateur (bouton lid).

Comme attendu, l’appui sur le bouton d’alimentation (On/Off) provoque l’arrêt du système.

Tout ceci est principalement dû à l’utilisation de elogind, qui est un service extrait de systemd pour les besoins de GNU Guix.

Par contre, j’ai découvert avec grande déception que GNU GuixSD ne supporte pas l’hibernation (appelée aussi suspend-to-disk) pour l’instant. Sur Salix, je l’utilisais tout le temps. Je me suis fait à l’absence d’hibernation et ce ce n’est, en fin de compte, pas plus mal car j’avais tendance à accumuler des terminaux de console, des onglets dans Mozilla Firefox, etc.

Démarrage et arrêt du système

Le système met environ 1 minute à démarrer, du programme d’amorçage (GNU GRUB) jusqu’à l’affichage du gestionnaire de connexions (SLiM). Je pense que c’est plutôt long. Cela ne me dérange pas trop mais je sais que c’est un critère important pour d’autres.

Une fois que le système a démarré et que je me connecte, la quantité de mémoire utilisée est de moins de 200 Mo.

L’extinction du système est assez rapide (quelques secondes).

GnuPG et password-store

J’ai eu quelques soucis avec GnuPG et password-store, comme je l’expliquais dans un précédent article.

En fait, le principal problème que j’ai eu est dû au fait que le chemin par défaut du pinentry défini dans le paquet Guix de GnuPG n’existe pas et ne peut pas exister. Je suis arrivé à la conclusion qu’il n’y a pas d’autres choix que de spécifier le chemin d’un pinentry dans ~/.gnupg/gpg-agent.conf. Voici le contenu de ma configuration :

pinentry-program /home/julien/.guix-profile/bin/pinentry

Ceci fait référence à un pinentry (paquet pinentry-gtk2) que j’ai installé en tant qu’utilisateur.

Clés USB, cartes SD et autre media amovibles

Mes media amovibles ont été reconnus par le système. De ce point de vue, je n’ai pas eu de problème particulier.

Par contre, j’ai voulu autorisé un utilisateur régulier à monter ces media amovibles et c’est là que les choses se sont compliquées.

J’ai d’abord déclaré le système de fichiers des media dans la configuration du système avec des entrées comme celle-ci :

(file-system (mount-point "/media/inkpad") (device (file-system-label "PB840")) (type "auto") (options "noatime,noauto,user") (mount? #f) ;; pas de montage au démarrage du système (create-mount-point? #t))

Ici, je déclare un point de montage (/media/inkpad) associé à un système de fichiers d’un medium via son étiquette (PB840). Je laisse le système détecter le type de système de fichiers (option auto). Je m’assure que le système n’essayera pas de monter le système de fichiers automatiquement (option noauto et entrée mount désactivée). Enfin je précise que n’importe quel utilisateur régulier est autorisé à monter et démonter ce système de fichiers (option user).

D’après la documentation, l’entrée create-mount-point permet de créer le point de montage si il n’existe pas. Or, lorsque j’ai appliqué cette configuration, le point de montage n’a pas été créé. Pourquoi ? Est-ce un bug dans GNU Guix ? Je ne sais pas. Dans tous les cas, j’ai trouvé cela un peu dommage et je me suis résigné à créer ce point de montage par moi-même (ce qui n’est pas insurmontable, il faut le dire).

Ensuite, j’ai tenté de monter le système de fichiers en tant qu’utilisateur régulier :

mount /media/inkpad

La commande a échoué avec le message suivant :

seul le superutilisateur peut utiliser mount

J’ai beaucoup cherché une solution à ce problème. La seule solution trouvée a été de rendre l’exécutable mount (ainsi que umount) setuid (ajout du bit « Set user id) afin de permettre son exécution avec les permissions de l’utilisateur root. J’ai, pour cela, ajouté ceci dans la configuration du système :

(setuid-programs (cons* #~(string-append #$util-linux "/bin/mount") #~(string-append #$util-linux "/bin/umount") %setuid-programs))

Je n’avais pas besoin de rendre ces utilitaires setuid dans Salix. Était-ce par défaut le cas ?
Y a-t-il une solution à la fois plus simple et plus sûr pour permettre un utilisateur régulier de monter un système de fichiers d’un medium amovible ? Je n’en ai pas vraiment trouvé.

Lecteur de cartes à puce et carte eID belge

Mon ordinateur portable est équipé d’un lecteur intégré de cartes à puce et je suis le détenteur d’une carte d’identité électronique belge (eID). J’ai souhaité utiliser cette carte pour me connecter à un service public belge.

Pour cela, j’ai installé les paquets pcsc-lite (integiciel ou middleware du lecteur de cartes à puce), ccid (pilote ou driver du lecteur de cartes à puces) et eid-mw (integiciel ou middleware de la carte eID) au niveau système, via le fichier de configuration du système.

Le démon pcscd n’était pas disponible en tant que service système (il semble que cela soit le cas maintenant). Je dois donc le lancer manuellement en tant que root.

Le démon cherche les pilotes dans le chemin /var/lib/pcsc. Bizarrement, ce chemin n’existe pas et le lecteur n’est pas reconnu. J’ai été contraint de créer ce chemin en créant un lien symbolique vers /run/current-system/profile/pcsc. Était-ce la bonne façon de faire ? Je crains que non car l’idée de GNU GuixSD est de toujours passer par le fichier de configuration du système.

Toujours est-il que, une fois ce lien symbolique créé, le démon pcscd a pu être exécuté sans erreur particulière.

Le paquet eid-mw contient également eID Viewer. Il s’agit d’un logiciel qui permet de lire le contenu de la carte eID. C’est généralement un bon point de départ pour vérifier que le système reconnait le lecteur de cartes et la carte elle-même, ce qui a été le cas pour moi.

Je n’ai pas réussi à utiliser la carte eID avec mon installation de Mozilla Firefox 52. Par contre, j’ai réussi à l’utiliser avec GNU Icecat, après avoir installé l’extension et après avoir chargé le module PKCS#11 Belgium eID (comme indiqué dans la rubrique Questions et Réponses).

Paquets personnels

J’ai créé quelques paquets pour un certain nombre de logiciels. En plus de ceux déjà indiqués plus haut, il y a notamment :

  • Qalculate!, une calculatrice disponible en ligne de commandes et en interface graphique (paquets disponibles ici) ;
  • asciidoctor, un outil de conversion de documents au format asciidoc (paquet disponible ici) ;
  • RPhoto, un excellent logiciel de traitement de photos numériques (paquet disponible ici) ;
  • pulseaudio-ctl un outil de contrôle du volume du son avec notifications (paquet disponible ici) ;
  • Textadept, un éditeur de texte configurable (paquet disponible ici).
  • txt2tags, un générateur de documents à partir d’un langage de balisage léger et simple (paquet disponible ici).

Les définitions des paquets sont écrites en Scheme, un dialecte du Lisp. Pour moi, cela a été l’occasion de découvrir cette famille de langages. La syntaxe (connue pour l’utilisation massive de parenthèses) est un peu déroutante. Même si je suis plutôt adepte des langages fonctionnels, je reste un peu mitigé.

Une section du manuel est consacrée à la création de paquets. Un très bon tutoriel existe également. En consultant avec attention ces deux ressources, mais aussi en parcourant les définitions des paquets officiels, on peut arriver à créer ses propres paquets.

Conclusion

Je n’ai pas tout testé (je pense en particulier à l’impression) mais je suis arrivé à un système fonctionnel et c’est ce qui est le plus important pour moi. La configuration de mon système est disponible sur mon compte Bitbucket.

Ce qui est bien, c’est que, si j’étais amené à réinstaller le système, je pourrais théoriquement repartir de cette configuration dès l’installation et je devrais obtenir un système identique.

Je suis globalement satisfait de cette distribution. Certains aspects sont un peu déroutants et peut causer quelques soucis (chemins non standard dans le système de fichiers, lourdeur des opérations Guix) mais je crois, pour l’instant, que les bénéfices apportés (mise à jour transactionnelle, gestion souple des paquets…) surpassent ces contraintes.

J’ai aussi l’impression d’utiliser la « distribution du futur » ou, en tout cas, l’embryon de ce que pourrait être l’avenir d’une distribution Linux.

Dans un prochain article, je résumerai la compatibilité de mon ordinateur avec le système GNU GuixSD.

Gravatar de Julien L
Original post of Julien L.Votez pour ce billet sur Planet Libre.

Articles similaires

Renault : [F30] Participez à la journée de test consacrée à l'internationalisation

Aujourd'hui, ce mardi 19 mars, est une journée dédiée à un test précis : sur l'internationalisation de Fedora. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants ou nouveautés afin de remonter un maximum de problèmes sur le sujet.

Elle fournit en plus une liste de tests précis à effectuer. Il vous suffit de les suivre, comparer votre résultat au résultat attendu et le notifier.

En quoi consiste ce test ?

Comme chaque version de Fedora, la mise à jour de ses outils impliquent souvent l’apparition de nouvelles chaînes de caractères à traduire et de nouveaux outils liés à la prise en charge de langues (en particulier asiatiques).

Pour favoriser l'usage de Fedora dans l'ensemble des pays du monde, il est préférable de s'assurer que tout ce qui touche à l'internationalisation de Fedora soit testée et fonctionne. Notamment parce qu'une partie doit être fonctionnelle dès le LiveCD d'installation (donc sans mise à jour).

Les tests du jour couvrent :

  • Le bon fonctionnement d'ibus pour la gestion des entrées claviers ;
  • La personnalisation des polices de caractères ;
  • L'installation automatique des paquets de langues des logiciels installés suivant la langue du système ;
  • La traduction fonctionnelle par défaut des applications ;
  • Les nouvelles dépendances des paquets de langue pour installer les polices et les entrées de saisie nécessaires.

Bien entendu, étant donné les critères, à moins de savoir une langue chinoise, l'ensemble des tests n'est pas forcément réalisable. Mais en tant que francophones, de nombreuses problématiques nous concernent et remonter les problèmes est important. En effet, ce ne sont pas les autres communautés linguistiques qui identifieront les problèmes d'intégration de la langue française.

Comment y participer ?

Vous pouvez vous rendre sur la page des tests pour lister les tests disponibles et rapporter vos résultats. La page wiki récapitule les modalités de la journée.

Si vous avez besoin d'aide lors du déroulement des tests, n'hésitez pas de faire un tour sur IRC pour recevoir un coup de main sur les canaux #fedora-test-days et #fedora-fr (respectivement en anglais et en français) sur le serveur Freenode.

En cas de bogue, il est nécessaire de le rapporter sur le BugZilla. Si vous ne savez pas faire, n'hésitez pas à consulter la documentation correspondante.

De plus, si une journée est dédiée à ces tests, il reste possible de les effectuer quelques jours plus tard sans problème ! Les résultats seront globalement d'actualité.

Gravatar de Renault
Original post of Renault.Votez pour ce billet sur Planet Libre.

Articles similaires

Julien L : Passage à GNU GuixSD

Il y a quelques semaines, j’ai décidé d’installer GNU GuixSD sur mon ordinateur personnel, en remplacement de Salix.

Dans cet article, je vais tenter de présenter cette distribution atypique et expliquer mes motivations à l’installer.

Abandon de Salix

Avant tout, j’aimerais indiquer les raisons qui m’ont poussé à abandonner Salix.

J’ai installé Salix en 2012, il y a donc plus de 6 ans (le système s’appelait Salix OS initialement). J’avais décrit mes impressions dans un article. À l’époque, c’était la version 13.37. J’ai ensuite migré vers la version 14.0, puis vers la version 14.1 et enfin vers la version 14.2.

Logo de Salix

J’ai eu quelques surprises ici et lors de migrations mais le système était globalement très stable. J’ai apprécié la base Slackware Linux et la possibilité de migrer à son rythme.

Seulement voilà, au bout des années, je commençais à avoir quelques reproches :

  • Mozilla Firefox était devenu instable (c’était encore la version ESR 52). Il prenait beaucoup de mémoire et plantait très souvent. Ce n’est pas sûr que ce problème soit vraiment lié à la distribution mais je devais changer de distribution pour le vérifier.
  • L’installation d’un paquet était un peu laborieuse. Il faut d’abord lancer slapt-get pour chercher si un paquet binaire existe. S’il n’existe pas, il faut ensuite lancer slapt-src pour chercher si un SlackBuild (la recette de construction d’un paquet binaire) existe. Si il existe, la construction est lancée mais les dépendances peuvent manquer. On installe alors les dépendances puis on relance la construction. Si le SlackBuild n’est pas disponible, ce qui était devenu pour moi assez fréquent, on doit chercher un SlackBuild sur Internet ou prendre son courage à deux mains et construire un SlackBuild ou un SLKBUILD (une recette simplifiée de construction de paquets binaires) soi-même.
  • Les mises à jour de noyau Linux étaient toujours un peu galère car je me retrouvais sans connexion Wifi et avec la nécessité de réappliquer la procédure de réinstallation du pilote propriétaire de l’adapatateur Wifi.

Mais toutes ces raisons ne sont en réalité que des fausses excuses. En vérité, j’avais surtout envie de voir autre chose. J’avais découvert les gestionnaires de paquets Nix et GNU Guix. Je les avais installés sur le système Salix, en complément du gestionnaire de paquets du système (et pour palier le manque de paquets). J’ai adhéré au concept et je souhaitais aller un pas plus loin en installant un système fondé sur ce type de gestionnaire de paquets.

Présentation de GNU Guix et GuixSD

Mais qu’est-ce que GNU Guix et GuixSD ?

GNU Guix est un gestionnaire de paquets avancé qui ne se limite pas à la simple maintenance de logiciels installés sur un système.

Logo de GNU Guix

Tout d’abord, il permet à un utilisateur ordinaire d’installer des logiciels sans être administrateur. L’intérêt est limité pour moi puisque j’ai naturellement accès au compte root mais je trouve que la fonctionnalité est assez sympathique. Et puis, si on peut éviter de se connecter en tant qu’administrateur, c’est toujours préférable.

Ensuite, GNU Guix permet de se créer des environnements personnalisés, dans lequel on peut installer un ensemble de logiciels dans des versions précises, sans toucher aux logiciels installés sur le système. C’est particulièrement intéressant lorsqu’on fait du développement logiciel et qu’on a besoin de bibliothèques dans des versions spécifiques ou dans plusieurs versions (pour tester). Ludovic Courtès, un des développeurs principaux de GNU Guix, explique très bien cet aspect dans deux articles publiés dans GNU/Linux Magazine (disponibles ici et ).

Enfin, GNU Guix est utilisé comme base de la distribution GNU GuixSD dans le sens où il permet la construction d’un système d’exploitation. La configuration du système (noyau à utiliser, systèmes de fichier, services disponibles, logiciels installés de base…) est décrite dans un seul fichier élémentaire, que GNU Guix utilise pour construire ou mettre à jour un système d’exploitation, et tout ceci de manière transactionnelle (si une mise à jour échoue en plein milieu, aucun changement n’est appliqué sur le système) et versionnée (si la nouvelle configuration ne fonctionne pas, ou moins bien, on peut revenir à la version précédente du système).

N’est-ce pas impressionnant tout cela ?

Logo de GNU GuixSD

Plus concrètement, GNU GuixSD est une distribution qui permet d’installer un système d’exploitation i686 (32 bits) et x86_64 (64 bits) avec une base GNU et le noyau Linux-libre. Elle présente plus de 9000 paquets logiciels. Ils sont tous entièrement libres et ne présentent en particulier aucun microcode (firmware), ce qui explique le choix du noyau Linux-libre. Ce dernier point est un peu contraignant car il limite assez fort le nombre d’adaptateurs Wifi pouvant fonctionner avec la distribution fournie. Il est cependant possible, moyennant quelques efforts, de passer outre cette limitation, comme je l’expliquerai dans un prochain article. Il est à noter que c’est le gestionnaire de services GNU Shepherd qui est utilisé (donc pas de systemd ici).

Motivations du choix de GNU GuixSD

Alors, pourquoi avoir choisi GNU GuixSD ? Eh bien pour les raisons suivantes :

  • les possibilités offertes par le gestionnaire de paquets GNU Guix et, en particulier, la possibilité de se créer des environnements personnalisés ;
  • la garantie d’avoir une base entièrement libre ;
  • l’absence de systemd (dont je n’apprécie pas la conception) ;
  • l’aspect innovant de la distribution et du gestionnaire de paquets.

Dans un prochain article, je détaillerai ma découverte de cette distribution.

Gravatar de Julien L
Original post of Julien L.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #11

Pour la 11ème semaine de l'année 2019, voici 12 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

fgallaire : Quel DPL pour 2019 ?

Le temps passe vite, et cela fait déjà presque un an que Chris Lamb a été réélu Debian Project Leader (DPL). Chaque développeur Debian pouvait se porter candidat entre le 3 et le 9 mars à la suite du traditionnel appel à candidatures.

Cependant, aucun candidat ne s’est déclaré pendant cette période. Après la question de la légitimité d’un scrutin avec un seul candidat, posée en 2016 par Paul Wise lorsque Mehdi Dogguy fut seul à se présenter, et déjà d’actualité en 2011 puis à nouveau d’actualité en 2018 quand Stefano Zacchiroli et Chris Lamb furent seuls à concourir à leur réélection, se posait la question de l’existence même d’un scrutin sans candidats

Heureusement la Constitution du projet Debian avait prévu ce cas de figure dans sa section 5.2. Nomination :

4. […] S’il n’y a pas de candidats à la fin de la période de désignation alors cette période est étendue d’une semaine supplémentaire, autant de fois que nécessaire.

La période de candidature fut donc prolongée d’une semaine, jusqu’au 16 mars, dans l’attente de candidats. Le fait que Lamby ait clairement explicité le fait qu’il n’avait pas l’intention de se représenter :

Whilst it would have been clear to any serious potential candidate already, for the sake of clarity I will not be looking to extend my term in this year’s DPL elections.

a semble-t-il réveillé les ambitions endormies et ce sont finalement pas moins de cinq candidats qui se présenteront cette année :

Les presque mille développeurs Debian seront libres de voter du 7 au 20 avril lors d’un vote utilisant la méthode Condorcet.

Vous pouvez retrouver tous les débats de la campagne sur la mailing list debian-vote.

Tweet

Gravatar de fgallaire
Original post of fgallaire.Votez pour ce billet sur Planet Libre.

Articles similaires

Pages