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.

Eine große Datei in viele kleine Dateien zerlegen

Ich hatte gerade eine sehr große Datei (3.3GB), die ich über eine langsame Internetverbindung auf einen Server verschieben wollte. Der Vorgang würde mehrere Stunden dauern. Die Wahrscheinlichkeit, dass der Upload unterbrochen würde, wäre relativ groß. In dem Falle müßte ich nochmal von vorne beginnen. Daher habe ich die Dateien in einzelne Dateien zerlegt. In diesem Artikel erkläre ich, wie man eine große Datei aufteilt und im Anschluss wieder zusammenfügt.

Ich habe eine Datei ergebnisse.zip, die ich in 10 MB große Stücke zerteilen möchte.

  1. Um den Erfolg überprüfen zu können, ermittle ich zunächst eine Prüfsumme (Hier: MD5-String) der Ausgangsdatei:
    md5sum ergebnisse.zip > ergebnisse.zip.md5
  2. Mit Hilfe des Programms split teile ich die Datei in 10MB große Stücke:
    split -b 10M ergebnisse.zip ergebnisse_split.zip.

    Dadurch werden viele Dateien erzeugt, die folgenden Aufbau haben:

    ergebnisse_split.zip.aa
    ergebnisse_split.zip.ab
    ergebnisse_split.zip.ac
    ergebnisse_split.zip.ad
    ...
    ergebnisse_split.zip.zy
    ergebnisse_split.zip.zz
    
  3. Nun kann man diese Dateien z.B. per SSH auf einem Server laden:
    scp ergebnisse_split.zip.* user@server.domain:~/zielordner

    Sollte nun der Vorgang unterbrochen werden, kann man im Anschluss einfach bei der Datei beginnen, bei der der Upload unterbrochen wurde.

  4. Nach erfolgtem Upload fügt man die Dateien mit Hilfe von cat einfach wieder zusammen:
    cat ergebnisse_split.zip.* > ergebnisse_cat.zip
  5. Nun muss nur noch geprüft werden, ob die zusammengefügte Datei den gleichen Inhalt wie die Ausgangsdatei hat. Dazu berechnet man erstmal die MD5-Summe:
    md5sum ergebnisse_cat.zip > ergebnisse_cat.zip.md5

    Wenn alles geklappt hat, stehen in ergebnisse.zip.md5 und ergebnisse_cat.zip.md5 die gleichen MD5-Summen.

  6. Weitere Möglichkeiten findest Du im Wiki von UbuntuUsers.

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.

Systemressourcen in der Symbolleiste von Ubuntu anzeigen

Ich sehe immer ganz gerne, was gerade auf meinem Rechner passiert. Wird gerade auf das Internet zugegriffen? Sind die Prozessoren ausgelastet?

Bildschirmfoto vom 2013-08-20 08:09:57
Die aktuelle Systemlast kann direkt in der Symbolleiste von Ubuntu dargestellt werden.

Dazu gibt es in den Quellen von Ubuntu den Systemmonitor „System Load Indicator„. Dieser zeigt Graphen für die Prozessor-, Arbeitsspeicher- und Auslagerungsspeicherlast sowie den Netzwerkverkehr direkt in der Symbolleiste an.

Dazu musst Du lediglich das Paket indicator-multiload installieren.

sudo apt-get install indicator-multiload

Um Informationen über die Hardware deines Computers zu bekommen, schaue dir den Artikel „Informationen über Prozessoren unter Linux herausfinden“ an.

Alternatives Programm: Conky

Nemo anstatt Nautilus als Dateimanager verwenden

Mit der Version 3.6 hat sich Nautilus (neuerdings „Files“), der Standard-Dateimanager von Gnome, drastisch geändert. Viele nützliche Funktionen sind ersatzlos gestrichen worden. Mir fehlen seither vor allem:

  • Die Baum-Ansicht. Dadurch konnte man durch „aufklappen“ den Inhalt eines Ordners betrachten, ohne diesen „betreten“ zu müssen.
  • Die Statusleiste. Darin wurde z.B. angezeigt, wieviel freier Speicherplatz noch im aktuellen Speichermedium vorhanden ist.
