“모듈로드”명령이 작동하지 않습니다


12

다음 명령을 사용하여 "Global Climate Model"을 컴파일하려고합니다.

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

내가 그들을 실행하면 터미널은로 응답합니다 command not found.

내가 뭘 잘못하고 있죠? 이것을하는 올바른 방법은 무엇입니까?


"글로벌 기후 모델"이 무엇인지 설명 할 수 있습니까? 그 지시 사항은 어디서 얻습니까?
Oli

1
나는 의견이 회신을 넣어 가지고 있지만 할 수 없습니다 때문에 부족한 명성 :( 그 표시에 environment-modules12.04에서 사용할 수 없지만 12.10에서 위쪽에 < packages.ubuntu.com/search?keywords=environment-modules >
tssch

답변:


25

이전 의견과 답변 을 요약 하고 약간의 직접 설치 경험을 추가하십시오.

환경 모듈 패키지 module에서 제공 하는 명령을 찾고 있습니다. 쉘 환경 (PATH 및 별명 등)을 수정하기위한 도구이며 고성능 컴퓨팅 클러스터와 같은 많은 다중 사용자 클러스터에 공통입니다.

전 세계 기후 모델을 실행하려는 경우 일부 HPC 클러스터에서 얻은 지침 일 수 있습니다. 읽기 HPC에 환경 모듈에 대한 자세한 여기.

실제로 우분투 관련 문제 : 우분투에서 환경 모듈을 설정하는 것은 그리 큰 어려움이 아닙니다. 우분투 14.10과 Bash 쉘의 경우 10 분 안에 완료했습니다.

다른 게시물에서 언급했듯이 repos (package 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예 : with) module use /path/to/your/modulefiles. 인터 웹 에는 모듈 파일에 대한 예제 가 있습니다 .

다중 사용자 클러스터뿐만 아니라 매우 편리한 도구입니다. 다른 파이썬 배포판 사이를 전환하는 데 사용합니다.


1
나는 이것이 질문에 대한 대답으로 받아 들여 져야한다고 생각한다
credondo

예를 들어 모듈 파일 링크가 죽었
muenalan


1
모든 사용자의 실행을 요구 /usr/share/modules/bin/add.modules하는 것은 불편한 것 같습니다. /etc/bash.bashrc 파일의 시작 부분에 ". /etc/profile.d/modules.sh"를 추가했습니다. 이는 사용자가 bash를 로그인 쉘로 사용하는 경우에 대한 해결책 일 수 있습니다. 이것은 GUI 로그인에만 필요했습니다. 변경 전에 SSH 로그인이 이미 작동했습니다. 어떻게 생각하십니까, 이것이 좋은 해결책입니까 아니면 다른 것을 추천합니까?
Erik Sjölund

환경 모듈 패키지가 역사적으로 '모듈'기능을 쉘로 가져 오기 위해 메소드를 변경 했음을 알 수 있습니다 . 이전 Red Hat 시스템에서는 /etc/profile.d/modules.sh모듈 기능을 제공하기 위해 소스를 제공해야합니다 (사용 rpm -ql environment-modules가능한 파일을 이해하는 데 사용됨 ). 우분투에서는 dpkg-query -S /usr/share/modules패키지가 제공하는 것을 이해하는 데 도움이됩니다.
qneill

6

"탈지"하는 사람들 (셋을보고) : 이것은 커널 모듈에 대한 질문이 아닙니다. ENIRONMENT-MODULES라는 도구를 사용하여 쉘 환경 변수를 조작하는 것에 대한 질문입니다. 커널 모듈에 익숙하다면 "module"이라는 표준 커널 도구 (스크립트 또는 기타)가 없다는 것을 알게 될 것입니다. 모든 모듈 조작 도구는 모듈을 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 파일보기 등의 옵션이 있습니다. 세 가지 중 소스에서 설치합니다. deb 파일은 12.04LTS에서 사용할 수없는 동일한 문제점에있는 libtcl8.6에 따라 다릅니다.


4

컴퓨터에 설치되지 않은 소프트웨어 패키지를 사용하려고했을 것입니다. 물론 확실하지는 않지만 환경 모듈 을 사용하려고하는 것 같습니다 . 이것이 맞다면 표준 Ubuntu 저장소에서 환경 모듈을 설치할 수 있습니다.

그러나 환경 모듈은 다소 오래된 프로그램입니다. 홈페이지는 2011 년 현재 헬퍼 툴의 마지막 업데이트에 대해 설명하고 있으며, 저작권 공지가 1999 년 이후로 올라가지 않습니다. 따라서이 소프트웨어 패키지가 현재 우분투 버전에서 완벽하게 작동한다는 보장은 없습니다. 그럴 수도 있지만 확신 할 수는 없습니다.


2
설정하는 데 큰 어려움이 있지만 매우 효과적이며 다중 사용자 클러스터의 사실상 표준입니다.
Emmet

0

그것은의 경우 아니에요 module load하지 작업 , module load우분투의 표준 명령이 아닙니다.

기존 모듈을로드하려는 경우 sudo modprobe <modulename>원하는 명령입니다. 모듈을 사용 rmmod하거나 modprobe -r언로드 할 수 있습니다 .


Oli 전 세계 기후 모델 "ECHAM6"사용자 안내서에서이 지침을 받고 있습니다. 위에서 언급 한 '모듈로드'행은 터미널에서 컴파일러를로드하기위한 매뉴얼에 언급되어 있습니다 ...
uzair mannan

4
그는 커널 모듈을로드 하지 않는 다른 컴파일러, MPI 구현 등에 대한 환경 변수를 관리하는 환경 모듈 프로그램 (일반적으로 클러스터에 설치됨)을 사용하려고 합니다.
Emmet

실제로 존재합니다, 우리 회사에서 매일 사용합니다 : P
Bruno Pereira

modulevirtualenv가 python과 마찬가지로 도구 및 libs 버전을 다른 버전으로 변경하는 데 사용되는 도구이지만 다른 설정을 반영하기 위해 경로 및 변수를 변경합니다. 예를 들면 다음과 같습니다. gcc-4.7로드 4.7 등로드
Bruno Pereira

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.