Die Version installierter Pakete im Terminal herausfinden

Kürzlich sollte ich einem Administrator die Version der VMware-Tools mitteilen, die auf meiner virtuellen Maschine installiert waren. Allerdings war (und ist) mir kein Befehl bekannt, mit dem ich diese Informationen direkt von Programmen des Paketes erhalten kann. Es ist aber möglich, die Version des installierten Paketes über den Debian Paketmanager (dpkg) zu ermitteln (UbuntuUsers-Forum).

Dazu lässt man sich zunächst (mit Hilfe von dpkg) eine Liste von Kurzbeschreibungen aller installierten Pakete ausgeben. Mit Hilfe von grep lässt man allerdings nur diejenigen Zeilen anzeigen, in denen der Namen des Paketes vorkommt (in meinem Falle open-vm-tools):

dpkg -l | grep open-vm-tools

In der Ausgabe kann man dann die Version ablesen:

ii  open-vm-tools  2012.05.21-724730-0ubuntu2  i386  tools and components for VMware guest systems (CLI tools)

In meinem Falle konnte der Administrator die virtuelle Maschine problemlos über den vSphere-client neu starten.

Datenträger unter Ubuntu bereinigen

Ich habe gerade eben folgende Fehlermeldung nach dem Start von Ubuntu bekommen:

Auf dem Datenträger „Wurzelordner des Dateisystems“ ist nur noch XXX kB Speicherplatz verfügbar.

