J'essaie de compiler le "Global Climate Model" avec les commandes suivantes.
module unload pgi gcc
module load gcc/4.6.3 pgi/11.8
Lorsque je les exécute, le terminal répond par command not found
.
Qu'est-ce que je fais mal? Quel est le bon moyen de le faire?
environment-modules
ne soit pas disponible dans 12.04, mais à partir de 12.10: < packages.ubuntu.com/search?keywords=environment-modules >Réponses:
Juste pour résumer les commentaires et réponses précédents et ajouter un peu d' expérience d'installation de première main :
Vous recherchez la
module
commande fournie par le package des modules d'environnement . Il s'agit d'un outil de modification de l'environnement shell (PATH mais aussi des alias etc.) et commun à de nombreux clusters multi-utilisateurs comme les clusters de calcul haute performance.Les instructions que vous avez obtenues provenaient probablement d'un cluster HPC, car vous souhaitez exécuter un modèle climatique mondial. En savoir plus sur les modules d'environnement sur HPC ici.
Maintenant, pour quelque chose de réellement lié à Ubuntu : ce n'est vraiment pas si difficile de configurer des modules d'environnement sous Ubuntu. Je viens de le faire en moins de 10 minutes pour Ubuntu 14.10 et le shell Bash.
Comme mentionné dans d'autres articles, vous pouvez installer des modules d'environnement à partir du repos (package
environment-modules
).Alors tu cours
add.modules
. Il mettra quelques lignes dans votre fichier d'initialisation du shell, dans ce cas~/.bashrc
:Vous devez supprimer le commentaire de la dernière ligne et commenter ou supprimer l'avant-dernier. Cette ligne définit la
module
commande que vous cherchiez. Il s'exécute efficacementmodulecmd bash
ainsi que les arguments que vous lui donnez.J'ai le sentiment que cette fonction n'est en fait pas très sûre car elle évalue tout ce que vous lui fournissez dans ses arguments. Certains utilisateurs peuvent peut-être commenter comment améliorer cela.
Il vous suffit maintenant de créer un répertoire contenant le soi-disant
modulefiles
et l' ajouter à$MODULEPATH
, par exemple avecmodule use /path/to/your/modulefiles
. Il y a des exemples pour modulefiles là - bas sur les interwebs.Je trouve cela un outil très pratique et pas seulement pour les clusters multi-utilisateurs. Je l'utilise pour la commutation entre les différentes distributions de python.
la source
/usr/share/modules/bin/add.modules
semble incommode. J'ai ajouté ". /Etc/profile.d/modules.sh" au début du fichier /etc/bash.bashrc Cela pourrait être une solution pour les utilisateurs ayant bash comme shell de connexion. Notez que cela n'était nécessaire que pour la connexion à l'interface graphique. La connexion SSH fonctionnait déjà avant le changement. Que pensez-vous, est-ce une bonne solution ou recommandez-vous autre chose?/etc/profile.d/modules.sh
que je source pour fournir la fonction des modules (j'avais l'habituderpm -ql environment-modules
de comprendre quels fichiers étaient disponibles). Sur Ubuntu, ce seraitdpkg-query -S /usr/share/modules
- cela vous aidera simplement à comprendre ce que le paquet fournit.Pour ceux qui "survolent" (en vous regardant Seth): Ce n'est PAS UNE QUESTION SUR LES MODULES KERNEL. Il s'agit de manipuler des variables d'environnement shell à l'aide d'un outil appelé ENIRONMENT-MODULES. Si vous êtes familier avec les modules du noyau, vous vous rendrez compte qu'il n'y a pas d'outil standard du noyau (script ou autre) nommé "module". Tous les outils de manipulation de modules abrègent le module en mod (lsmod, insmod, modprobe, etc.). Et il n'y a pas de module nommé gcc.
Les modules d'environnement ( http://modules.sourceforge.net/ ) sont encore un autre outil d'environnement pour changer les environnements d'exécution dans le shell. Il aide les personnes qui ont besoin de Python 2.4 et Python 2.7 sur la même machine. Ou il aide les gens à gérer les compilateurs et les bibliothèques Intel v. GNU.
Malheureusement, les modules d'environnement ne sont pas un package pour Ubuntu 12.04 LTS.
Les options incluent l'installation à partir de la source (suivez le lien ci-dessus), la mise à niveau vers 14.04 LTS ou la recherche de fichiers deb. Des trois, j'installerais depuis la source. Le fichier deb dépend de libtcl8.6 qui est dans la même situation, non disponible sur 12.04LTS.
la source
Vous essayez probablement d'utiliser un progiciel qui n'est pas installé sur votre machine. Bien sûr, je ne peux pas vraiment être sûr, mais je suppose que vous essayez d'utiliser des modules d'environnement . Si cela est correct, vous pouvez installer des modules d'environnement à partir des référentiels Ubuntu standard.
Mais sachez que les modules d'environnement sont un programme assez ancien. La page d'accueil note la dernière mise à jour d'un outil d'aide à partir de 2011, l'avis de droit d'auteur ne va pas plus loin que 1999. Il n'y a donc aucune garantie que ce progiciel fonctionne parfaitement avec les versions actuelles d'Ubuntu. C'est possible, mais vous ne pouvez pas en être sûr.
la source
Il ne s'agit
module load
pas de ne pas fonctionner , cemodule load
n'est pas une commande standard dans Ubuntu.Si vous essayez de charger un module existant,
sudo modprobe <modulename>
c'est la commande que vous recherchez. Et vous pouvez utiliserrmmod
oumodprobe -r
décharger un module.la source
module
est un outil utilisé pour changer la version de l'outil et des bibliothèques de l'un à l'autre, un peu comme virtualenv pour python, mais à la place il change vos chemins et variables pour refléter d'autres configurations, par exemple: module load gcc-4.8 will load gcc-4.8, module charger gcc-4.7 chargera 4.7, etcajoutez simplement ceci à la première ligne de votre script. Ensuite, la commande du module sera lue par
tsch
.la source