App-sync for vitenskapelig programvare

Diverse vitenskapelige programmer distribueres via en UiO-spesifikk mekanisme som vi kaller app-sync. Dette er en enkel l?sning som baseres p? rsync.

1???Bakgrunn

Enkelte programmer, herunder Matlab, er vanskelig og/eller tidkrevende ? diste via eksisterende mekanismer som RPM-pakke. Vi har derfor laget et opplegg for dist av slike programmer basert p? rsync. Det er lagt vekt p? at l?sningen skal v?re enkel i sin helhet, bruke kjente, ?pne protokoller, v?re enkel i bruk og samt enkel ? drifte.

2???Programmet app-sync

Det er satt opp rsync-server p? app-sync.uio.no (aka rsync-prod02.uio.no). Klientene kommuniserer via rsync-protokollen, via et lite shell-script app-sync:

$ app-sync help
Usage: app-sync <command> [program...]

Commands:
  list                  List available applications
  install <program(s)>  Install specified program
  remove <program(s)>   Completely remove program
  update                Update all programs
  help                  This help text

2.1???Bruk av app-sync

Man m? f?rst installere app-sync. Det gj?res slik (som root):

# yum -y install uio-app-sync

Deretter kan man bruke app-sync p? vanlig m?te:

Usage: app-sync <command> [program...]

For ? liste opp tilgjengelig programvare for maskinen man kj?rer fra, bruk app-sync list:

$ app-sync list
+-----+-------------+------------------------------------------------------------+
| Ins | Program     | Description                                                |
+-----+-------------+------------------------------------------------------------+
| yes | matlab      | MATLAB & Simulink R2023a                                   |
| yes | texlive     | TeX Live 2023                                              |
|  -  | cplex       | IBM ILOG CPLEX Optimization Studio 12.5                    |
+-----+-------------+------------------------------------------------------------+

I tilfellet over er det tre programmer tilgjengelig via rsync for 64bit Linux: Matlab, TeX Live og CPLEX.

For ? installere ett eller flere programmer, bruk app-sync install:

# app-sync install matlab

Number of files: 65386
Number of files transferred: 60632
Total file size: 2028367039 bytes
Total transferred file size: 2028365759 bytes
Literal data: 2028365759 bytes
Matched data: 0 bytes
File list size: 1556125
File list generation time: 0.343 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 1362527
Total bytes received: 2032957296

sent 1362527 bytes  received 2032957296 bytes  24363111.65 bytes/sec
total size is 2028367039  speedup is 1.00

Man kan angi flere programmer, f.eks.

# app-sync install matlab texlive
[...]

For ? fjerne ett eller flere programmer, bruk app-sync remove:

# app-sync remove matlab
Removing symlinks in /local/bin ................ done.
Removing symlink in /local/opt ................. done.
Removing the application ....................... done.

Application "matlab" completely removed.

Det er ogs? en kommando for ? oppdatere alle programpakkene fra rsync-serveren: app-sync update. Denne kj?rer automatisk hver natt, slik at det ikke skal v?re n?dvendig for brukere ? kj?re denne for ? oppdatere til siste versjon/endringer fra rsync-serveren.

3???Sti for programmer

Sti til bin?rene legges automatisk inn i PATH ved innlogging. Dette skjer vha. to filer under /etc:

/etc/profile.d/app-sync.sh
For de som bruker bash
/etc/profile.d/app-sync.csh
For de som bruker tcsh

Dersom stien av en eller annen grunn ikke blir satt riktig ved innlogging, kan man kj?re disse filene manuelt. Eksempel for bash-brukere:

source /etc/profile.d/app-sync.sh

4???Automatisk oppdatering av programmer

Programmene (f.eks. Matlab) vil oppdateres daglig, hvis det er noe ? oppdatere. RPM-pakken uio-app-sync inneholder en cron-jobb:

/etc/cron.daily/uio-app-sync.cron

Denne s?rger for ? kj?re app-sync update for ? oppdatere programvare.

4.1???Hindre automatisk oppdatering

Dersom man f.eks. kj?rer store Matlab-jobber som tar lang tid, ?nsker man ikke at programvaren oppdateres automatisk. Man kan hindre automatisk oppdatering ved ? lage en flaggfil:

# touch /etc/uio/flag/disable.app-sync

S? lenge denne filen finnes vil programvare via rsync aldri oppdateres automatisk, men kan kan fremdeles oppdatere manuelt ved ? kj?re app-sync update.

Av Trond Hasle Amundsen
Publisert 2. apr. 2024 17:10