Ich versuche, ein Skript zu erstellen, das eine Debian Lenny-Installation zwingt, die neueste Version von CRAN R zu installieren. Während der Installation scheint libc6 aktualisiert zu sein und die Installation möchte interaktiv bestätigen, dass es in Ordnung ist, drei Dienste (mysql, exim4, cron) neu zu starten ). Dieser Prozess muss unbeaufsichtigt sein, da er auf EMR-Computern (Elastic Map Reduce) von Amazon ausgeführt wird. Aber mir gehen die Optionen aus. Hier sind einige Dinge, die ich versucht habe:
Diese vorherige Frage scheint genau das zu sein, wonach ich suche. Also habe ich mein Installationsskript wie folgt eingerichtet:
# set my CRAN repos... yes, I know there's a new convention where to put these.
echo "deb http://cran.r-project.org/bin/linux/debian lenny-cran/" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://cran.r-project.org/bin/linux/debian lenny-cran/" | sudo tee -a /etc/apt/sources.list
# set the dpkg.cfg options per the previous SuperUser question
echo "force-confold" | sudo tee -a /etc/dpkg/dpkg.cfg
echo "force-confdef" | sudo tee -a /etc/dpkg/dpkg.cfg
export DEBIAN_FRONTEND=noninteractive
# add key to keyring so it doesn't complain
gpg --keyserver pgp.mit.edu --recv-key 381BA480
gpg -a --export 381BA480 > jranke_cran.asc
sudo apt-key add jranke_cran.asc
sudo apt-get update
# install the latest R
sudo apt-get install --yes --force-yes r-base
Dieses Skript hängt jedoch mit der folgenden Eingabeaufforderung:
OK, also habe ich versucht, die Dienste mit dem folgenden Skript zu stoppen:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/exim4 stop
sudo /etc/init.d/cron stop
sudo apt-get install --yes --force-yes libc6
Dies funktioniert nicht und der interaktive Bildschirm wird wieder angezeigt, diesmal jedoch nur mit cron als Dienst, der neu gestartet werden muss.
Gibt es also eine Möglichkeit, libc6 dazu zu bringen, diese Dienste ohne Benutzereingabe neu zu starten? Oder gibt es eine Möglichkeit, cron zu stoppen, damit keine interaktive Eingabeaufforderung ausgelöst wird? Vielleicht eine kreative Option, an die ich noch nie gedacht habe?
Denken Sie daran, dass dieses System aufgerufen wird, etwas Hadoop-Code ausgeführt wird und dann abgerissen wird. So kann ich Nebenwirkungen und schlechtes Verhalten ertragen, die wir auf einem Produktions-Desktop-Computer oder Webserver möglicherweise nicht wollen.