Herätetäänpä ketju...
Oheinen skripti tuli tehtyä, kun jouduin kaiken aikaa asentelemaan yhtä konetta uudelleen. Skripti lukee tiedostosta, mitä paketteja koneelle pitää asentaa, ja asentaa ne. Aptitude on helppo vaihtaa zypperiin tai yumiin; totta kai ongelmaksi tulevat myös distrosta toiseen vaihtuvat pakettien nimet, mutta tämä on kierrettävissä luomalla useita eri lähdetiedostoja.
Skripti nopeuttaa kuitenkin kummasti koneen käyttöönottoa – siis jollei ole päässyt luomaan omaa asennuslevyään tai käyttämään varsin lupaavalta näyttävää SUSE Studiota!
Pitäisi vielä keksiä, miten shiftiä käyttäen voisi saada skriptin lukemaan useampia komentorivillä annettuja tiedostoja.
#!/bin/sh
# -----------
# mustinstall
# -----------
# Skripti lukee parametrina annetusta tiedostosta, mitä paketteja
# koneelle pitää asentaa. Tiedostossa annetaan paketti kullakin rivillä,
# rivi voi sisältää myös #-merkin edeltämiä kommentteja.
#
# 18.8.2009 / Viimeisin muutos (TN).
if [ -z "$1" ]; then
echo $0: Käyttö: mustinstall TSTO
exit 1
fi
if [ -r "$1" ]; then
echo mustinstall: Luetaan tiedostoa "$1"
while read pkg; do
pkg=`echo ${pkg} | sed "/#/ d"`
if [ -n "${pkg}" ]; then
dpkg-query -l ${pkg} > /dev/null 2>&1
if [ $? -ne 0 ]; then
must="${must} ${pkg}"
fi
fi
done < "$1"
echo mustinstall: Asennetaan ${must} riippuvuksineen
sudo aptitude install ${must}
else
echo mustinstall: Tiedostoa ei löydy tai sitä ei voi lukea: "$1"
fi
Itse luettava tiedosto, joka parametrina skriptille annetaan, näyttää esim. tältä:
#
# Välttämättömät apuohjelmat
#
zsh
unison
unison-gtk
#
# Palomuurin hallinta
#
guarddog
#
# Palvelut
#
openssh-server
#
# TeX
#
texlive-full
scalable-cyrfonts-tex
kile
#
# Ohjelmointi
#
idle
#
# Multimedia ja grafiikka
#
kubuntu-restricted-extras
dvdauthor
imagemagick
mjpegtools
inkscape
krita-kde4
#
# Pelit
#
kdegames
pysol
pysol-cardsets
Muoks: Viime vaiheessa mukaan hupsahtanut bugi korjattu.