Gaussian and GaussView Deployment and Troubleshooting: Licensing, Least Privilege, Scratch, and Cluster Jobs

The 2014 source recorded one person's experience configuring Gaussian 03, Gaussian 09, and GaussView on Ubuntu 14.04. It enables the root password, runs calculations as root, disables ASLR, and applies broad recursive permission changes. This maintained guide rejects those practices. They remain only in the inert, verbatim historical archive at the end.

Gaussian and GaussView are licensed software. This guide assumes that the organization or user already has authorized vendor or institutional media; it provides no mirror, license bypass, or media-copying method. Installation commands, platform eligibility, and license scope must come from documentation that matches the exact product, version, revision, and media in hand. When public evidence is insufficient, ask the license administrator, cluster administrator, or Gaussian Technical Support instead of guessing.

Security boundary: Do not enable the root password, routinely run Gaussian/GaussView as root, disable ASLR, use chmod -R 777, apply blind recursive chmod/chown, or expose the program tree globally to unlicensed users. Resolve the precise path, owner, and group, then have an administrator make one documented, reversible, minimal correction.

1. Build the version, license, and platform matrix first

Record this evidence before deployment; do not infer a version from a filename:

LayerWhat must be confirmedAuthority
Product and licenseGaussian or GaussView, version, revision, binary/source media, machine/site scope, authorized usersPurchasing records, signed license, institutional license administrator
MediaVendor/institutional origin, media label, delivery inventory, and any checksum supplied by the vendor or institutionAuthorized media and its accompanying files; ask the supplier if no checksum is supplied
PlatformCPU architecture, exact OS/patch level, required libraries, parallel/GPU componentsThe media's platform_rev.pdf and matching installation manual; then compare the public G16 platform list
Execution environmentLocal host, workstation, or scheduled cluster; CPU, memory, scratch, filesystem, and job limitsInstitutional administrator and scheduler documentation
Graphical interfaceGaussView version and license, supported desktop platform, and whether Gaussian runs elsewhereGaussView 6 supported computers and institutional desktop policy

Collect baseline information; remove host names, internal paths, and license identifiers before sharing it:

uname -m
cat /etc/os-release
id
umask

Ubuntu 14.04 left standard maintenance in 2019 and regular Ubuntu Pro coverage in 2024; the Ubuntu lifecycle currently lists a time-limited Legacy add-on separately. It is not a current general deployment baseline. The public Gaussian 16 platform document lists specific systems by revision. A “newer Ubuntu” is not automatically vendor-supported either. If the actual platform is not explicitly listed, obtain vendor or institutional confirmation rather than forcing execution by weakening security.

2. Plan a license-first installation and rollback

Before installation, create a change record containing the authorizer, exact media/revision, target host, installation parent, licensed group, maintenance window, space budget, old-version backup, and rollback route. Back up scripts, modulefiles, site configuration, and retained job data. Back up media or the program tree only when the license permits, and restrict access to those backups.

An administrator should install from the matching vendor manual. Gaussian's public G16 UNIX binary installation instructions require checking the platform file, selecting a licensed group, and using the media's installer. That document applies to a G16 UNIX binary; it is not a universal recipe for g03, g09, source editions, or other revisions. GaussView has separate UNIX installation instructions; do not mechanically reuse Gaussian directories or variables for the GUI.

The administrator should inventory the exact target read-only before making the manual's bounded changes. Never recurse through an unresolved symlink, shared /opt tree, or home directory. After installation, a dedicated administrative/service owner and licensed group should control the tree. Ordinary users need only the read/execute access required to run it, not write access. Inspect the path chain and top level with:

stat -c '%A %U %G %n' "$g16root" "$g16root/g16"
namei -l "$g16root/g16"
find "$g16root/g16" -maxdepth 1 -printf '%M %u %g %pn'

If namei is unavailable, retain the stat and depth-limited find evidence. Sanitize internal paths before attaching output to a ticket. If permissions are wrong, stop and have an administrator repair the specific object against the licensed group and vendor manual. Do not copy numeric permissions from a web post or make the entire tree world-readable to silence an error.

