Anwendungen

...now browsing by category

 

Skype unter Centos 6.2 installieren

Freitag, März 9th, 2012

Nachdem man das RPM von Skype heruntergeladen hat, muss man noch einige
Libraries installieren, die binding sind im Skype-RPM nicht drin (oder tun nicht, weil das rpm eigentlich für Fedora ist). Mit yum geht das am einfachsten über:

yum install libasound.so.2 libXv.so.1 libXss.so.1 libSM.so.6 libXi.so.6 \
libXrender.so.1 libXrandr.so.2 libfreetype.so.6 libfontconfig.so.1 libz.so.1 \
libgthread-2.0.so.0 libstdc++.so.6 libQtDBus.so.4 libQtGui.so.4 \
pulseaudio-libs.i686
yum localinstall --nogpgcheck skype-2.2.0.35-fedora.i586.rpm

Linux-Software RAID: Intent Bitmap aktivieren

Freitag, März 2nd, 2012

In der „Intent Bitmap“ merkt sich der md-Treiber welche Blöcke noch nicht gesynced sind, dadurch muss im Falle eines „unclean“ Shutdowns nicht das gesamte RAID resynced werden.

Der Superblock muss persistent und der Status muss aktiv sein, prüfen mit

mdadm -D /dev/md1 | egrep "(Persistence|State) :"
# erwarteter Output:
#    Persistence : Superblock is persistent
#          State : active

Aktiviert werden die „Intent Bitmap“s mit dem folgenden Kommando:

mdadm /dev/md1 -Gb internal --bitmap-chunk=262144

Aus Performance Gründen sollte die Chunk Size möglichst groß sein, weil die Tabelle vor jedem Schreibzugriff aktualisiert werden muss. (262144 steht für 256MB)

Überprüfen:

cat /proc/mdstat 
#Personalities : [raid1] 
# md0 : active raid1 sdb1[1] sda1[0]
#       104320 blocks [2/2] [UU]
#       
# md1 : active raid1 sdb2[1] sda2[0]
#       1465031488 blocks [2/2] [UU]
#       bitmap: 3/3 pages [12KB], 262144KB chunk

Deaktiviert werden die „Intent Bitmap“s mit dem folgenden Kommando:

mdadm /dev/md1 -Gb none

LUKS Partitionen verwalten

Freitag, März 2nd, 2012

Das folgende script erleichtert die Verwaltung von verschlüsselten Partitionen.

Angelegt wird die Partition durch Eingabe des Kommandos „luks.sh add private“.

Hier wird ein LV als Container angelegt, darin liegt die Partition mit einem Filesystem verschlüsselt. Die Partition wird eingetragen, nach einem Reboot kann die Partition durch Eingabe des Komandos: „luks.sh mount private“ und des Passworts gemounted werden.

Download: luks.sh

#!/bin/bash

# luks (c) Hans-Helmar Althaus 
#
#  Version 1.0 - 24.02.2012
#

# this is convention, we mount volumes in $fsbase/fsN
fsbase="/export"

# keylen and cipher to use on crypted device
cipher="aes-cbc-essiv:sha256"
keylen=256

# filesystem type and size to use on crypted device
fstype="ext4"
fssize="64G"

# try to determine system volume group:
vg=$(vgdisplay | grep "VG Name" | head -1 | awk '{print $3}')

# try to determine next unused volume mount point,
# according to our convention $fsbase/fsN for mount points.
fsnum=1
while [ -d "${fsbase}/fs${fsnum}" ]; do
  fsnum=$((${fsnum}+1))
done

##################################################################################
# shell functions ################################################################
##################################################################################

