apt-get mit Log- und Reversefunktion


Es gibt schlimme Dinge auf dieser Erde. Dazu gehört – zumindest für mich – das Aufspielen von PC’s. Das OS Setup muß durchgeklickt werden, etliche Programme wollen neu installiert werden. Isos von meinem Betriebssystem möchte ich nicht anlegen, weil dann der alte Murks wieder auf der HD ist. Unter Linux hab ich dieses Leid nun ein wenig gemindert. Ich protokolliere einfach meine Installtionen mit einem Perlskript. Falls ich neu aufspielen muß, lass ich Aptitude den geloggten Kram einfach installieren.Vorteile gegenüber einem Image wären der Zeitaufwand (Image erstellen zieht sich hin) und daß man  sofort die aktuellen Versionen installiert hat; da ist normalerweise ein wenig Nacharbeit (update) erforderlich.

Klingt gut, klappt prima, bis auf den Fakt, dass die Completion mit TAB nicht klappt. (für mich ist das gut, da es mich davon abhält irgendeinen Sinnloskram in das Log zu schreiben, der mir dann später wieder an der Backe hängt:-).)

Was nun noch fehlt ist ein kleines Perl Skript, welches interessante Configfiles für mich sichert (in Arbeit). Danach wird mich eine Neuinstalltion wohl nicht mehr schocken. Der nächste Idiotengriff zu einem Developerrepository kann also kommen…

Hier noch die Skripte

#!/usr/bin/perl
###################
#authr:schmie
#log-get
#Ruft apt-get install auf und loggt die installationen in eine datei
###################

my $file=“$ENV{HOME}/.apt-getlog“;

my $exec = „apt-get -y  install “ .$ARGV[0];
my $log= „echo $ARGV[0] >> $file“;

if (system ($exec)  == 0)
{
system („touch $file“);
system ($log);
system („sudo chmod 777 $file“);
}

und das „Reversescript“

#!/usr/bin/perl
###################
#authr:schmie
#log-get-reverse
#Installiert alle App’s die in apt-getlog geschrieben sind:)
###################

my $file=“$ENV{HOME}/.apt-getlog“;
my @appnames;

open (FILE, „<$file“) || die „.apt-getlog nicht gefunden!n“;
while (<FILE>)
{
push (@appname,$_);
}#while
close (FILE);

my $y;
while (@appname)
{
$x=pop(@appname);
$x=~s/n/ /;
$y.=$x;
}
my $exec = „apt-get -y  install $y“;
system ($exec);

Für Anregungen und Kommentare wäre ich sehr empfänglich 🙂

Advertisements
Dieser Beitrag wurde unter linux, perl, schlaue tipps für dein Leben abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s