3. Load the environment through modules or a user profile, not root

On a multi-user server, prefer an administrator-provided, versioned module such as gaussian/16-c02, so old and new versions can coexist and roll back. If the site provides Environment Modules or Lmod, a user can inspect and load it in the current shell:

module avail gaussian
GAUSSIAN_MODULE="site-approved/version"
module show "$GAUSSIAN_MODULE"
module load "$GAUSSIAN_MODULE"
module list
type -a g16

The root, initialization script, and dependencies shown by module show must match the authorized revision. Module syntax and scheduler integration are site configuration; this guide does not offer a universal copy-and-paste modulefile.

If the administrator requires a per-user shell profile, the following shows only the variable shape in the current public G16 UNIX binary manual. The paths are deliberately nonfunctional placeholders: replace them with institution-approved locations only after checking the matching media manual.

export g16root="/path/from-authorized-media"
export GAUSS_SCRDIR="/path/to/user-owned-scratch"
. "$g16root/g16/bsd/g16.profile"

Do not put this in /root/.bashrc or use su - to inherit it. g03, g09, other shells, source builds, and GaussView can use different scripts; consult their manuals. Back up a personal profile before editing, test in a new login shell, and keep every addition independently reversible.

4. Scratch must be private, writable, and observable

The Gaussian running documentation says GAUSS_SCRDIR selects scratch storage and abnormal termination can leave files behind. Administrators should provision a correctly owned per-user or per-job directory that other ordinary users cannot read. Scheduler-provided per-job local scratch is often preferable to a shared program tree, but its lifecycle and cleanup rules come from site policy.

Verify it read-only before submission:

printf '%sn' "$GAUSS_SCRDIR"
test -d "$GAUSS_SCRDIR"
test -O "$GAUSS_SCRDIR"
test -w "$GAUSS_SCRDIR"
df -h "$GAUSS_SCRDIR"
df -i "$GAUSS_SCRDIR"

If a test fails, space/inodes are inadequate, quota is unknown, or the path is on a filesystem removed with the job, stop and ask the administrator. Do not create root-owned scratch for an ordinary-user process or make it world-writable. Before cleanup, prove no job is active and bound the target by job ID/owner; never unconditionally empty shared scratch at boot.

5. Match Gaussian requests to scheduler allocations

Gaussian %NProcShared, %Mem, and %Chk directives describe the job; they do not acquire scheduler resources. The Link 0 documentation defines them, while the scheduler controls actual CPUs, memory, GPUs, nodes, and wall time.

This is a hypothetical header for discussion, not a recommended size:

%NProcShared=4
%Mem=8GB
%Chk=job.chk
  • %NProcShared must not exceed CPUs actually allocated to this process; the login node's total core count is not an allocation.
  • %Mem must fit the Gaussian method, physical memory, scheduler limit, and overhead from other processes. Asking beyond available memory can degrade performance or trigger scheduler termination.
  • Linda, GPU, and multi-node execution require the right license, matching revision, and site support; adding Link 0 directives alone is not enablement.
  • Load the module and launch through an approved scheduler script. Do not leave long jobs in the login-node background or use sudo.

Within an allocation, use the invocation documented by the matching manual or site template. A common standard-input/output shape is:

g16 < job.com > job.log

Keep the scheduler job ID, requested resources, module list, input revision, and output log. A normal-termination string is one item of evidence; also check scheduler exit state, wall-time/memory accounting, expected artifacts, and scientific validity.

6. Treat checkpoint paths as workflow contracts

Do not carry a Windows drive-letter path into a Linux job. Relative %Chk=job.chk avoids embedding a machine-specific absolute directory, but it is relative to the job's working directory, so the script must deliberately cd into durable project storage. Do not keep the only required checkpoint in scheduler-cleaned scratch.

After the job has stopped writing, copy or archive a checkpoint and record its digest:

sha256sum job.chk

