Ubuntu

Auf der Ubuntu-Web-Seite kann man zwischen drei verschiedenen Installations-CD's auswählen:

  1. Desktop - Arbeitsplatzinstallation mit grafischer Installationsführung
  2. Alternate - Arbeitsplatzinstallation mit alternativer (textbasierter) Installationsführung → hiermit ist es möglich sich eine komplett verschlüsselte Installation einzurichten, wie man sie meistens auf einem Laptop benötigt
  3. Server - Serverinstallation mit textbasierter Installationsführung

Der Mülleimer

Dateien werden üblicherweise nicht sofort gelöscht, wenn man sie über einen Dateimanager löscht. Sie werden stattdessen in den Ordner ~/.local/share/Trash/files verschoben.

Minimalinstallation

Die kleinste funktionierende Installation bekommt man, wenn man als erstes eine Standardinstallation von der Ubuntu-Server-CD durchführt!

Die kleinste komplette Desktop-Installation mit grafischer Oberfläche ist zur Zeit „Lubuntu“:

# aptitude install lubuntu-desktop

manchmal möchte man auch einen anderen WM, der icewm ist sehr klein und versteht die wichtigsten Tastenkombinationen, die man von Win95 kennt:

# aptitude install icewm

zuweilen sind diese zusätzlichen Pakete erwünscht:

# aptitude install firefox firefox-locale-de thunderbird thunderbird-locale-de mc rar zip unzip

verschlüsseltes System installieren

Um daraus eine Desktop-Installation zu machen, muss man mindesten das Paket „ubuntu-desktop“ installieren. Manchmal möchte man auch noch zusätzlich das Paket „gnome“ installieren.

verschlüsseltes Homeverzeichnis

Schon während einer Neuinstallation von Ubuntu bekommt man angeboten das komplette Homeverzeichnis verschlüsseln zu lassen.

Will man einen neuen Benutzer anlegen, der sofort ein verschlüsseltes Homeverzeichnis bekommt, dann macht man das mit diesem Kommando:

# adduser --encrypt-home fritz

Will man sein Homeverzeichnis später verschlüsseln, dann startet man einfach dieses Kommando:

# ecryptfs-migrate-home -u fritz

Jetzt ist es wichtig, dass sich der Benutzer fritz vor dem nächsten Reboot einmal (mit seinem neu verschlüsselten Home) anmeldet!

Zum Abschluss der Installation wird man aufgefordert die Passphrase zu sichern/notieren, damit man im Falle der Fälle wieder an seine Daten kommt, sollte das System kaputt sein, oder man die Platte in einen anderen PC einbinden möchte.

Hat man sich die Passphrase allerdings während der Installation nicht gesichert, oder die Mitschrift verlegt, kann man sich mit diesem Kommando jederzeit, im laufenden Betrieb, die Passphrase anzeigen lassen:

# ecryptfs-unwrap-passphrase

Plan-B

Hat man für das Homeverzeichnis (“/home“) eine eigene Partition vorgesehen und nur auf der root-Partition (“/“) ein neues System installiert, dann kann man das verschlüsselte Homeverzeichnis, auch ohne notierter Passphrase, wieder im System einbinden.

Als erstes muss man den entsprechenden Benutzer („fritz“) anlegen (zu beachten ist, dass der Benutzer seine alten UID und GID wieder bekommen soll):

# useradd fritz
# passwd fritz

jetzt müssen noch die entsprechenden Werkzeuge installiert werden:

# aptitude install ecryptfs-utils

Jetzt sollte der Benutzer nach dem Login seine Daten wieder zurück haben.

Zugriff von einer LiveCD aus

Kernelversion abfragen

aktuell laufende Kernelversion ist die 2.6.32-22.33:

# uname -rv
2.6.32-22-server #33-Ubuntu SMP Wed Apr 28 14:34:48 UTC 2010

neueste installierte Kernelversion ist die 2.6.32-22.35:

# aptitude show linux-image-$(uname -r) | awk '/^Version:/ {print $NF}'
2.6.32-22.35

Upgrade-Info

Release-Upgrade

hier muss man einstellen, was man haben will:

# vi /etc/update-manager/release-upgrades
...
#Prompt=normal
Prompt=lts