Bildschirmfoto vom 2013-08-16 18:52:59
Viele Funktionen wurden in Nautilus 3.6 ersatzlos entfernt.

In der Version 3.8 von Nautilus stehen scheinbar die oben genannten Funktionen wieder zur Verfügung (UbuntuUsers Forum). Bis diese Version für Ubuntu verwendet wird, habe ich mich entschieden „Nemo“ als Dateimanager zu verwenden. Nemo ist eine Weiterentwicklung von Nautilus 3.4. Alle in Nautilus 3.6 entfernten Funktionen sind In Nemo weiterhin vorhanden. Zudem wurden viele nützliche Funktionen hinzugefügt, wie z.B.:

  • Kontextmenü-Eintrag „Als Administrator öffnen“
  • Kontextmenü-Eintrag „Im Terminal öffnen“
Bildschirmfoto vom 2013-08-16 19:27:46
Der Dateimanager Nemo hat weiterhin eine Statusleiste, sowie die Möglichkeit Ordner aufzuklappen.

Installation und System-Integration

Die Installation von Nemo gestaltet sich allerdings etwas schwierig, da Nemo (noch) nicht in den offiziellen Quellen von Ubuntu zu finden ist. Im folgenden werde ich eine Möglichkeit zur Installation von Nemo vorstellen. Im Anschluss gebe ich noch einige Alternativen, die ich im Netz gefunden habe:

  1. Wie auf fandigital und webupd8 beschrieben wird, kann man das auf der Cinnamon/Nemo Download-Seite genannte Persönliche Paket Archiv (PPA) für die Installation verwenden:
    Im Terminal:

    # PPA hinzufügen
    sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
    # Paketquellen neu laden
    sudo apt-get update
    # Nemo, sowie die Integration des file-rollers installieren
    sudo apt-get install nemo nemo-fileroller

    In Synaptic:

    1. Bei „Einstellungen/Paketquellen“ im Reiter „Andere Software“ auf „Hinzufügen“ klicken, und folgenden Befehl angeben: ppa:launchpad.net/~gwendal-lebihan-dev/+archive/cinnamon-stable.
    2. Fenster schließen und im Hauptfenster auf „Neu laden“ klicken.
    3. Im Anschluss das Paket „nemo“ suchen und installieren. Das Paket „nemo-fileroller“ sollte automatisch mit installiert werden.

    Durch die Installation werden in der Datei /usr/share/applications/bamf-2.index folgende Einträge gemacht:

    cinnamon.desktop	/usr/bin/cinnamon-launcher		GNOME;	true
    cinnamon-menu-editor.desktop	cinnamon-menu-editor			true
    nemo.desktop	nemo %U		GNOME;Unity;	false
    nemo-home.desktop	nemo %U		GNOME;Unity;	false
    cinnamon2d.desktop	/usr/bin/cinnamon2d		GNOME;	true
    cinnamon-settings.desktop	cinnamon-settings		GNOME;	false
    nemo-autorun-software.desktop	nemo-autorun-software %u			true
    cinnamon-add-panel-launcher.desktop	/usr/share/cinnamon/applets/panel-launchers@cinnamon.org/cinnamon-add-panel-launcher.py			true
    nemo-mount-archive.desktop	/usr/lib/gvfs/gvfsd-archive file=%u			true
    nemo-folder-handler.desktop	nemo %U		GNOME;Unity;	true
  2. Nach der Installation werden die Ordner auf dem Desktop bereits mit Nemo geöffnet (eventuell musst Du Dich dazu ab- und wieder anmelden). USB-Sticks die in der Schnellstart-Leiste angezeigt werden und Ordner im Dash, werden allerdings weiterhin mit Nautilus geöffnet. Das hängt scheinbar damit zusammen, dass Nautilus standardmäßig für die Verwaltung der Desktop-Icons verwendet wird. Laut fanDigital muss noch festgelegt werden, dass auch diese Dateien mit Nemo geöffnet werden.Für Dein Benutzerkonto machtst du das über folgenden Befehl:
    # Aktuelle Einstellung erfragen
    xdg-mime query default inode/directory
    # Resultat: nautilus-folder-handler.desktop
     
    # Neue Einstellung setzen + efragen:
    xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
    xdg-mime query default inode/directory
    # Resultat: nemo.desktop

    Dadurch werden folgende Angaben zur Datei ~/.local/share/applications/mimeapps.list hinzugefügt:

    [Default Applications]
    inode/directory=nemo.desktop
    application/x-gnome-saved-search=nemo.desktop

    Du kannst diese Änderungen auch für die anderen Nutzer des Systems durchführen. Dazu musst du laut Ubuntu Hilfe-Seite und ASK Ubuntu-Forum die Behandlung der MIME-Types inode/directory und x-directory/normal in der Datei /usr/share/applications/defaults.list ändern (sofern vorhanden).
    Ich habe:

    inode/directory=nautilus-folder-handler.desktop

    geändert zu:

    inode/directory=nemo.desktop
    x-directory/normal=nemo.desktop

    ~/.local/share/applications/mimeapps.list

  3. Nun befindet sich (in der Regel) noch ein Verknüpfung zu Nautilus in der Starter-Leiste. Diese kannst Du entfernen und durch eine Verküpfung zu Nemo ersetzen (Nemo starten, mit der rechten Maustaste auf das Ordner-Sysmbol klicken und „Im Starter behalten“ auswählen).
    Bildschirmfoto vom 2013-08-18 15_44_09cut
    Die Verknüpfung zu Nautilus muss noch aus der Starter-Leiste entfernt und durch eine Verküpfung zu Nemo ersetzt werden.

    Analog zu der Anleitung für Nautilus im UbuntuUsers-Wiki, kannst du für Nemo ein erweitertes Kontextmenü im Starter erstellen. Dann werden die gespeicherten Nemo-Favoriten angezeigt, wenn Du in der Schnellstartleiste mit der rechten Maustaste auf das Symbol klickst.