After moving it, update %Chk/%OldChk relationships and perform a small read test. A binary checkpoint's compatibility across Gaussian revisions, platforms, or byte orders cannot be inferred from its name; follow the licensed manual or a support answer. Inputs, structures, results, and checkpoints may contain unpublished research, so backups and tickets must follow the project's data classification.

7. Separate GaussView from compute-node boundaries

GaussView is a separately licensed GUI. The GaussView 6 page and help manual describe input creation, calculation launch, and output analysis, but they do not imply that every compute node offers a supported desktop session.

Confirm the supported desktop platform, display session, and institutional remote-graphics policy:

printf '%sn' "${DISPLAY:-unset}"
printf '%sn' "${XDG_SESSION_TYPE:-unset}"

If the display is unset, Wayland/X11 is mismatched, or remote display is restricted, do not launch as root, use xhost +, or expose an unauthenticated X server. Run GaussView on a supported workstation and Gaussian on the cluster, then transfer only the necessary results under the vendor's different-machine visualization guidance. Transport, permissions, and version compatibility still follow institutional policy.

8. Evidence-first troubleshooting matrix

SymptomEvidence firstSafe boundary
g16: command not foundmodule list, module show, type -a g16, exact revisionCorrect the current user's module/profile; do not switch to root or edit /root/.bashrc
Permission deniedid, stat, namei; identify the ancestor directory, file, or scratch that failsAdministrator repairs one known object and licensed group; no recursive chmod/chown
Scratch write, extend, or space errorGAUSS_SCRDIR, owner, writability, df -h, df -i, quota, scheduler cleanupPreserve logs and stop new jobs; do not attribute every segmentation fault to space
Thread count exceeds CPUsActual scheduler allocation versus %NProcSharedReduce Gaussian request or request new resources; do not oversubscribe the allocation
Segmentation faultFull log context, product/revision, platform matrix, CPU/libraries, minimal reproducerDo not disable ASLR; open a vendor case if the supported matrix does not explain it
“directory is world accessible”Owner, group, and other bits on the tree and ancestorsApply a bounded licensed-group fix; never change it to 777 or blanket 755
Checkpoint cannot openWorking directory, POSIX path, owner, integrity, producing versionDo not simply strip a drive letter or guess a path; preserve the original and test a copy
GaussView has no display or crashesSupported platform, version, DISPLAY/session type, remote method, GUI logsDo not bypass with root; use institutional desktop support or the vendor remote route

The Linux kernel `randomize_va_space` documentation identifies it as address-space randomization control. The source's global ASLR disablement as a Gaussian crash fix is not an acceptable diagnostic shortcut. If an authorized revision still crashes on a listed supported platform, preserve a minimal reproducer and logs for the vendor instead of weakening the entire host.

9. Logs, updates, backups, and upgrade rollback

A support case should include product and exact revision, media type, platform-list entry, OS/CPU, loaded module, scheduler resources, scratch filesystem, a minimally sanitized reproducer, output tail, and context before the error. Do not upload license files, media, a complete unpublished structure, user/internal paths, or another user's data.

Install a new revision in a new versioned directory and module name. Run vendor- or institution-approved tests under the same scheduler resources, then perform a scientific regression; do not overwrite the working version. Retain the old module, job scripts, required checkpoints, and configuration until results, performance, GUI interoperability, and rollback tests pass. Confirm license and record-retention obligations before removing old media.

Stop and escalate if license scope or media origin is unclear; platform/revision is not listed; persistent root execution or disabled ASLR/security is requested; the tree must be exposed to unlicensed users; scratch is an unknown shared directory; scheduler allocation cannot match the input; the checkpoint is the only copy; or the issue cannot be explained with a sanitized minimal reproducer. Use the institutional license/cluster administrators and Gaussian's contact-support page.

Official sources

This guide was checked on 2026-09-01. Public Gaussian material does not replace the manual shipped under a specific license. The matching authorized-media documentation, institutional policy, and written vendor response remain controlling.

Historical source archive (provenance only)