In meinem Falle war XXX gleich 0. Es war also höchste Zeit, dass ich mal wieder unnötige Dateien von meiner System-Partition lösche. Ich hatte allerdings längst wieder vergessen, was man alles machen kann. Daher habe ich nun eine kleine Liste zusammengestellt:

  • Zunächst habe ich den Inhalt des temporären Verzeichnisses gelöscht.

    1
    2
    
    # Temporäreres Verzeichnis leeren
    rm -r /tmp/*

    Darin hatten sich Fehlermeldungen von apport angesammelt, die bei Programmabstürzen erstellt worden waren. Teilweise konnten diese aber nicht abgesendet werden, weil keine Internetverbindung bestand. In meinem Falle hatten sich über die Jahre mehr als 1.5 GB angesammelt.

  • Im Anschluss habe ich heruntergeladene Paket-Dateien, sowie nicht mehr benötigte Pakete gelöscht:

    1
    2
    3
    4
    
    # Paketdateien löschen
    sudo apt-get clean
    # Nicht mehr benötigte Pakete löschen
    sudo apt-get --purge autoremove

    Letzterer Befehl hat früher scheinbar auch nicht mehr benötigte Kernel-Versionen gelöscht (UbuntuUsers Forum). Das ist jetzt allerdings nicht mehr der Fall.

  • In regelmäßigen Abständen sollte man auch das Programm baobab („Festplattenbelegung analysieren“) aufrufen. Damit kann man herausfinden, welche Verzeichnisse besonders viele Daten enthalten. In meinem Falle habe ich gesehen, dass sich viele Kernel-Versionen angesammelt hatten (Ordner: /usr/src und /lib/modules):

    Das Programm "baobab" stellt die Größe von Ordnern grafisch dar. In diesem Fall kann man erkennen, dass ein großer Teil der Partition mit alten Kernel-Versionen belegt ist.
    Das Programm „baobab“ stellt die Größe von Ordnern grafisch dar. In diesem Fall kann man erkennen, dass ein großer Teil der Partition mit alten Kernel-Versionen belegt ist.

    Wie im UbuntuUsers-Forum beschrieben, kann man im Terminal ähnlich vorgehen:

    1
    2
    
    # Platzbedarf der Ordner im Wurzelverzeichnis anzeigen
    sudo du -h / --max-depth=1

    Im Anschluss kann man sich weiter auf die Suche machen und z.B. eine Liste der installierten Kernel-Versionen ausgeben lassen:

    1
    2
    
    # Installierte Kernel-Versionen anzeigen lassen
    dpkg -l linux-image-*

    Die Ausgabe könnte dann folgendermaßen aussehen:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    
     

    Da bei mir vor allem die Zahl der alten Linux-Kernel ein Problem war, habe ich einige davon gelöscht. Wie im Wiki von UbuntuUsers beschrieben, habe ich dazu in der Paketverwaltung Synaptic nach

    1. linux-image-
    2. linux-headers-

    gesucht und entsprechende Pakete vollständig entfernt. Mindestens eine ältere Version sollte man allerdings behalten. Dadurch habe ich 3.5GB frei machen können.

    Wenn man die Kernel im Terminal entfernen möchte, sind diverse Lösungen im Netz zu finden: LinuxMintUsers.de, webupd8.org, linuxundich.de, UbuntuUsers Forum

  • Große Dateien können sich auch im Verzeichnis /var/log ansammeln. Das war bei mir allerdings nicht der Fall, was ich folgenden Befehlen überprüft habe:

    # Dateien sortiert nach Nutzungsdatum auflisten
    ls -aluh /var/log
    # Größe des gesamten Ordners ausgeben lassen
    sudo du -sh /var/log
  • Wenn man im eigenen Home-Verzeichnis Ordnung schaffen möchte, bietet sich das Programm FSlint an. Nach der Installation des Programmpaketes fslint, lässt sich das Programm über den Befehl fslint-gui starten. Im Anschluss kann man viele ungenutzte Dateien und Ordner suchen und ggf. direkt löschen:

    • Duplikate
    • Temporäre Dateien (außerhalb des Verzeichnisses /tmp)
    • Leere Verzeichnisse
    • Fehlerhafte Symlinks
    Das Programm FSlint kann unter anderem Dateien mit identischem Inhalt finden. Dabei spielt es keine Rolle, ob die Dateien unterschiedliche Namen oder Erstellungsdaten haben.
    Das Programm FSlint kann unter anderem Dateien mit identischem Inhalt finden. Dabei spielt es keine Rolle, ob die Dateien unterschiedliche Namen oder Erstellungsdaten haben.

Die Änderung der Sprache klappt nicht bei Ubuntu?

Bei Ubuntu kann man mehrere Sprachen installieren. Dadurch werden sowohl das System, als auch viele Software-Tools in der gewünschten Sprache dargestellt. Diese Änderungen kannst du in den Systemeinstellungen im Bereich „Persönlich“ / „Sprachen“ vornehmen:

Bildschirmfoto vom 2013-08-16 09:50:16
Unter Ubuntu kannst Du mehrere Sprachpakete installieren.

Um die Sprache zu ändern, musst Du nur die gewünschte Sprache an die erste Stelle in der Sprach-Auflistung ziehen. Weitere Informationn dazu findest Du im UbuntuUsers Wiki.

Sollte beim nächsten Login immer noch die vorherige Sprache verwendet werden, ist es möglich, dass deine .profile-Datei die Änderung der Sprache verhindert. Das scheint besonders dann der Fall zu sein, wenn man mal die Ubuntu-Version 12.04 installiert hatte. Um das Problem zu beheben öffne deine .profile-Datei

gedit ~/.profile

und entferne/kommentiere diejenigen Befehle, welche die Konstanten für die Definition der Sprache setzten (bei mir war das System auf english eingestellt):

export LANGUAGE="en"
export LC_MESSAGES="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_COLLATE="en_US.UTF-8"

ändern zu:

#export LANGUAGE="en"
#export LC_MESSAGES="en_US.UTF-8"
#export LC_CTYPE="en_US.UTF-8"
#export LC_COLLATE="en_US.UTF-8"

Weitere Informationen gibt es im Blog von Christian Habermueller.

Informationen über Prozessoren unter Linux herausfinden

Manchmal ist es notwendig, genauere Informationen über den Rechner zu bekommen, auf dem man gerade arbeitet. Sofern man eine grafische Oberfläche zur Verfügung hat, sind diese Informationen meist mit einigen Mausklicks zu bekommen. Aber auch im Terminal lassen sich detaillierte Informtionen ausgeben.

Grafisch:
Bei Ubuntu Linux kann man z.B. auf die System-Schaltfläche, und im Anschluss auf „Über diesen Rechner“ klicken (alternativ: in den Systemeinstellungen im Bereich „System“ auf „Informationen“ klicken):

Bildschirmfoto vom 2013-08-16 08:24:00
Informationen über die Hardware Deines Computers kannst Du auch über die grafische Benutzeroberfläche bekommen.

Im Terminal:
Manch einer arbeitet allerdings auf Systemen, auf denen nicht zwangsläufig eine grafische Oberfläche zur Verfügung steht – z.B. wenn man sich im Terminal per SSH auf einen Server einloggt. In diesem Falle kann man sich aktuelle Informationen über die CPUs aus der Datei /proc/cpuinfo ausgeben lassen:

cat /proc/cpuinfo

oder:

more /proc/cpuinfo

Die unter „cpu MHz“ angegebene Zahl gibt allerdings nicht zwangläufig die maximal mögliche Taktfrequenz an, sondern nur die aktuell verwendete Taktfrequenz. Moderne Systeme regeln die Taktfrequenz herunter, wenn derzeit nur eine geringere Leistung benötigt wird (weitere Informationen). Um die maximale Leistung für die Prozessoren zu erzwingen, kann das Programm stress verwendet werden (siehe auch: linux.die.net).

Falls das Paket util-linux installiert ist, bekommst du detaillierte Informationen über den Terminal-Befehl:

lscpu

(siehe dazu auch Interpreting output of cat /proc/cpuinfo)