this-edv

Backup & Restore mit dpkg

Erst gestern war ich wieder auf der Suche nach dem Befehl um eine Liste der aktuell installierten Pakete zu ziehen.

Da ich das immer vergesse, schreibe ich mir das jetzt einfach mal auf. ;-)

 

Mit folgendem Befehl zieht man sich eine Liste aller installierten Pakete:

sudo dpkg --get-selections > selections

Die Liste sieht in etwa so aus:

adduser install
alsa-base install
alsa-utils install
apt install
apt-utils install
aptitude install
aptitude-common install
...

Diese Liste ist eine simple Textdatei die man sich leicht wegkopieren kann.

Wichtig: Falls vorher Pakete aus anderen Quellen installiert wurden, sollten diese auch in der /etc/apt/sources.list stehen.

 

Mit dem folgenden Befehl wird die Paketliste auf dem neuen System eingelesen:

sudo dpkg --set-selections < selections

In einigen Fällen kann es dazu kommen das die folgende Fehlermeldung erscheint.

dpkg: warning: package not in database at line 317: wwwconfig-common
dpkg: warning: package not in database at line 318: xfonts-encodings
dpkg: warning: package not in database at line 318: xfonts-mathml
dpkg: warning: package not in database at line 318: xfonts-terminus
dpkg: warning: package not in database at line 318: xfonts-utils
dpkg: warning: package not in database at line 318: xinetd
...

In diesem Fall sollte man schauen ob das Programm dselect installiert ist und folgenden Befehl absetzen:

dselect update

 

Anschließend startet man die Installation:

sudo apt-get update && sudo apt-get -u dselect-upgrade

 

 

 

 

ncdu - Festplattenbelegung überprüfen

Ich war schon lange auf der Suche nach einem Tool, welches einem unter Linux auf den ersten Blick anzeigt welcher Ordner bzw. welches Filesystem stark belegt ist.

Vor kurzem gab mir ein Kollege den Tip mal ncdu auszutesten.

Das Programm ist in C geschrieben und benutzt ncurses.

Es lässt sich leicht über den Paketmanager (Ubuntu / Debian) installieren und ist in der Shell interaktiv zu bedienen.

user@server: ~ > ncdu /

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help
-------------------------------------------------------------
3.4GiB [##########] /usr 2.8GiB [######## ] /home 1.8GiB [##### ] /var 646.6MiB [# ] /opt 183.2MiB [ ] /lib 109.2MiB [ ] /root 31.8MiB [ ] /boot 9.0MiB [ ] /sbin 8.8MiB [ ] /etc

Aptitude - Bestimmte Pakete von der Installation ausklammern

Wer von Euch mehrer Paketquellen(Sources) benutzt, hatte bestimmt schon mal den Fall das die Abhängigkeiten durcheinandergekommen sind.

Für meinen nginx + php Webserver nutze ich die Paketquellen von doteb.org.

Da ich für bestimmte Tools noch einen MariaDB Server benötige, nutze ich auch dessen Paketquellen.

Jetzt hatte ich das Problem, das die Pakete mysql-common und libmysqlclient18 bei doteb.org aktueller waren, aber aufgrund der Abhängigkeiten zum MariaDB Server nicht installiert werden konnten.

Für mich kam da nur die folgende Lösung in Frage.

 

Mit dem Befehl "aptitude versions", kann man sich die aktuell verfügbaren Versionen anzeigen lassen.

user@server: ~ > aptitude versions mysql-common
Package mysql-common:
p 5.x.xx-0+wheezy1 stable 500
p 5.x.xx-0+wheezy1 stable 500
id 5.x.xx+maria-1~wheezy <NULL> 500
pB 5.x.xx-1~dotdeb.1 
user@server: ~ > aptitude versions libmysqlclient18
Package libmysqlclient18:
p 5.y.yy-0+wheezy1 stable 500
p 5.y.yy-0+wheezy1 stable 500
i 5.y.yy+maria-1~wheezy <NULL> 500
p 5.y.yy-1~dotdeb.1

 

Und mit dem Befehl "aptitude forbid-version" kann man die zu sperrenden Versionen ausklammern.

user@server: ~ > aptitude forbid-version mysql-common=5.x.x-1~dotdeb.1
user@server: ~ > aptitude forbid-version libmysqlclient18=5.y.yy-1~dotdeb.1

 

Home