The complete visible body from source_export follows verbatim. Nothing was deleted, rewritten, whitespace-normalized, or redacted for privacy or safety. It contains dangerous old advice to enable the root password, run as root, disable ASLR globally and at boot, and apply broad recursive permissions. The entire block is inert plain text: links are not clickable, commands are not executable, and it does not replace the maintained guide above.

以下方法对g03和g09均可行。

Table of Contents

Toggle

- [一、解压](https://blog.lazying.art/en/html/chemistry/1113/ubuntu-14-04-%e4%b8%8b%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85gaussian-03%ef%bc%88g03%ef%bc%89%e5%92%8cgaussian-09%ef%bc%88g09%ef%bc%89%e5%8f%8a%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3.html/#%E4%B8%80%E3%80%81%E8%A7%A3%E5%8E%8B)
- [二、安装](https://blog.lazying.art/en/html/chemistry/1113/ubuntu-14-04-%e4%b8%8b%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85gaussian-03%ef%bc%88g03%ef%bc%89%e5%92%8cgaussian-09%ef%bc%88g09%ef%bc%89%e5%8f%8a%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3.html/#%E4%BA%8C%E3%80%81%E5%AE%89%E8%A3%85)
- [三、运行](https://blog.lazying.art/en/html/chemistry/1113/ubuntu-14-04-%e4%b8%8b%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85gaussian-03%ef%bc%88g03%ef%bc%89%e5%92%8cgaussian-09%ef%bc%88g09%ef%bc%89%e5%8f%8a%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3.html/#%E4%B8%89%E3%80%81%E8%BF%90%E8%A1%8C)
- [四、安装gview](https://blog.lazying.art/en/html/chemistry/1113/ubuntu-14-04-%e4%b8%8b%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85gaussian-03%ef%bc%88g03%ef%bc%89%e5%92%8cgaussian-09%ef%bc%88g09%ef%bc%89%e5%8f%8a%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3.html/#%E5%9B%9B%E3%80%81%E5%AE%89%E8%A3%85gview)
- [五、常见错误](https://blog.lazying.art/en/html/chemistry/1113/ubuntu-14-04-%e4%b8%8b%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85gaussian-03%ef%bc%88g03%ef%bc%89%e5%92%8cgaussian-09%ef%bc%88g09%ef%bc%89%e5%8f%8a%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af%e8%a7%a3%e5%86%b3.html/#%E4%BA%94%E3%80%81%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF)

### 一、解压

首先对文件进行解压缩,我的文件名是G09.B01.LINUX_E64-930X.tgz,文件在桌面,你应填上你对应的文件目录和文件名,可用tab键补全。

tar -xvf Desktop/G09.B01.LINUX_E64-930X.tgz


注意:

1、应注意文件是否解压完全,我第一次安装的时候,exe后缀的文件不知什么原因都没有解压出来,所以安装一直失败,重新解压一次又好了;

2、尽量不要使用sudo,倘若你的Home目录权限有问题,使用加sudo解压后再将权限恢复正常,或者通过创建一个用户组。

改变文件夹权限

chmod -R u=755 g09


创建组及用户,改变文件及文件夹的组及用户

sudo groupadd g09users 创建组
sudo useradd g09 -g gaussuser 创建组用户
chgrp -R g09users g09
chown -R g09users:gaussuser g09


将用户添加进组

usermod -G g09users gaussuser


### 二、安装

其实,安装的过程就是设置变量的过程。
 进入主目录,Ctrl+H显示隐藏文件,打开.bashrc文件,在文件末尾加上以下内容(安装g03请把g09全部替换成g03就行了),注意你的g09的目录和你的用户名,按照以下的格式修改就行。(注意:经过我多次安装,发现修改主目录的/home/yourusername/.bashrc,用su获得超级用户的权限后,每次仍需要使用source /home/yourusername/.bashrc才能够成功设置环境变量,我发现直接修改/root/.bashrc便不用每次都需要再重新设置环境变量)

#gaussian09
export g09root=/home/yourusername
GAUSS_EXEDIR=$g09root/g09/
export GAUSS_SCRDIR=/home/yourusername/g09/scratch
LD_LIBRARY_PATH=$g09root/g09/:$LD_LIBRARY_PATH
PATH=$g09root/g09/:$PATH
export g09root GAUSS_EXEDIR GAUSS_SCRDIR LD_LIBRARY_PATH PATH
source $g09root/g09/bsd/g09.profile


最后,在g09的目录里创建scratch目录

### 三、运行

[![gauss-procedure-full-edited](images/gauss-procedure-full-edited.png)](https://blog.lazying.art/wp-content/uploads/2014/06/gauss-procedure-full-edited.png)

(最后的Error是由于我Ctrl+C终止程序)

运行时的命令用sudo提示permission denied,所以应当用su获取超级权限。

取得超级用户权限,先给超级用户设置密码,终端输入以下命令,然后输入密码。

sudo passwd root


然后,输入以下命令,输入刚设置的密码

su -


这样进入的是root的根目录/root,需切换到用户目录/home/yourusername,亦即我们的g09目录存放的目录。

cd /home/username


输入以下命令,第一条是避免Segmentation fault(段错误)该命令只能在su下执行,在sudo下会提示权限不足(Permission denied),该命令也可添加进/etc/rc.loacal,开机自动执行,第二条是运行命令,”./g09/g09″是我的g09目录下的g09文件的地址,其中tasks是我的任务文件gif存放目录,可在命令末尾加上&表示后台执行。

echo 0 > /proc/sys/kernel/randomize_va_space
./g09/g09 tasks/xxx.gif &


[![rc.local-gauss](images/rc.local-gauss.png)](https://blog.lazying.art/wp-content/uploads/2014/06/rc.local-gauss.png)

### 四、安装gview

在.bashrc末尾加上以下内容
 export GV_DIR=/home/yourusername/gv/
 export LIBPATH=/home/yourusername/gv/lib
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourusername/gv/lib
 PATH=$PATH:/home/yourusername/gv/

### 五、常见错误

1、forrtl: No such file or directory
 没有创建scratch目录,或者目录路径设置不对,这是Gauss的输出目录。

2、Warning: omp_set_num_threads (4) greater than available cpus (2)
 这是gif文件设置不对,cpu的核数为2却设成了4,只要打开改回电脑应有的cpu的个数就行了

3、Segmentation fault
 Erroneous write during file extend. write -1 instead of 4096
 Probably out of disk space.
 Write error in NtrExt1: Bad address
 Segmentation fault
 解决办法:
 sudo echo 0 > /proc/sys/kernel/randomize_va_space
 最好写进/etc/rc.local文件(ubuntu系统,其他系统写进相应文件),令其开机自动加载该命令,省时省力。

4、ntrex1: Bad file descriptor
 Error: segmentation violation
 rax 0000000000000000, rbx 00007ffffffdecb0, rcx ffffffffffffffff
 rdx 00000000000029b8, rsp 00007ffffffdebc8, rbp 00007ffffffdecc0
 rsi 000000000000000b, rdi 00000000000029b8, r8 00002aaaaaaf2300
 r9 0000000000000000, r10 00007ffffffde990, r11 0000000000000202
 r12 00000000ffffffff, r13 000000000061c830, r14 0000000000000001
 r15 0000000000010000
 — traceback not available
 Aborted (core dumped)
 gif文件%chk设置错误,因为Linux下没有Windows下的分区和目录结构,例如,%chk=D:he-test-c.chk,把分区号去除就可以了,例如%chk=he-test-c.chk。
 5、运行g09后出错,查看log文件,信息如下:
 Entering Gaussian System, Link 0=g09
 Input=1.com
 Output=1.log
 Files in the Gaussian directory are world accessible.
 This must be fixed.
 原因是g09文件夹权限太高,如果整个改成777就有可能出这个问题。解决办法是除了scratch目录以外,均用755或者750等。(所以之前建议用更改用户组的办法来实现权限)。

Leave a Reply