function luks_add_fs() { # add LUKS-Volume
  name=$1
  lvcreate -L${fssize} ${vg} -n ${name} || return 1
  cryptsetup luksFormat -c ${cipher} -s ${keylen} /dev/${vg}/${name} || return 2
  echo "# show: cryptsetup luksDump /dev/${vg}/${name}"
  cryptsetup luksOpen /dev/${vg}/${name} luks-${name} || return 3
  echo "# show: dmsetup info luks-${name}"
  echo "# show: cryptsetup status /dev/mapper/luks-${name}"
  mkfs.${fstype} -m0 /dev/mapper/luks-${name} || return 4
  mkdir -p ${fsbase}/fs${fsnum} || return 5
  mount /dev/mapper/luks-${name} ${fsbase}/fs${fsnum} || return 6
  cat <<-EOFFSTAB >> /etc/fstab
        #     
        /dev/mapper/luks-${name} ${fsbase}/fs${fsnum} ${fstype} defaults,noauto 0 0
        EOFFSTAB
  cat <<-EOFCRTAB >> /etc/crypttab
        #   
        luks-${name} /dev/${vg}/${name} none none
        EOFCRTAB
  return 0
}

function luks_mount_fs() { # mount LUKS-Volume
  name="$1"
  cryptsetup luksOpen /dev/${vg}/${name} luks-${name} || return 1
  mount /dev/mapper/luks-${name} || return 2
}

function luks_remove_fs() { # remove LUKS-Volume
  name=$1
  doumount=0
  mntpnt=$(mount | grep "^/dev/mapper/luks-${name} on" | awk '{print $3}' )
  if [ -z "${mntpnt}" ]; then
    doumount=1
    mntpnt=$(egrep "^/dev/mapper/luks-${name}\\s" /etc/fstab | awk '{print $2}' )
    if [ -z "${mntpnt}" ]; then
      echo "can not determine mount point."
      return 1
    fi
  fi
  [ $doumount ] && umount ${mntpnt} || return 2
  cryptsetup luksClose /dev/mapper/luks-${name} || return 3
  lvremove /dev/${vg}/${name} || return 4
  if [ ! -f /etc/luks-${name}.keyfile ]; then
    rm -f /etc/luks-${name}.keyfile
  fi
  rmdir ${fsbase}/fs${fsnum} || return 4
  sed -e "s:^luks-${name}.*:#&:g" -i /etc/crypttab
  sed -e "s:^/dev/mapper/luks-${name}.*:#&:g" -i /etc/fstab
  return 0
}

function luks_add_key() { # add a keyfile to mount LUKS-Volume
  name=$1
  if [ -f /etc/luks-${name}.keyfile ]; then
    echo "keyfile exists."
    return 1
  fi
  dd if=/dev/urandom of=/etc/luks-${name}.keyfile bs=1 count=${keylen}
  chown root.root /etc/luks-${name}.keyfile
  chmod 0600 /etc/luks-${name}.keyfile
  cryptsetup luksAddKey /dev/${vg}/${name} /etc/luks-${name}.keyfile || return 2
  sed -e "s:^luks-${name}.*:#&:g" -i /etc/crypttab
  cat <<-EOFCRTAB >> /etc/crypttab
        luks-${name} /dev/${vg}/${name} /etc/luks-${name}.keyfile none
        EOFCRTAB
  return 0
}

function luks_remove_key() { # remove key from LUKS-Volume
  name=$1
  if [ ! -f /etc/luks-${name}.keyfile ]; then
    echo "keyfile does not exist."
    return 1
  fi
  cryptsetup luksRemoveKey /dev/${vg}/${name} /etc/luks-${name}.keyfile || return 2
  rm -f /etc/luks-${name}.keyfile
  sed -e "s:^luks-${name}.*:#&:g" -i /etc/crypttab
  cat <<-EOFCRTAB >> /etc/crypttab
        luks-${name} /dev/${vg}/${name} none none
        EOFCRTAB
  return 0
}

function usage() {
  cat <<-EOUSAGE
        $(basename $0) [options] command 
        
        create logical fsume container on volume group
        and mount crypted filesystem on $fsbase/fsN
        
        options:
          --vg         - volume group (def:$vg)
          -n, --fsnum  - filesystem-number (def:$fsnum)
          -t, --fstype - filesystem-type (def:$fstype)
          -s, --fssize - volume-size (def:$fssize)
          -l, --keylen - key-length (def:$keylen)
        
        command is one of:
          add    - add a crypted volume
          mount  - mount crypted volume
          remove - remove crypted volume
          addkey - add a keyfile to volume
          delkey - remove keyfile from volume
        EOUSAGE
  exit 0
}