…will man jedes Update mitmachen, dann muss man normal einstellen, meine Erfahrung mit Ubuntu hat jedoch gezeigt, dass nur die lts-Versionen sauber funktionieren.

Update:

# aptitude update && aptitude -y safe-upgrade && aptitude clean

Upgrade:

# aptitude dist-upgrade
# do-release-upgrade

von 10.10 auf 11.04

Nach dem Update war das „Lautstärkeregler Icon“ aus der oberen Leiste weg. Und die beiden Lautsprecher haben auch keinen Mux mehr von sich gegeben.

Nach Stunden hatte ich aber für beide Probleme eine Lösung gefunden:

  1. mit der „rechten Maustaste“ in die obere Leiste klicken → „zum Panel hinzufügen“ → „Benachrichtigungsfeld“;
  2. gnome-volume-control aufgerufen und von „AnalogStereo Duplex“ auf „AnalogSurround 5.1 Output“ umgestellt;

Drauf gekommen bin ich, weil die beiden Lautsprecher mit diesem Kommando:

# speaker-test -D surround51 -c6
speaker-test 1.0.24.2
Wiedergabe-Gerät ist surround51
Stream-Parameter sind 48000 Hz, S16_LE, 6 Kanäle
Verwende 16 Oktaven rosa Rauschen
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 3 bis 5461
Periodengröße von 3 bis 5461
Verwende maximale Puffergröße 5460
Perioden = 4
gesetzt: period_size = 1365
gesetzt: buffer_size = 5460
 0 - Vorne links
 4 - Mitte
 1 - Vorne rechts
 3 - Hinten rechts
 2 - Hinten links
 5 - Bass

bei 3 - Hinten rechts und 2 - Hinten links ein Rauschen ausgegeben haben.

Bei Stereo werden aber nur und bedient:

# speaker-test -D surround51 -c2
speaker-test 1.0.24.2
Wiedergabe-Gerät ist surround51
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
Verwende 16 Oktaven rosa Rauschen
Rate ist 48000 Hz (angefordert: 48000 Hz)
Puffergröße von 3 bis 5461
Periodengröße von 3 bis 5461
Verwende maximale Puffergröße 5460
Perioden = 4
gesetzt: period_size = 1365
gesetzt: buffer_size = 5460
 0 - Vorne links
 1 - Vorne rechts

Also musste ich nur eine Einstellung finden, bei der jeweils die linken Kanäle und die rechten Kanäle gemischt werden.

weitere Infos gibt es hier:

von 11.04 auf 11.10

Bei einem (frühen) Upgrade von 11.0411.10 ist zu beachten, dass das Dateisystem JFS aus dem Kernel (3.0) entfernt wurde. Es gibt also seit Kernel 3.0 bei Ubuntu keine native JFS-Untestützung mehr, dafür kann man aber jetzt BtrFS verwenden.

Wenn man in dem Fall ein Upgrade macht, gibt es nach dem Reboot eine Kernel-Panic! Man muss also vorher die Konfigurationsdaten sichern und dann am besten das root-FS (“/“) neu installieren.

Auf anderen Partitionen (z.B. “/home“) kann JFS bei behalten werden, da nur das Dateisystem auf dem der Kernel liegt ein Ext4 oder ein BtrFS sein sollte.

Man kann nach der Neuinstallation die jfsutils nachinstallieren und dann kann man alle anderen JFS-Partitionen wieder nutzen.

⇒ Nachtrag: Zum Upgrade von 11.0412.04 wird der Zwischenschritt 11.10 eingelegt und jetzt (nach erscheinen von 12.04) scheint der 11.10-er Kernel auch JFS wieder zu unterstützen. Möglicherweise wurde es in der aller ersten Version nur vergessen.

Weiterhin ist zu beachten, dass BtrFS und JFS (möglicherweise noch weitere Dateisysteme) in Ubuntu 11.10 sehr sehr langsam sind…

von 11.10 auf 12.04

Jetzt (in 12.04) scheinen die Geschwindigkeit der Dateisysteme BtrFS und JFS wieder mit normaler Geschwindigkeit zu laufen…

Gnome statt Unity

Gnome

Allgemeines

Pakete, die man nicht braucht:

# aptitude purge apparmor network-manager network-manager-gnome network-manager-pptp network-manager-pptp-gnome

