Innhold
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.