if [ -z "$1" ]; then
  usage
fi

##################################################################################
# main function ##################################################################
##################################################################################
  
while [ -n "$1" ]; do
  case "$1" in
    --vg) vg="$2"; shift ;;
    -n|--fsnum)  fsnum="$2"; shift ;;
    -t|--fstype) fstype="$2"; shift ;;
    -b|--fsbase) fsbase="$2"; shift ;;
    -l|--keylen) keylen="$2"; shift ;;
    -s|--fssize) fssize="$2"; shift ;;
    add)       luks_add_fs $2; break ;;
    mount)     luks_mount_fs $2; break ;;
    remove)    luks_remove_fs $2; break ;;
    addkey)    luks_add_key $2; break ;;
    removekey) luks_remove_key $2; break ;;
    *) usage ;;
  esac
done
rt=$?

if [ $rt -gt 0 ]; then
  echo "operation failed with errorcode: $rt"
fi
exit $rt

GoogleEarth 6.0 Beta unter Fedora 13+

Mittwoch, Dezember 15th, 2010

Auf einem frisch installierten System, auf dem GoogleEarth 5.2 problemlos läuft, läßt sich GoogleEarth 6.0 Beta nicht starten:

# googleearth 
/share/software/google-earth/googleearth: 
  /share/software/google-earth/googleearth-bin:
  /lib/ld-lsb.so.3: bad ELF interpreter: No such file or directory
/share/software/google-earth/googleearth: 
  line 49: /share/software/google-earth/googleearth-bin: Success

Der Trick besteht darin einen Symlink anzulegen:

 ln -s /lib/ld-linux.so.2 /lib/ld-lsb.so.3

backup to ftp-backup-account

Mittwoch, Juni 2nd, 2010

backup to ftp-backup-account

Gemeint ist das direkte Erzeugen des Streams
ohne eine lokale Datei anzulegen:

Für einen Folder:

tar cvz folder | \
   ncftpput -u user -p pass -c ftp-server backup.tgz

Als Datenbank Dump (MySQL):

mysqldump dbname | gzip | \
   ncftpput -u user -p pass -c ftp-server dbdump.sql.gz

VMware Kernel Module für VMware 6.5

Sonntag, Oktober 19th, 2008

Seit VMware 6.5 gibt es das Kommando vmware-config.pl nicht mehr. VMware hat zwar ein hüpsches neues graphisches Buildsystem eingeführt, sofern man aber die Kernel Modules an der Kommandozeile bauen möchte, muss man folgendes Kommando eingeben:

vmware-modconfig --console --install-all

„hübsches Xterm“

Sonntag, September 7th, 2008

Auch ein xterm lässt sich wunderbar als commandline Terminal einsetzen, allerdings ist es mit den default Einstellungen optisch relativ unaktraktiv. Das kann man aber ganz einfach ändern. Die Darstellungsart des Programms Xterm kann ganz klassisch über Xresourcen gesteuert werden. Diese werden auch heute noch von allen Distributionen ünterstützt und beim Login aus dem Home des jeweiligen Benutzers über xrdb geladen. (weitere Fonts lassen sich über xfontsel auswählen)

! ~/.Xresources ( The cpp definitions work only when this file is loaded with xrdb.)

#define FIXED -misc-fixed-*-*-*-*-20-*-*-*-*-*-iso10646-*

XTerm*utf8: 1
XTerm*font: FIXED
XTerm*VT100*font: FIXED
XTerm*VT100*wideFont: FIXED
XTerm*VT100*boldFont: FIXED
XTerm*background: PapayaWhip
XTerm*cursorColor: red

HDR Fotos unter Linux erstellen

Donnerstag, September 4th, 2008

Um unter Linux HDR Bilder zu erstellen wurde die Anwendung „qtpfsgui“ genauer untersucht, dieses Programm erlaubt die Zusammenführung einer Belichtungsreihe unter Zuhilfenahme verschiedener Algorithmen. Dieses Programm ist unter Fedora bequem über die yum-Repositories installierbar:

yum install qtpfsgui

Die Bewertung der Ergebnisse folgt im nächsten Artikel