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.