Pakete, die man praktisch immer braucht:

# aptitude -y install openssh-server mc smartmontools screen bmon star ethtool rsyslog rsyslog-relp

Pakete die man fast immer braucht:

# aptitude -y install vobcopy unattended-upgrades cron-apt update-notifier smartmontools openssh-server screen ntp smplayer mencoder x264 thunderbird-locale-de thunderbird-gnome-support thunderbird-calendar-timezones unzip unrar mc

Pakete die man ggf. braucht:

# aptitude -y install smartmontools mpt-status

Gelegentlich bekommt man in Ubuntu soeinen Fehler:

dpkg: Fehler beim Parsen, in Datei "/var/lib/dpkg/available" nahe Zeile xxxx Paket »modutils«:
Fehler in Versionszeichenkette "yyyy:": nichts hinter Doppelpunkt in Versionsnummer
dpkg: parse error, in file "/var/lib/dpkg/available" near line xxxx package »modutils«:
error in Version string "yyyy:": nothing after colon in version number

Lösen kann man es durch das Ausführen der folgenden Befehle:

# dpkg --clear-avail
# dpkg-reconfigure apt

Apt-Repositorium selber bauen

In diesem Artikel wird die Methode mit „apt-ftparchive“ aus dem Paket „apt-utils“ vorgestellt.

Alternativ kann man sich auch eines mit „reprepro“ aufbauen.

OpenNTPD

Dateisystemüberprüfung bei jedem Start ausführen

# vi /etc/rc.local
touch /forcefsck

Netzwerkkonfiguration

Prinzipiell kann man dem Rechner sagen, dass er sich die IP-Aresse von einem DHCP-Server holt (wenn einer da ist) oder man gibt ihm einfach eine statische IP-Adresse.

Zu beachten ist hierbei, dass der DHCP-Server im selben Netz stehen muss, wie die Rechner, die von ihm eine Adresse bekommen sollen!

DHCP

Im einfachsten Fall trägt man nur das Loop-Device ein, dann wird auf allen Netzwerkkarten versucht per DHCP eine IP-Adresse zu bekommen:

# vi /etc/network/interfaces
auto lo
iface lo inet loopback

Hat man mehr als eine Netzwerkkarte im Rechner, will aber nur auf einer Karte per DHCP eine Adresse bekommen, dann muss das explizit gesagt werden:

# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

statische IP-Adresse

# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 192.168.1.254

Ubuntu Bootmeldungen aktivieren

Bei Ubuntu werden die Bootmeldungen nicht angezeigt, das finde ich echt schlimm! Im folgenden sehen Sie wie man ihm das austreiben kann.

Damit bei Ubuntu die Bootmeldungen ordentlich angezeigt werden, ist nur eine Anpassung nötig:

# sed -i 's/^GRUB_HIDDEN_TIMEOUT_QUIET.*/GRUB_HIDDEN_TIMEOUT_QUIET=false/;s/^GRUB_CMDLINE_LINUX_DEFAULT.*/GRUB_CMDLINE_LINUX_DEFAULT=""/' /etc/default/grub

vorher:

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

nachher:

GRUB_HIDDEN_TIMEOUT=10
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_CMDLINE_LINUX_DEFAULT=""

Beim nächsten Start des Rechners, kann man den Bootprozess mitverfolgen und Fehler, die beim booten auftreten, schnell erkennen.

Damit die Ausgabe schon beim nächsten Bootvorgang schon zu sehen sind und man nicht auf das nächste Kernelupdate warten muss, kann man dieses Kommando ausführen:

# aptitude -y reinstall grub-common grub-pc os-prober''

Den richtigen Standard-View-er in Ubuntu aktivieren

In Ubuntu ist standardmäßig der View'er des GNU Midnight Commander aktiv, mit dem kann man aber kaum richtig arbeiten.

Um den richtigen View'er aus dem vi-Paket zu aktivieren, braucht man nur die folgenden beiden Kommandos abschicken:

So mal ganz fix den Sym-Link umbiegen:

# rm -f /etc/alternatives/view
# ln -s /usr/bin/vim.tiny /etc/alternatives/view

So geht es richtig:

# man update-alternatives

Standard-View-er setzen:

