====== Logiciels pour Linux ====== Vous trouverez sur cette page une collection d'informations diverses sur les logiciels pour Linux au DIRO. Les premières sections donnent quelques détails sur des logiciels fréquemment utilisés et la dernière donne finalement une liste plus étendue des logiciels principaux sur les stations Linux au DIRO. ===== Desktop par défaut ===== Pour les utilisateurs d'un poste de travail, le desktop à utiliser est **KDE**. C'est le seul desktop qui supporté par l'équipe de soutien informatique. Les autres desktops comme **GNOME** et **twm** sont disponibles afin de démontrer une certaine variété au niveau des environnements mais ils ne sont pas supportés. L'usager les utilise tel quel sans aucune garantie au niveau du soutien. ===== Préparation de documents et suite bureautique ===== ==== LaTeX ==== Le système TeX est un environnement de préparation de documents beaucoup utilisé dans le monde scientifique. LaTeX est un ensemble de macros simplifiant l'utilisation de TeX. === Usage === Soit un fichier LaTeX ''toto.tex''. Voici les commandes à taper pour produire un fichier PostScript : latex toto.tex # ceci produit un fichier toto.dvi dvips -o toto.ps toto.dvi Il est ensuite possible d'[[:labs:impression|imprimer]] ''toto.ps''. === Problèmes fréquents === * L'usager redéfinit dans son **''.cshrc''** ou **''.profile''** certaines variables d'environnement essentielles au fonctionnement correct de TeX (par exemple **''TEXINPUTS''** ou **''BSTINPUTS''**). Si l'usager se trouve dans cette situation, TeX ne trouvera plus ses fichiers. Pour résoudre ce problème, l'usager doit éliminer ses redéfinitions ou encore s'assurer qu'elles se terminent par un deux-points **:**, par exemple setenv TEXINPUTS /mon_répertoire_maison/tex: dans le ''.cshrc'' ou, pour le ''.profile'', ainsi : export TEXINPUTS=/mon_répertoire_maison/tex: * Le document contient des caractères accentués. Dans le préambule du document, il faut s'assurer d'avoir ajouter la ligne \usepackage[utf-8]{inputenc} ou, si le document est encodé en ISO-Latin-1, la ligne \usepackage[latin1]{inputenc} * Le document est écrit dans le vieux style LaTeX 2.09 plutôt que LaTeX2e. La commande ''\documentstyle'' est remplacée par ''\documentclass'' et certaines options sont devenus des packages. Ex.: \documentstyle[isolatin1,francais]{article} devient \documentclass{article} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} === Produire du PostScript et du PDF portable === Pour produire directement un fichier PDF à partir d'un fichier LaTeX, utilisez la commande : pdflatex fichier.tex Ceci crée ''fichier.pdf''. Si le fichier PDF produit ne s'imprime pas bien ou ne s'affiche pas complètement, utilisez plutôt les deux étapes suivantes : - produire un fichier PS portable (avec des polices vectorielles) à partir d'un document DVI : dvips -Ppdf fichier.dvi ceci crée ''fichier.ps''; - produire un fichier PDF à partir du PS : ps2pdf fichier.ps fichier.pdf ceci crée ''fichier.pdf''. === Images === La commande ''latex'' ne reconnait que les images (ou figures) dans le format EPS. Le programme ''gimp'' peut être utilisé pour convertir des images en format PostScript encapsulé pour les inclure dans un document LaTeX. Cependant, il est souvent plus simple d'utiliser la commande ''convert'' de la suite [[http://www.imagemagick.org/|ImageMagick]]. Ex.: La commande suivante convertit l'image ''figure.png'' en ''figure.eps'': convert -quality 100 figure.png EPS2:figure.eps D'un autre côté, la commande ''pdflatex'' ne reconnait pas les fichiers EPS mais seulement ceux du format PDF, JPEG, PNG et peut-être quelques autres. === Références === //LaTeX : A Document Preparation System, Second Edition// by : Leslie Lamport ISBN : 0-201-52983-1, 1994. //The LaTeX Companion// by : Michel Goossens, Frank Mittelbach, Alexander Samarin part of the Tools and Techniques for Computer Typesetting ISBN : 0-201-54199-8, 1994. //The LaTeX Graphics Companion Illustrating documents with TeX and PostScript// by : Michel Goossens, Sebastian Rahtz, Frank Mittelbach part of the Tools and Techniques for Computer Typesetting ISBN : 0-201-85469-4, 1997. ==== Suite bureautique LibreOffice ==== **[[http://www.libreoffice.org|LibreOffice]]** est une suite de bureautique similaire et relativement compatible à Microsoft Office. Elle inclut, entre autres, un traitement de texte, un chiffrier, un logiciel de dessin et un logiciel de présentation. Pour l'instant, seule la version anglaise est installée. Sur les stations Linux du DIRO, LibreOffice est accessible via le menu de KDE sous la rubrique **Office**. Si l'icône n'est pas dans la barre au bas de l'écran ou dans le menu, on peut démarrer la suite avec la commande suivante : libreoffice [nom-de-fichier] où ''[nom-de-fichier]'' est un paramètre optionnel indiquant un document à ouvrir. La suite peut lire plusieurs format de Microsoft (''.doc'', ''.rtf'', ''.xls'', ''.ppt'' parmi d'autres). Il est possible de lancer un module particulier directement en choisissant le choix approprié dans le menu de KDE ou avec la commande appropriée : * Traitement de texte : libreoffice --writer [nom-de-fichier] * Chiffrier : libreoffice --calc [nom-de-fichier] * Dessin : libreoffice --draw [nom-de-fichier] * Présentation : libreoffice --impress [nom-de-fichier] Pour imprimer, assurez vous que le document est en format **US Letter** et que les propriétés de l'imprimante indiquent aussi que le papier est en format **US Letter**. ===== Programmation ===== ==== Java ==== Plusieurs versions sont disponibles. * Pour utiliser la version courante du JDK de Sun, taper la commande : inclure jdk avant d'appeler ''javac'' ou ''java''. * Pour utiliser le JDK 1.1 de Sun, taper plutôt la commande : inclure jdk-1.1 * Pour utiliser la version JDK 1.2 de Sun, taper la commande : inclure jdk-1.2 * Pour utiliser la version [[http://java.sun.com/j2se/1.3/docs/api|JDK 1.3]] de Sun, taper la commande : inclure jdk-1.3 * Pour utiliser la version [[http://java.sun.com/j2se/1.4/docs/api|JDK 1.4]] de Sun, taper la commande : inclure jdk-1.4 * Pour utiliser la version [[http://java.sun.com/j2se/1.5/docs/api|JDK 1.5]] de Sun, taper la commande : inclure jdk-1.5 Cette instruction va ajouter en tête de votre **''PATH''** le chemin vers les commandes de la version désirée du JDK. Vous aurez alors accès au compilateur ''javac'' et aux autres outils du JDK. === Bibliothèque Voyager 2.0.2 de ObjectSpace pour Java === Pour utiliser la bibliothèque Voyager 2.0.2 : inclure voyager-2.0.2 avant d'appeler ''javac''. Les modules sont compatibles avec JDK 1.1. === Bibliothèque JGL Version 3.1.0 de ObjectSpace pour Java === Pour utiliser la bibliothèque JGL 3.1.0 : inclure jgl-3.1.0 avant d'appeler ''javac''. Les modules sont compatibles avec JDK 1.1. Si vous utilisez les extensions de Voyager, consultez aussi la section ci-dessus. ==== Prolog ==== La version du langage Prolog disponible au DIRO est **GNU Prolog**. Pour l'utiliser, taper la commande : gprolog L'aide est disponible dans le répertoire /usr/share/doc/gprolog-docs-1.3.0 . ==== Lisp ==== [[http://www.franz.com/|Allegro]] est un environnement de développement en Lisp. Avant de l'utiliser, tapez la commande : inclure allegrocl Pour lancer la version récente du logiciel, version « //case-insensitive// », tapez : alisp Pour la version « //case-sensitive// », tapez : mlisp ===== Fureteur Web ===== ==== Firefox ==== Firefox est le fureteur Web recommendé au département. Il est possible de le lancer à partir des icones dans la barre d'outils de KDE au bas de l'écran ou à partir du menu de KDE. Sinon, il peut-être lancé avec la commande suivante : firefox & Il y a une règle simple à suivre pour éviter tout problème de profil avec Firefox: utiliser **un et un seul** profil. Dans l'environnement UNIX du DIRO, il n'y a //a priori// rien de particulier à faire pour garantir ceci puisque le profil de Firefox réside dans le compte UNIX de l'usager qui réside sur un serveur central. Malgré tout, il peut arriver de temps à autre qu'au démarrage de Firefox, il demande si l'usager veut créer un nouveau profil ou utiliser un profil existant. Ceci se produit lorsque Firefox ne s'est pas fermé correctement à la dernière exécution ou si une autre instance du logiciel est active sur une autre machine où l'usager est branché. Peu importe la cause, il est **important** de ne pas créer de nouveau profil. Le mieux est de quitter Firefox et, si la situation correspond au deuxième cas, aller fermer l'autre instance. Pour le premier cas (Firefox mal fermé), l'usager doit ouvrir une fenêtre de terminal puis taper : cd .mozilla/firefox ls Dans ce qui sera affiché, il devrait y avoir un répertoire dont le nom commence ou se termine par ''default'' (avant ou après un ''.''), ou sinon //un// répertoire avec un nom plutôt étrange. Soit '''' le nom de ce répertoire, l'usager doit ensuite taper : rm /lock Finalement, l'usager peut relancer Firefox. ===== Calculs numériques et scientifiques ===== ==== Mathematica ==== [[http://www.wolfram.com/|Mathematica]] est un logiciel pour faire du calcul scientifique. Il inclut les fonctionnalités suivantes : * Calculatrice numérique et symbolique * Système de visualisation pour des fonctions et données * Environnement pour l'analyse de données * //etc.// La version 11.3 est disponible. Vous pouvez exécuter Mathematica en mode graphique avec la commande mathematica ou en mode terminal avec la commande math ==== Matlab ==== Matlab ([[http://www.mathworks.com/|MathWorks]]) est un logiciel pour faire du calcul numérique et de la visualisation. Il inclut les fonctionnalités suivantes : * Analyse numérique * Calcul matriciel * Traitement de signal * Graphiques * //etc.// Pour lancer le logiciel Matlab, la commande est matlab Changez de salle d'ordinateurs si vous obtenez le message d'erreur Error: Your computer processor is missing the SSE2 instructions that are required for MATLAB to run correctly. ===== Bases de données ===== ==== Oracle ==== Le logiciel [[http://www.oracle.com/|Oracle]] est uniquement disponible sur le serveur **''oracle.iro.umontreal.ca''** sous Linux pour l'enseignement. Pour utiliser le logiciel, il faut : - d'abord avoir un compte Oracle (nom d'usager et mot de passe); le nom d'usager est le même que pour se brancher sur UNIX, la recette du mot de passe est donné par le professeur ou le démonstrateur. - pour lancer l'interpréteur SQL, taper la commande : sqlplus usager@ORACLEousql+ usager@ORACLE(Recommandée) et taper son mot de passe Oracle. ==== MySQL ==== Plus d'information sur le [[logiciel:mysql|logiciel MySQL]]. ===== Systèmes de gestion de versions ===== ==== Subversion ==== Le logiciel [[http://subversion.apache.org/|Subversion]] est le remplaçant de CVS. Sa gestion est centralisée. === Préparation === == Clé ssh pour l'administration == Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande ssh-keygen -b 1024 -t dsa et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO. == Récupération du répertoire des fichiers de configurations == Dans un terminal, utilisez la commande svn co svn+ssh://svnadmin@subversion/configs Pour importer une copie de travail du répertoire des fichiers de gestion. Ce répertoire contient 3 fichiers: * dav_svn.authz : contient les règles d'accès * dav_svn.passwd : contient les paires usager:motdepasse * repolist : contient les noms des dépôts, un par ligne, et rien d'autre === Gestion === == Ajout d'un utilisateur == Demander à l'utilisateur de créer une paire nomusager:motdepasse avec la commande htpasswd -n -d nomusager et de vous en envoyer le résultat, par exemple comptetest:DxXlx6xXa83w6 Ajouter au fichier dav_svn.passwd et matérialiser ce changement en faisant un commit, i.e. svn commit -m "Ajout usager ..." == Création d'un dépôt == Éditer le fichier repolist et y ajouter, sur une ligne, le nom désiré du dépôt. Ensuite, faire un commit pour matérialiser la création svn commit -m "Ajout du depot ..." Attention: Ce fichier ne doit pas contenir de commentaire ou de ligne blanche. Uniquement une liste des nom des dépôts, un par ligne. == Gestion des règles d'accès aux dépôts == Dans le fichier dav_svn.authz, créer ou modifer les groupes dans la rubrique [groups], i.e. [groups] nomdegroupe1 = usager1,usager2,usager3 nomdegroupe2 = usager2,usager4 Ensuite, ajouter ou modifier une rubrique [nomdedepot:/], par exemple: [nomdedepot:/] @nomdegroupe2 = rw @nomdegroupe1 = r * = Note: pour donner uniquement l'accès en lecture à tous les usagers du dav_svn.passwd, utiliser la règle [nomdedepot:/] * = r Ensuite, matéraliser les règles par un commit svn commit -m "Modification regles acces ..." === Utilisation === == Clonage d'un dépôt == À partir d'un terminal, dans le répertoire où on veut mettre la copie de travail du dépôt svn checkout https://subversion.iro.umontreal.ca/nomdulab/nomdudepot ==== Mercurial ==== Le logiciel [[http://mercurial.selenic.com/|Mercurial (hg)]] utilise une gestion décentralisée. Dans la description qui suit, la variable **$lab** doit être substitué par le nom du laboratoire et la variable **$hgadm** par le nom de l'usager administrateur créé par le DIRO au moment de la création de la zone de dépôts pour le laboratoire (habituellement hg suivi du nom du lab). === Préparation === == Clé ssh pour l'administration == Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande ssh-keygen -b 1024 -t dsa et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO. == Récupération du répertoire des fichiers de configurations == Dans un terminal, utilisez la commande hg clone $hgadm@version.iro.umontreal.ca:hgadmin Pour importer une copie de travail du dépôt des fichiers de gestion hgadmin. Le répertoire a cette structure: * access.conf: contient les règles d'accès. * keys/: répertoire contenant les clés ssh publiques des utilisateurs, organisées en sous-répertoires tenant lieu de groupes. === Gestion === == Ajout d'un utilisateur == Demander à l'usager de vous envoyer [[:logiciel:linux#cle_ssh_pour_l_administration1|une clé publique ssh]]. Ajouter le fichier de la clé dans un sous-répertoire du répertoire keys sous le nom $usager. Dire à hg qu'il y a un nouveau fichier, commettre les changements et les pousser sur le serveur. hg add hg commit -m "ajout usager $usager" hg push == Création de groupes == Utiliser la commande mkdir pour créer un sous-répertoire keys/$groupe et y mettre les clés publiques ssh de ceux qui doivent en faire partie. On peut même créer un arborescence plus profonde (i.e. groupe, sous-groupe, sous-sous-groupe, etc.), si cela est nécessaire. == Groupes prédéfinis == Deux sous-répertoires de keys/ ont des accès prédéfinis sur tous les dépôts (avec une exception pour hgadmin). Il se peut que ces sous-répertoires n'existent pas encore lors du premier clonage de hgadmin, il suffit alors de les créer avec un mkdir si on veut les utiliser. * keys/root/: tous les accès possibles sur tous les dépôts * keys/users/: accès en lecture et écriture sur tous les dépôts excepté hgadmin == Le fichier access.conf == Une description des différentes options du fichier access.conf se trouve [[http://dev.lshift.net/paul/mercurial-server/docbook.html#id3886283|ici]]. Attention: Lorsque le fichier access.conf est modifié, il doit être commit et repoussé sur le serveur. hg commit -m "Modifications configurations..." hg push == Gestion des règles d'accès == Le fichier access.conf contient les règles qui définissent les accès pour les différents dépôts. Chaque règle a la forme accès repo=glob user=glob où * accès est un des types suivants: * init: donne les droits de lire, écrire et créer de nouveaux dépôts * write: donne les droits de lire et écrire * read: donne les droits de lire * deny: refuse tous droits * repo=glob: chemin relatif menant à un ou plusieurs dépôts * user=glob: chemin (à partir de keys) menant à une ou plusieurs clés Les expressions glob pour les chemins utilisent * pour représenter un ou plusieurs caractères excluant le /, et %%**%% pour représenter un ou plusieurs caractères incluant le /. Donc, par exemple, repo=labs/* attrape les dépôts labs/aaaa et labs/bbbb mais pas labs/cccc/dddd, alors que repo=labs/%%**%% les attrape tous. Par exemple, les trois règles pour les groupes prédéfinis sont init user=root/** deny repo=hgadmin write user=users/** Comme il n'y a aucune condition repo=... dans les règles 1 et 3, elles s'appliquent à tous les dépôts, et de même l'absence de condition user=... dans la 2 fait qu'elle s'applique à tous les utilisateurs. == Création de dépôts == Si un utilisateur est dans le groupe root ou s'il possède le droit init sur un répertoire de dépôt, alors il peut pousser un nouveau dépôt (vide ou non). Si le dépôt n'existe pas encore hg init $nom_repo Puis le pousser (à la racine des dépôts, par exemple) hg clone $nom_repo $hgadm@version.iro.umontreal.ca/$nom_repo === Utilisation === == Clonage d'un dépôt == hg clone $hgadm@version.iro.umontreal.ca:$nom_repo ==== Git ==== Le logiciel [[http://git-scm.com/|Git]] utilise une gestion décentralisée. Au cours de ce document, **$lab** doit être substitué par le nom du laboratoire et **$gitadmin** par le nom de l'usager administrateur créé par le DIRO au moment de la création de la zone de dépôts pour le laboratoire (habituellement git suivi du nom du lab). === Préparation === == Clé ssh pour l'administration == Faire parvenir votre clé ssh publique pour vous donner l'accès aux fichiers de gestions des dépôts de votre laboratoire. Si vous n'en avez pas déjà une, dans un terminal, utliser la commande ssh-keygen -b 1024 -t dsa et faite retour de chariot aussi souvent que nécessaire pour accepter toute les réponses par défaut. Ensuite, envoyez le fichier .ssh/id_dsa.pub au DIRO. == Récupération du répertoire des fichiers de configurations == Dans un terminal, utilisez la commande git clone $gitadmin@version.iro.umontreal.ca:gitolite-admin.git pour importer une copie de travail du répertoire des fichiers de gestion. Le répertoire a cette structure: * conf/gitolite.conf: contient les groupes d'utilisateurs et les règles d'accès. * keydir/: répertoire contenant les clés ssh publiques des utilisateurs. === Gestion === == Ajout d'un utilisateur == Demander à l'usager de vous envoyer [[logiciel:linux#cle_ssh_pour_l_administration2|une clé publique ssh]]. Ajouter le fichier de la clé dans le répertoire keydir sous le nom $usager.pub. Dire à git qu'il y a un nouveau fichier, commettre les changements et les pousser sur le serveur. git add keydir git commit -m "ajout usager $usager" git push origin master == Le fichier conf/gitolite.conf == La description complète du fichier conf/gitolite.conf se trouve [[http://sitaramc.github.com/gitolite/doc/gitolite.conf.html|ici]]. **Attention:** Lorsque le fichier conf/gitolite.conf est modifié, il doit être commit et repoussé sur le serveur. git add conf/gitolite.conf git commit -m "Modifications configurations..." git push origin master == Gestion des groupes d'utilisateurs == Ajouter, dand le fichier conf/gitolite.conf, des lignes comme celle-ci: @groupe1 = $usager1 $usager2 ... == Gestion des règles d'accès et création de dépôts == Pour chaque dépôt, il doit exister dans le conf/gitolite.conf un bloc repo $nom_repo RW+= @admin RW = @contrib $usager5 ... R = @all où les permissions sont R (read), W (write) et + (rewind, i.e. non-fast forward push). Le groupe @all est un groupe spécial qui inclut automatiquement tous les usagers dont la clé est valide. On peut donner des permissions spécifiques à une branches en la nommant, i.e. RW branch$ = @groupe.. Lors du push, tous les dépôts nommés dans le fichier seront créés s'ils n'existent pas encore. === Utilisation === == Clonage d'un dépôt == git clone $gitadmin@version.iro.umontreal.ca:$reponame.git ===== Logiciels disponibles au DIRO ===== Plusieurs logiciels du domaine public et commerciaux sont disponibles sur les stations du département. Voici une liste des principaux logiciels utilisés au DIRO sur les stations Linux : ^ Logiciel ^ Description ^ | **[[http://aspell.net/|aspell]]** | Correcteur orthographique. Usage (pour le français et de l'aide): aspell --lang fr [fichier] aspell --help | | **[[:labs:grappe|cluster]]** | Réservation de machines parallèles | | **[[http://www.ilog.com/products/cplex/|cplex]]** | Outil de programmation linéaire CPLEX. Pour l'utiliser le logiciel CPLEX, il faut taper les commandes (environnement de recherche seulement) : cplex (pour lancer le logiciel) | | **[[http://www.gnu.org/software/ddd/|ddd]]** | Débogueur | | **[[http://www.eclipse.org/|eclipse]]** | Éditeur et environnement de développement Java.| | **[[http://www.gnu.org/software/emacs/|emacs]]** | Éditeur et environnement de programmation | | **[[:logiciel:linux#firefox|Firefox]]** | Fureteur pour le Web | | **gcc** | Collection de compilateurs [[http://gcc.gnu.org|GNU GCC]] | | **[[http://sources.redhat.com/gdb/|gdb]]** | Débogueur | | **[[http://www.gimp.org/|gimp]]** | Manipulation d'images et conversion de formats | | **[[http://www.gnu.org/software/gv/|gv]]** | Visualisateur PostScript sous X11 | | **[[https://www.jetbrains.com/idea/|IntelliJIDEA]]** | Éditeur et environnement de développement Java.| | **[[:logiciel:linux#java|Java]]** | Java Development Kit (''javac'', ''java'') | | **[[:logiciel:linux#latex|LaTeX]]** | Système de préparation de documents (//i.e.// traitement de texte) | | **[[:logiciel:linux#suite_bureautique_libreoffice|LibreOffice]]** | Suite de bureautique | | **[[:logiciel:linux#lisp|Lisp]]** | Environnement de développement Allegro Common Lisp | | **[[:logiciel:linux#mathematica|Mathematica]]** | Calculs scientifiques | | **[[:logiciel:linux#matlab|Matlab]]** | Calculs numériques | | **[[:labs:grappe|Myrinet]]** | Réservation de machines parallèles | | **[[:logiciel:mysql|MySQL]]** | Base de données relationnelle | | **[[:logiciel:linux#oracle|Oracle]]** | Gestionnaire de bases de données | | **[[http://www.perl.com/|Perl]]** | Langage Perl | | **[[:logiciel:php|PHP]]** | Langage PHP | | **[[:compte:courriel#filtrage_cote_serveur|procmail]]** | Filtre pour le courrier électronique | | **[[:logiciel:linux#prolog|Prolog]]** | Langage de programmation Prolog | | **[[:compte:courriel#avis_d_absence_automatique|vacation]]** | Avis d'absence automatique -- courriel | | **Virus Scan** | Logiciel antivirus (''man clamscan'') | | **[[http://www.xfig.org/|xfig]]** | Logiciel de dessin vectoriel sous X11 | ===== Logithèque ===== La [[:logiciel:logitheque|Logithèque]] de l'université offre aussi quelques rares logiciels pour Linux.