a shim on pieni kirjasto, joka kuuntelee ja muuttaa puheluita toiseen kirjastoon lähinnä yhteensopivuuden helpottamiseksi.
kirjaston useiden versioiden ylläpitäminen on välttämätöntä asiakkaiden tukemiseksi. Shim-kirjastot kääntävät Vanhat ja uudet kirjastopuhelut ennen siirtämistä uuteen kirjastoon.
Esimerkki 1:
Linux-asennuksissa on yleensä yksi Ruby-versio. Ruby-kehittäjillä on oltava eri Ruby-versiot monissa aktiivisissa projekteissaan. Rbenv käyttää shimejä tämän ongelman ratkaisemiseksi.
Ruby — komennon suorittaminen Linuxissa tarkoittaa suoritustiedoston tarkistamista polulta-jota se etsii vasemmalta oikealle. Ruby-komennon rails server
ajaminen tarkoittaa siis sitä, että Linux löytää ja ajaa Rails-nimisen Ruby-suoritustiedoston ensimmäisestä hakemistosta.
Rbenv lisää shims
hakemisto ja lataa sen Shim-skripteillä ennen polun valmistelua. Jokaiselle Ruby-sovellukselle on Shim-skripti, ja Ruby-sovelluksen suorittaminen tarkoittaa nyt vastaavan shim-skriptin ajamista. Kiskojen juokseminen tarkoittaa siis Rails-kirjoituksen suorittamista shims
hakemistossa eikä Rails-sovellusta usr/local/bin
. Skripti työstää tarvittavan Ruby-version ja suorittaa sen vastaavan sovelluksen, tässä tapauksessa Rails, kyseisen odotetun Ruby-version alla.
esimerkki 2:
Microsoft väärentää shimsin avulla sovelluksen Windows-puheluita. Kun sovellus tekee järjestelmäkutsun, se menee ”tuo Osoitetaulukon” läpi.
voit vaihtaa taulukkoa ja korvata Windows-puhelun shim-kutsulla. Shim esimerkissä on ’versio-Vale’ shim. Sovellus uskoo sen olevan Windows 7-koneessa.