# update-alternatives --config view
Es gibt 3 Auswahlmöglichkeiten für die Alternative view (welche /usr/bin/view bereitstellen).
  Auswahl      Pfad                    Priorität Status
------------------------------------------------------------
  0            /usr/bin/mcview-debian   25        Auto-Modus
  1            /usr/bin/mcview-debian   25        manueller Modus
  2            /usr/bin/see             1         manueller Modus
  3            /usr/bin/vim.tiny        10        manueller Modus
Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 3
update-alternatives: Verwende /usr/bin/vim.tiny, um /usr/bin/view (view) in manueller Modus bereitzustellen.

Den richtigen Standard-Editor in Ubuntu aktivieren

In Ubuntu ist standardmäßig der Editor nano aktiv (kompatibel zum joe).

Manche mögen ihn auch, ich gebe zu, bevor ich den vi lieben gelernt habe, war der joe mein Lieblingseditor.

Aber das ist schon ca. 9 Jahre her…

Den Standardeditor stellt man in Ubuntu wie folgt wieder auf den vi (den einzig wahren Unix/Linux-Editor) um. ;-)

So mal ganz fix den Sym-Link umbiegen:

# rm -f /etc/alternatives/editor
# ln -s /usr/bin/vi /etc/alternatives/editor

So geht es richtig:

# man update-alternatives

Standard-Editor setzen:

# update-alternatives --config editor
Es gibt 4 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen).
  Auswahl      Pfad                    Priorität Status
------------------------------------------------------------
  0            /bin/nano                40        Auto-Modus
  1            /bin/ed                 -100       manueller Modus
  2            /bin/nano                40        manueller Modus
  3            /usr/bin/mcedit-debian   25        manueller Modus
  4            /usr/bin/vim.tiny        10        manueller Modus
Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 4
update-alternatives: Verwende /usr/bin/vim.tiny, um /usr/bin/editor (editor) in manueller Modus bereitzustellen.

den Standard-Editor Benutzerabhängig konfigurieren

Bei Ubuntu kann man das z.B. so machen:

# echo 'SELECTED_EDITOR="/bin/ed"' > ~/.selected_editor

oder

# echo 'SELECTED_EDITOR="/usr/bin/vim.tiny"' > ~/.selected_editor

oder

# echo 'SELECTED_EDITOR="/usr/bin/vim.basic"' > ~/.selected_editor

oder

# echo 'SELECTED_EDITOR="/bin/nano"' > ~/.selected_editor

Start-Stop-Scripte

Das starten und stoppen von diensten funktioniert hier, genauso wie bei RedHat und anderen Linux-Distributionen.

Zum Beispiel starte und stopt man den Apache so:

# /etc/init.d/apache2 start
# /etc/init.d/apache2 status
# /etc/init.d/apache2 stop

Aber beim aktivieren bzw. deaktivieren der Start-Stop-Scripte stricken die Debianer Sonderlocken!

Zum Glück kann man auch auf Ubuntu das von RedHat bekannte chkconfig installieren:

# aptitude install chkconfig lsb

Allerdings erfordert chkconfig die LSB, und die wiederum erfordern einen LSB-konformen Header in den Start-Stop-Scripten.

in dem ungefähr soetwas steht wie das folgende:

Allgemein:

### BEGIN INIT INFO
# Provides:          <Dienstname>
# Required-Start:    <das muss schon laufen>
# Required-Stop:     <das muss noch laufen>
# Should-Start:      <Software die schon laufen muss>
# Should-Stop:       <Software die noch laufen muss>
# Default-Start:     <Start-Run-Level>
# Default-Stop:      <Stop-Run-Level>
# Short-Description: <Dienstbeschreibung>
### END INIT INFO

konkret für Squid:

### BEGIN INIT INFO
# Provides:          squid
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Squid HTTP Proxy
### END INIT INFO

So wird ein neuer Dienst bei RedHat zum init-System hinzugefügt:

# chkconfig --add <Dienstname>
# chkconfig --add squid

So wird ein neuer Dienst bei RedHat aktiviert:

# chkconfig --level <Start-Run-Level> <Dienstname> on
# chkconfig --level 2345 squid on

So wird ein Dienst bei RedHat deaktiviert:

