Eigene Debian Pakete erstellen – preinst und postinst

Vor kurzem habe ich darueber geschrieben wie man eigene Debian-Pakete und ein eigenes Repository dafuer erstellt. Ich moechte nun hinzufuegen, wie man Skripte vor- und nach der Installation ausfuehrt. Basis ist hier das Debian-Paket fuer das pregoBackup.sh Skript was in dem verlinkten Post steht.

Um Skripte vor und nach der Installation auszufuehren werden die beiden Dateien

./DEBIAN/preinst
./DEBIAN/postinst

benoetigt. Dieses koennen einfach Bash-Skripte sein, die dann bei der Installation aufgerufen werden. Nehmen wir an, ich moechte vor der Installation eine 100MB grosse Datei erstellen, und nach der erfolgreichen Installation des Paketes diese Datei wieder loeschen, koennten die beiden Skripte z.B. wie folgt aussehen:

preinst:

    #!/bin/bash
    echo "creating 100mb file..."
    dd if=/dev/zero of=/tmp/100megsofzero bs=1024 count=100000

    postinst:

      #!/bin/bash
      echo "deleting 100mb file..."
      rm -f /tmp/100megsofzero

      Paket erzeugen und ausprobieren…

      ASCII art

       sudo aptitude install figlet toilet cowsay
      jan@desktop:~$ figlet prego
       
       _ __  _ __ ___  __ _  ___  
      | '_ \| '__/ _ \/ _` |/ _ \ 
      | |_) | | |  __/ (_| | (_) |
      | .__/|_|  \___|\__, |\___/ 
      |_|             |___/       
      jan@desktop:~$ toilet prego
       
       
       mmmm    m mm   mmm    mmmm   mmm  
       #" "#   #"  " #"  #  #" "#  #" "# 
       #   #   #     #""""  #   #  #   # 
       ##m#"   #     "#mm"  "#m"#  "#m#" 
       #                     m  #        
       "                      ""         
      jan@desktop:~$ cowsay prego
       _______
      < prego >
       -------
              \   ^__^
               \  (oo)\_______
                  (__)\       )\/\
                      ||----w |
                      ||     ||

      Eintrag aus bash History loeschen

      Wie oft ist es mir schon passiert, dass ich ein sudo su gefolgt von einem Passwort eingegeben hatte und dann war der sudo su wegen eines zu vorigen erfolgreichen Eingebens bereits ohne Passworteingabe erfolgreich und das Passwort stand in der bash history. Gefuehlte 1000000000 mal. Den Befehl nun aus der bash history zu loeschen kann man auf unterschiedliche Weisen tun. Das schnellste ist sicherlich ein

      rm ~/.bash_history

      womit man aber auch gleich alles verliert.

      Das zweite was man machen kann ist die Datei mit dem Editor seiner Wahl zu oeffnen, die entsprechende Zeile loeschen, abspeichern, und ggfs. erstelle Sicherungskopien von der Datei (wie z.B. die von joe gemachte .bash_history~) zu loeschen.

      Der dritte und wohl bequemste Weg ist mit dem Befehl history. Dieser zeigt die bash History an und mit dem Schalter -d kann man daraus loeschen:

      jan@desktop:~$ history 5
        504  sudo aptitude safe-upgrade
        505  vim foobar
        506  sudo su
        507  mysecretpassword
        508  history 5
      jan@desktop:~$ history -d 507
      jan@desktop:~$ history 5
        505  vim foobar
        506  sudo su
        507  history 5
        508  history -d 507
        509  history 5
      jan@desktop:~$