Alternativen und Fehlersuche

  • Du kannst nemo (in einer etwas älteren Version) auch über die Ubuntu-backports installieren. Die backports müssen dazu zunächst in der Synaptic Paketverwaltung unter „Einstellungen“ / „Paketquellen“ im Reiter „Aktualisierungen“ aktiviert werden. Nach dem neu laden der Paketinformationen kannst Du dann das Paket nemo installieren.
  • In der oben stehenden Anleitung habe ich die MIME-Typen genauso aufgelistst, wie sie auf den verklinkten Quellen-Seiten genannt werden. Bei mir hat das auch funktioniert. Falls das bei Dir nicht klappen sollte, kannst Du versuchen die MIME-Typen wie sie z.B. für die Datei mimeapps.list verwendet werden, auch in die Datei defaults.list (und umgekehrt) zu schreiben.
  • Falls Du den Standard-Dateimanager durch Mausklicks ändern möchtest, kannst Du dies (wie auf der Ubuntu Hilfe-Seite vorgeschlagen) mit Hilfe des Paketes „exo-utils“ machen. Führe dazu nach der Installation von „exo-utils“ im Terminal folgenden Befehl aus:
    exo-preferred-applications

    Das Programm fügt zur Datei ~/.local/share/applications/mimeapps.list folgende Zeilen hinzu:

    [Added Associations]
    x-scheme-handler/file=exo-file-manager.desktop
    x-scheme-handler/trash=exo-file-manager.desktop

    Problem: Falls Du im Anschluss wieder versuchen solltest die oben beschriebenen Lösungen umzusetzten, musst Du zunächst diese Zeilen wieder entfernen.

  • Laut fanDigital kann man nautilus auch durch folgende Befehle davon ausschliessen, die Desktop-Icons zu verwalten:
    gsettings set org.gnome.desktop.background show-desktop-icons false
     
    gsettings set org.nemo.desktop show-desktop-icons true
  • Im UbuntuUsers-Wiki wird vorgeschlagen, dass man die Datei /usr/share/applications/nautilus-folder-handler.desktop mit Root-Rechten öffnen, und die Zeile
    Exec=nautilus %U

    ändern soll zu

    Exec=nemo %U

    Diese Lösung finde ich allerdings wenig optimal, da die Benennung der Datei dadurch irreführend wird. Schliesslich wird nemo und nicht, wie durch den Dateiname suggeriert, nautilus ausgeführt

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.