# chkconfig --level <Dienstname> off
# chkconfig --level <Start-Run-Level> <Dienstname> off
# chkconfig --level squid off
# chkconfig --level 2345 squid off

So wird ein Dienst bei RedHat aus dem init-System entfernt:

# chkconfig --delete <Dienstname>
# chkconfig --delete squid

Leider ignorieren die Debianer (sowie Ubuntu und Co.) den LSB-Header, bei Debian und Co. muss man die Infos auf der Kommandozeile übergeben!?!?!?!?

Das ist eigentlich Schwachsinn!

Deshalb muss man diese Infos immer auf der Kommandozeile mit angeben…

Dienst deaktivieren (bis zum nächsten Upgrade):

# update-rc.d -f <Dienstname> remove

Dienst aktivieren:

# update-rc.d <Dienstname> defaults

So wird ein neuer Dienst bei Ubuntu zum init-System hinzugefügt:

# update-rc.d <Dienstname> defaults

oder

# update-rc.d <Dienstname> defaults <Start-Position in der Reihenfolge aller Dienste> <Stop-Position in der Reihenfolge aller Dienste>

oder

# update-rc.d <Dienstname> start <Start-Run-Level> .

oder

# update-rc.d <Dienstname> stop <Stop-Run-Level> .

oder

# update-rc.d <Dienstname> start <Start-Run-Level> . stop <Stop-Run-Level> .

und jetzt konkret am Beispiel von Squid:

Dienst deaktivieren (bis zum nächsten Upgrade):

# update-rc.d -f squid remove

Dienst aktivieren:

# update-rc.d squid defaults

oder

# update-rc.d squid defaults 30 30

oder

# update-rc.d squid stop 0 1 6 .

oder

# update-rc.d squid start 2 3 4 5 . stop 0 1 6 .

Man kann auch das von Ubuntu empfohlene Front-End zu update-rc.d installieren:

# aptitude install rcconf

squid ist das einfachste Werkzeug für diesen Zweck aber leider erscheinen in rcconf einige Dienste nicht… :-(

Upstart

Ubuntu stellt allmählich vom Upstart um.

Der TFTP-Dienst wird zum Beispiel über folgenden Eintrag gesteuert:

# vi /etc/default/tftpd-hpa
RUN_DAEMON="no"

Alle Upstart-Dienste mit Status-Info auflisten:

# initctl list
tftpd-hpa start/running
hostname stop/waiting

Wenn ein Dienst das Kommando status unterstützt, kann man seinen Status so abfragen:

# service tftpd-hpa status
tftpd-hpa start/running

Alle Upstart-Dienste mit Status-Kommando aufrufen (nicht alle Dienste unterstützen das Status-Kommando):

# service --status-all
 [ ? ]  hostname
 [ - ]  lm-sensors
 [ + ]  logd
 [ + ]  ssh
 [ ? ] - Status-Kommando wir dnicht unterstützt / Status nicht ermittelbar
 [ - ] - Dienst wurde angehalten
 [ + ] - Diensta wurde gestartet

automatische Update's

Kommandozeile

universell

# aptitude install cron-apt unattended-upgrades
# ls -l /etc/cron-apt/
drwxr-xr-x 2 root root 4096 2010-04-15 11:43 action.d
-rw-r--r-- 1 root root 6261 2010-04-15 11:40 config
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 config.d
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 errormsg.d
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 logmsg.d
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 mailmsg.d
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 mailonmsgs
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 syslogmsg.d
drwxr-xr-x 2 root root 4096 2008-11-05 20:33 syslogonmsgs
# ls -l /etc/cron-apt/action.d
-rw-r--r-- 1 root root 18 2008-11-05 20:33 0-update
-rw-r--r-- 1 root root 64 2008-11-05 20:33 3-download
-rw-r--r-- 1 root root 16 2010-04-15 11:43 9-install
# vi /etc/cron-apt/config
# vi /etc/apt/apt.conf.d/10periodic
APT::Periodic::Unattended-Upgrade "1";
# vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Unattended-Upgrade "1";
# vi /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
        "Ubuntu lucid-security";
        "Ubuntu lucid-updates";
};

Gnome

Gnome

Multimedia

