en shim er et lite bibliotek som fanger opp og endrer samtaler til et annet bibliotek, hovedsakelig for å hjelpe kompatibilitet.
Vedlikehold av flere versjoner av et bibliotek er nødvendig for å støtte kundene dine. Shim biblioteker oversette gamle til nye bibliotek samtaler før videresending videre til det nye biblioteket.Eksempel 1:
Linux-installasjoner kommer vanligvis med En Enkelt Ruby-versjon. Ruby-utviklere må ha forskjellige Ruby-versjoner på sine mange aktive prosjekter. Rbenv bruker shims for å løse dette problemet.
Å Kjøre En Ruby-kommando i Linux betyr å sjekke kjørbarheten i banen – som den søker fra venstre til høyre. Så, kjører Ruby kommandoen rails server
Betyr Linux finner og kjører Rails, En Ruby kjørbar, i den første katalogen.
Rbenv legger til enshims
directory og laster den med shim skript før prepending banen. Det er en shim script for Hver Ruby program og kjører En Ruby program betyr nå kjører matchende shim script. Så kjører rails betyr å utføre Rails-skriptet ishims
katalogen og ikke Rails-applikasjonen i usr/local/bin
. Skriptet utarbeider Den nødvendige Ruby-versjonen og kjører deretter sin matchende applikasjon, i dette tilfellet Rails, under den forventede Ruby-versjonen.
eksempel 2:
Microsoft bruker shims til å forfalske Et programs Windows-anrop. Når et program gjør et systemkall, går det gjennom ‘Import Address Table’.
du kan endre tabellen og erstatte windows-samtalen med et anrop til en shim. Shim i eksemplet er en ‘versjon-lie’ shim. Søknaden mener det er på En Windows 7-maskin.