dimanche 30 août 2015

Quelques astuces pour la réalisation de script Shell en Bash.


Il arrive fréquemment que l'on est à développer un petit script Shell. En général, il s'agit d'un petit script à faire dans l'urgence et une fois que celui-ci fonctionne, on ne le retouche plus.On ne fait généralement pas assez de test pour s'assurer si il y a ou non des cas tordus.
Voici deux petites astuces pour améliorer la réalisation de ces scripts.


Utiliser les bons paramètres

En ajoutant les lignes ci-dessous à vos script Shell, vous allez pouvoir détecter plus facilement les erreurs et les oublis :

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

ce blog explique très bien les différentes paramètres qui sont utilisés : http://redsymbol.net/articles/unofficial-bash-strict-mode/




Un outil pour vérifier la syntaxe

Il existe sur le net des petits outils pour vous faciliter la vie.Ainsi, voici un outil pour non vérifier la syntaxe mais aussi vous donner quelques conseils http://www.shellcheck.net/

samedi 30 août 2014

app-textrarian compilation failed


La semaine dernière, j'ai eu un soucis avec la compilation de app-textrarian.
J'ai donc posé la question sur le forum de Funtoo et on m'a donné un work around :
Si vous changez la langue de la variable LINGUAS à EN, cela permet d'effectuer la compilation.
Merci à Oleg Vinichenko pour cette astuce.

Pour plus de détails :
http://forums.funtoo.org/index.php?/topic/161-app-textrarian-081-r2-failed/
Le signalement :
https://bugs.funtoo.org/browse/FL-1497

jeudi 28 août 2014

emerge: there are no ebuilds to satisfy


J'ai eu le problème suivant lors de l'exécution de emerge -p world :

emerge: there are no ebuilds to satisfy "sys-kernel/gentoo-sources:3.10.32". (dependency required by "@selected" [set]) (dependency required by "@world" [argument]) 
emerge: there are no ebuilds to satisfy "sys-kernel/gentoo-sources:3.12.13". (dependency required by "@selected" [set]) (dependency required by "@world" [argument])



La solution consiste à effacer l'ebuild du fichier world.On peut le faire grâce à l'option --deselect de la commande emerge ;

emerge --deselect sys-kernel/gentoo-sources:3.10.32


Merci mackal pour la solution.Plus de détail sur le forum Gentoo : https://forums.gentoo.org/viewtopic-t-998826-highlight-.html

vendredi 22 août 2014

dev-lang/perl conflit



Depuis peu, je m'interesse à Funtoo, une autre version de Gentoo.
Je ferai un post à l'occasion sur Funtoo.

Lors de la mise à jour de Funtoo, j'ai eu l'erreur suivante :

WARNING: One or more updates have been skipped due to a dependency conflict:

dev-lang/perl:0

  (dev-lang/perl-5.18.2-r1::gentoo, ebuild scheduled for merge) conflicts with
    =dev-lang/perl-5.16* required by (virtual/perl-Perl-OSType-1.2.0-r1::gentoo, installed)



Pour résoudre ce problème, j'ai exécuté les commandes suivantes :


emerge -1auD $(qlist -IC 'virtual/perl-*')
perl-cleaner --all


Voir le forum Gentoo




Remarque :

Lors de la commande emerge, apparemment il y a un soucis avec le package app-text/rarian.Cela résout cependant le problème initial. Reste à savoir d'où vient le problème pour ce package ...


 * Messages for package app-text/rarian-0.8.1-r2:

 * ERROR: app-text/rarian-0.8.1-r2 failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info '=app-text/rarian-0.8.1-r2'`,
 * the complete build log and the output of `emerge -pqv '=app-text/rarian-0.8.1-r2'`.
 * The complete build log is located at '/var/tmp/portage/app-text/rarian-0.8.1-r2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-text/rarian-0.8.1-r2/temp/environment'.
 * Working directory: '/var/tmp/portage/app-text/rarian-0.8.1-r2/work/rarian-0.8.1'
 * S: '/var/tmp/portage/app-text/rarian-0.8.1-r2/work/rarian-0.8.1'

 * Regenerating GNU info directory index...
 * Processed 109 info files.



mercredi 20 août 2014

Retour de vacances difficiles avec systemd

De retour de vacances, j'ai effectué une petite mise à jour de ma gentoo.
Et la j'ai eu pas mal de problème avec systemd.
Finalement, j'ai trouvé la solution sur le forum Gentoo :

sys-apps/systemd contains udev and, then, you can safely let sys-fs/udev be removed as systemd will be the provider for virtual/udev.
sys-apps/systemd and sys-apps/dbus have a circular dependency which necessitates a 2-stage installation.
Install sys-apps/dbus with USE="-systemd". This is probably already done if you have a working desktop environment.
Enable the systemd USE flag globally (make.conf) and install sys-apps/systemd. This may also be accomplished by a world update. The consolekit use flag should also be disabled to prevent conflicts with the systemd-logind service. You can also switch to a systemd subprofile to use saner USE flags defaults not needing to change make.conf:

Merci à eyoung100 pour cette solution : http://forums.gentoo.org/viewtopic-t-977642-start-0.html

Si vous voulez plus d'infos sursystemd, il y a un super article en français sur LinuxFr : http://linuxfr.org/news/%C3%A9volutions-techniques-de-systemd

dimanche 25 mai 2014

Faire un print screen sur KDE

Si comme moi, vous avez installer KDE à la main et que le bouton Imprime écran ne fonctionne pas, cela est surement du à un package manquant.


emerge ksnapshot



KSnapshotdefaultscreen.png

KSnapshot a quelques fonctionnalités intéressantes qu'il est bon de souligner :
  • Vous avez la possibilité de mettre un délai avant Capture pour par exemple pouvoir capturer des menus déroulant.
  • Inclure ou non le pointeur de la souris.
  • Envoyer l'image directement dans un logiciel tel que Gimp.
  • ALT Gr + printscreen pour ne prendre que la fenêtre en capture







Plus d'information sur : http://userbase.kde.org/Taking_Screenshots/fr

vendredi 16 mai 2014

Debug de script shell online

ShellCheck
ShellCheck est un petit outil online pour debuger vos script.Vous avez juste à coller votre script et à cliquez sur un bouton.C'est le genre d'outil à avoir sous la main
pour vous éviter à chercher pendant de long moment où se trouve l'erreur !

Plus d'infos : http://www.shellcheck.net/


PoweredByGento