Команда “load load” не працює


12

Я намагаюся скласти "Глобальну модель клімату" з наступними командами.

module unload pgi gcc
module load gcc/4.6.3 pgi/11.8

Коли я їх виконую, термінал відповідає на command not found.

Що я роблю неправильно? Який правильний спосіб це зробити?


Чи можете ви пояснити, що таке "глобальна модель клімату"? Де ви отримуєте ці вказівки?
— Олі

1
Я б назвав це відповідь в коментарях , але не може з - за репутацією не вистачає :( Це здається , що environment-modulesнемає в наявності в 12.04, а з 12.10 на вгору: < packages.ubuntu.com/search?keywords=environment-modules >
— tssch

Відповіді:


25

Просто узагальнити попередні коментарі та відповіді та додати трохи досвіду встановлення з перших рук :

Ви шукаєте moduleкоманду, надану пакетом Модулі навколишнього середовища . Це інструмент для зміни середовища оболонки (PATH, але також псевдоніми тощо) і спільний для багатьох багатокористувацьких кластерів, таких як високопродуктивні обчислювальні кластери.

Інструкції, які ви отримали, ймовірно, були з якогось кластера HPC, оскільки ви хочете запустити глобальну модель клімату. Детальніше про модулі навколишнього середовища на HPC читайте тут.

Тепер для чогось насправді пов'язаного з Ubuntu : Насправді не так сильно створювати модулі навколишнього середовища під Ubuntu. Я щойно зробив це за 10 хвилин для Ubuntu 14.10 та оболонки Bash.

Як вже згадувалося в інших публікаціях, ви можете встановити модулі середовища з репозиції (пакету environment-modules).

Тоді ти біжиш add.modules. Він додасть кілька рядків у ваш файл ініталізації оболонки, у цьому випадку ~/.bashrc:

case "$0" in
          -sh|sh|*/sh)  modules_shell=sh ;;
       -ksh|ksh|*/ksh)  modules_shell=ksh ;;
       -zsh|zsh|*/zsh)  modules_shell=zsh ;;
    -bash|bash|*/bash)  modules_shell=bash ;;
esac
module() { eval `/usr/Modules/$MODULE_VERSION/bin/modulecmd $modules_shell $*`; }
#module() { eval `/usr/bin/modulecmd $modules_shell $*`; }

Потрібно відмітити останній рядок і прокоментувати або видалити другий останній. Цей рядок визначає moduleкоманду, яку ви шукали. Він фактично працює modulecmd bashплюс аргументи, які ви їм надаєте.

У мене таке відчуття, що ця функція насправді не дуже безпечна, оскільки вона оцінює все, що ви їй надаєте, в своїх аргументах. Деякі користувачі можуть, можливо, прокоментувати, як це покращити.

Тепер вам просто потрібно створити деякий каталог, що містить так звані, modulefilesі додати його $MODULEPATH, наприклад, до module use /path/to/your/modulefiles. Існують приклади для модульних файлів там, на інтервеї .

Я вважаю це дуже зручним інструментом не лише для багатокористувацьких кластерів. Я використовую його для перемикання між різними дистрибутивами Python.


1
Я думаю, що це має бути прийнята відповідь на питання
— credondo

Приклад файлів модульних посилань помер
— muenalan


1
Вимагати від кожного користувача запуску /usr/share/modules/bin/add.modulesздається незручним. Я додав ". /Etc/profile.d/modules.sh" на початок файлу /etc/bash.bashrc Це може бути рішенням для користувачів, які мають bash в якості оболонки для входу. Зауважте, це було потрібно лише для входу в графічний інтерфейс. SSH-логін вже працював до зміни. Як ви думаєте, це хороше рішення чи ви рекомендуєте щось інше?
— Ерік Шьолунд

Я бачу, що пакет середовищних модулів історично змінив метод, щоб отримати функцію "модулів" у вашу оболонку. У старій системі Red Hat існує /etc/profile.d/modules.shте, що я повинен подати джерело, щоб забезпечити функцію модулів (я rpm -ql environment-modulesрозумів, які файли доступні). Для Ubuntu це було б dpkg-query -S /usr/share/modules- це просто допоможе вам зрозуміти, що надає пакет.
— qneill

6

Для тих, хто "скупиться" (дивлячись на тебе Сет): Це НЕ ПИТАННЯ ПРО МОДУЛИ КЕРНЕЛЬ. Це питання про маніпулювання змінними середовища оболонки за допомогою інструменту під назвою ENIRONMENT-MODULES. Якщо ви взагалі знайомі з модулями ядра, ви зрозумієте, що не існує стандартного інструменту ядра (сценарію чи іншого способу), який називається "модуль". Усі інструменти для управління модулем скорочують модуль як mod (lsmod, insmod, modprobe тощо). І немає модуля з іменем gcc.

Середовище-модулі ( http://modules.sourceforge.net/ ) - ще один інструмент середовища для перемикання середовищ виконання в оболонці. Він допомагає людям, яким потрібні Python 2.4 та Python 2.7 на одній машині. Або це допомагає людям керувати компіляторами та бібліотеками Intel v. GNU.

На жаль, середовище-модулі не є пакетом для Ubuntu 12.04 LTS.

Опції включають встановлення з джерела (перейдіть за посиланням вище), оновлення до 14,04 LTS або перегляд файлів deb. З трьох я встановив би з джерела. Файл дебюту залежить від libtcl8.6, який знаходиться в тому ж складному становищі, недоступний 12.04LTS.


4

Ви, ймовірно, намагаєтесь використовувати програмний пакет, який не встановлений на вашій машині. Звичайно, я не можу бути впевнений, але я здогадуюсь, що ви намагаєтесь використовувати екологічні модулі . Якщо це правильно, ви можете встановити модулі оточення з стандартних сховищ Ubuntu.

Але майте на увазі, що середовище-модулі - це досить стара програма. На домашній сторінці відмічено останнє оновлення допоміжного інструменту станом на 2011 рік, повідомлення про захист авторських прав не надходить далі за 1999 рік. Тому немає гарантії, що цей програмний пакет працює бездоганно з поточними версіями Ubuntu. Це може бути, але ви не можете бути впевнені.


2
Налаштувати величезний біль, але він працює надзвичайно добре і фактично є стандартом для багатокористувацьких кластерів.
— Еммет

0

Це module loadне спрацює , module loadне стандартна команда в Ubuntu.

Якщо ви намагаєтеся завантажити існуючий модуль, sudo modprobe <modulename>це команда, яку ви шукаєте. І ви можете використовувати rmmodабо modprobe -rвивантажувати модуль.


Oli Я отримую ці вказівки від посібника користувача із глобальної моделі клімату "ECHAM6". Вищезазначені рядки "завантаження модуля" згадуються в посібнику для завантаження компілятора з терміналу ...
— uzair mannan

4
Він намагається використовувати програму модулів середовища (як правило, встановлену на кластерах), яка управляє змінними середовища для різних компіляторів, реалізацій MPI тощо, не завантажуючи модулі ядра.
— Еммет

він насправді існує, ми використовуємо його щодня в нашій компанії: P
— Бруно Перейра

moduleце інструмент, що використовується для зміни версії інструменту та libs з однієї на іншу, подібно virtualenv до python, але замість цього він змінює ваші шляхи та змінні для відображення інших налаштувань, наприклад: завантаження модуля gcc-4.8 завантажить gcc-4.8, модуль load gcc-4.7 буде завантажувати 4.7, тощо
— Бруно Перейра

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.