ccp4 README: document explicit --tmpdir/--distdir build command
The ~/.Pmodules/Pmodules.yaml route did not reliably set download_dir, so the maintained recipe now passes both dirs on the command line; readers must adapt the p-group path to their own. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+24
-20
@@ -17,27 +17,31 @@ macromolecular crystallography. https://www.ccp4.ac.uk/
|
||||
|
||||
## Build on Ra
|
||||
|
||||
One-time per user: put the Pmodules build tmp and download cache on
|
||||
/das instead of /var/tmp and $HOME (the tarball alone would blow the
|
||||
home quota):
|
||||
|
||||
```bash
|
||||
mkdir -p /das/work/p21/p21515/.cache/Pmodules/distfiles ~/.Pmodules
|
||||
cat > ~/.Pmodules/Pmodules.yaml <<'EOF'
|
||||
tmp_dir: /das/work/p21/p21515/.cache/Pmodules
|
||||
download_dir: /das/work/p21/p21515/.cache/Pmodules/distfiles
|
||||
EOF
|
||||
```
|
||||
|
||||
Then:
|
||||
Build tmp and download cache MUST be on /das, not the defaults
|
||||
(/var/tmp is too small, the tarball alone blows the $HOME quota — a
|
||||
download dying with "Failure writing output to destination" means
|
||||
exactly that). Pass both dirs explicitly on the command line so there
|
||||
is no doubt where things land — **adapt the p-group path
|
||||
(`p21/p21515`) to your own**:
|
||||
|
||||
```bash
|
||||
module use unstable && module load modbuild/2.1.3
|
||||
cd ccp4
|
||||
modbuild build --prep 9.0 # download/cache only; also verifies tmp_dir took effect
|
||||
modbuild build 9.0
|
||||
mkdir -p /das/work/p21/p21515/.cache/Pmodules
|
||||
modbuild build \
|
||||
--tmpdir=/das/work/p21/p21515/.cache/Pmodules \
|
||||
--distdir=/das/work/p21/p21515/.cache/Pmodules \
|
||||
--clean-install -v --debug 9.0
|
||||
```
|
||||
|
||||
(`--clean-install` removes a previous broken install first; `-v
|
||||
--debug` make the otherwise silent long steps visible.)
|
||||
|
||||
Alternative: `~/.Pmodules/Pmodules.yaml` with top-level `tmp_dir:` and
|
||||
`download_dir:` keys sets the same defaults per user — but in practice
|
||||
`download_dir` did not reliably take effect there, so the explicit
|
||||
flags above are the maintained route.
|
||||
|
||||
If the download fails (expired sid), fetch a fresh link from
|
||||
https://www.ccp4.ac.uk/download/ and update `files/config.yaml`, or drop a
|
||||
hand-downloaded tarball into the distfiles dir under the `name:` given in
|
||||
@@ -65,12 +69,12 @@ Growing `du` = working. Only investigate if it's frozen for 10+ min.
|
||||
- **"done" but broken install**: modbuild has no errexit in hooks — errors in
|
||||
`pbuild::install` used to scroll by and the build still reported done. The
|
||||
build script now `std::die`s on every critical step.
|
||||
- **Interrupted download**: prep now detects a truncated tarball with
|
||||
`gzip -t` and resumes it with `wget --continue` — just re-run
|
||||
`modbuild build 9.0`. A download that dies with
|
||||
- **Interrupted download**: prep detects a truncated tarball with
|
||||
`gzip -t` and resumes it with `wget --continue` — just re-run the
|
||||
build command above. A download that dies with
|
||||
`Failure writing output to destination` means quota/disk full at the
|
||||
distfiles dir, not a network problem — free space or move `download_dir:`
|
||||
(see above) before retrying.
|
||||
distfiles dir, not a network problem — check `--distdir` points to
|
||||
/das before retrying.
|
||||
- The tarball unpacks to `ccp4-9` (not `ccp4-9.0` as the CCP4 install doc
|
||||
implies); the build globs `ccp4-*/` instead of assuming the name.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user