Leider sind viele Codec's wie z.B. MP3 oder DivX nach der BS-Installation nicht vorhanden. Dafür muss man z.B. ein zusätzliches Repository einbinden.

per Medibuntu

Allerdings soll es auch etwas einfacher gehen (hab ich aber noch nicht getestet).

beim ersten Mal

ein neues Repository einrichten, damit man alle Filme ansehen kann:

# wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list -O /etc/apt/sources.list.d/medibuntu.list
# aptitude update
# aptitude install medibuntu-keyring
# aptitude update
# aptitude -y safe-upgrade
# aptitude autoclean
# aptitude -y install app-install-data-medibuntu apport-hooks-medibuntu libdvdcss2 non-free-codecs $(aptitude search codecs | awk '/w[0-9]*codecs/ {print $2}')
nach einem Release-Update

Nach einem Release-Update ist das Repository deaktiviert, deshalb müssen folgende Kommandos nach einem Release-Update erneut ausgeführt werden:

# wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list -O /etc/apt/sources.list.d/medibuntu.list
# aptitude update
# aptitude install medibuntu-keyring
# aptitude update
# aptitude -y safe-upgrade
# aptitude autoclean

Ubuntu-Paketabhängigkeitshölle

Raus aus der Ubuntu-Paketabhängigkeitshölle

von Dominik Wagenführ

Wer ein „normales“ Ubuntu-System, d. h. eines mit Internetanschluss besitzt, wird das Problem nicht kennen. Alle anderen Nutzer sind aber sicherlich schon des Öfteren verzweifelt, als sie ein Paket installieren wollten, aber keinen direkten Internetzugang hatten. Das Paket herunterladen ist schön und gut, aber es fehlen immer die ganzen Abhängigkeiten.

Die native Lösung, bei der man ein Paket nach dem anderen per USB-Stick von einem PC mit Internetanschluss zu dem ohne trägt, ist alles andere als komfortabel. Die zweite direkte Lösung wäre die Installation der Pakete auf dem ersten Ubuntu-System, um diese dann per USB-Stick zu System B zu tragen. Der Haken an der Sache: Welche Pakete waren schon auf System 1 installiert, welche sind wirklich notwendig? Wenn man zwei ähnliche Systeme betreibt, ist das meist noch ein lösbares Problem, aber wenn diese sich total unterscheiden, z. B. ein Ubuntu-System als Basis und ein Kubuntu-System als Ziel, dann ist unklar welche GTK- oder GNOME-Abhängigkeiten nachinstalliert werden müssen.

Aus diesem Grund wäre es gut, wenn man alle Pakete für eine Offline-Installation herunterladen kann, die man als Abhängigkeiten für ein zu installierendes Paket benötigt. Das klingt nach Rekursion und genau darin liegt die Lösung.

Hinweis: Die hier vorgestellte Lösung sollte auf allen Systemen funktionieren, die APT für die Paketverwaltung einsetzen (z. B. Debian, alle Ubuntu-Derivate etc.).

so ermittelt man die Abhängigkeiten für "mc"

# apt-cache depends -i mc
mc
  Hängt ab: libc6
  Hängt ab: libglib2.0-0
  Hängt ab: libgpm2
  Hängt ab: libslang2

Liste der Abhängigkeiten erstellen

Liste der gewünschten Patete erstellen:

# vi pakete.txt
mc
screen
star

Die Abhängigkeiten der gewünschten Pakete ermitteln:

# xargs -a pakete.txt apt-cache depends --recurse -i ${1} | nawk '{ print $NF }' | sort | uniq > pakete_alle.txt

Pakete saugen

Jetzt geht es zum saugen:

Durch den Parameter “-d“ wird nicht installiert und durch den Parameter “–reinstall“ werden auch die schon installierten Pakete erneut gesaugt:

# xargs -a pakete_alle.txt apt-get install --reinstall -d ${1}

Jetzt liegen alle Pakete im Verzeichnis /var/cache/apt/archives.

Es geht auch mit dem neuen Programm „aptitude“:

# aptitude update
# aptitude download $(cat Pakete_alle.txt)

Aptitude legt die gesaugten Pakete ins aktuelle Verzeichnis.

Installation der Pakete

Auf dem einsamen Rechner werden die Pakete dann vom USB-Stick installiert:

# dpkg -i *.deb
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki