[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ weiter ]
Die einfache Antwort lautet: apt-get install paketname
Wenn das Paket nur lokal und nicht auf den Debian-Servern vorliegt, kannst Du folgenden Befehl verwenden: dpkg -i /pfad/zum/paket
Das lässt sich ziemlich einfach mit dpkg -S foobar beantworten. Das Paket muss dazu installiert sein!
Suchst Du eine Datei, die noch nicht installiert ist, kannst Du Dir die Datei debian/dists/$DIST/Contents-$ARCH.gz von einem Debian-FTP-Server holen und darin suchen:
zgrep etc/init.d/networking Contents-$ARCH.gz
etc/init.d/networking base/netbase
$DISTS steht für den Codenamen der Debian-Version (potato, woody oder sid bzw. stable, testing oder unstable). $ARCH steht für die Architektur (i386, sparc, alpha etc.).
Gelegentlich lässt sich mit den oben angegebenen Methoden das zugehörige Paket nicht finden. In diesem Fall kann das Formular unter der Adresse http://www.debian.org/distrib/packages verwendet werden. ("Search the Contents of the Latest Release").
Eine weitere (bessere) Methode ist apt-file:
apt-get install apt-file
apt-file update
apt-file search DATEINAME
Zunächst legst Du die Pakete am besten alle in ein (oder wenige) Verzeichniss auf Deiner Platte. Dann brauchst Du für jedes Verzeichnis eine Datei Packages.gz, diese enthält Informationen darüber, welche Pakete
sich in diesem Verzeichnis befinden. Erstellt wird sie mit:
cd /der/pfad/zu/den/debs
dpkg-scanpackages ./ /dev/null |gzip > Packages.gz
Natürlich muß diese Datei jedesmal neu erzeugt werden, wenn Du neue Pakete in dem Verzeichnis ablegst. In die /etc/apt/sources.list musst Du noch den Pfad zu den Paketen eintragen: deb
file:/der/pfad/zu/den/debs ./
und anschliessend apt-get update aufrufen. Jetzt können die Paket mit dem Befehl apt-get install paketname installiert werden.
Du hast folgende Möglichkeiten
Konfigurationsdatei aus paket.deb raussuchen:
$ cd /tmp
$ ar -x /var/cache/apt/archives/paket.deb
$ tar zxvf data.tar.gz
$ cd etc/
[Datei suchen und heraus kopieren]
oder:
* `mc` starten
* mit dem Cursor die deb-Datei markieren, <Enter> drücken
* mit <F5> lassen sich Dateien aus dem Paket herauskopieren
Die 'kill-em-all' Methode. Komplettes Paket samt Konfigurationsdateien entfernen und neuinstallieren:
$ dpkg --purge paketname # entfernt alles samt conffiles
$ apt-get install paketname
Alle Konfigurationsdateien mit dem default überschreiben:
$ apt-get -d install paketname
$ dpkg -i --force-confnew /var/cache/apt/archives/paket.deb
dpkg --fsys-tarfile:
dpkg --fsys-tarfile paket.deb | tar x /etc/paket.conf -C /
Du hast offenbar ein Paket für testing oder unstable erwischt, das unter anderem gegen eine neuere libc gelinkt ist. Du hast folgende Lösungsmöglichkeiten:
1. Wenn Deine deb-src-Einträge in der /etc/apt/sources.list auf testing/unstable verweisen, genügt: fakeroot apt-get -b source foo
2. Du nimmst den Quelltext des Paketes für testing/unstable und kompilierst es selbst:
$ mkdir /tmp/build-foobar
$ cd /tmp/build-foobar
$ dpkg-source -x foo_0.8-15.dsc
$ cd foo-0.8
$ dpkg-buildpackage -uc -us -rfakeroot -b
Das fertige Pakete liegt dann in /tmp und du kannst es als root installieren. Im letzten Fall musst du evtl. die zum Kompilieren benötigten Pakete nachinstallieren. Diese sind in der Datei
foo-0.8/debian/control in der Zeile 'Build-Depends:' aufgelistet.
2. Jemand anders hat sich schon die Arbeit gemacht. In der Liste Various UNOFFICIAL sources for APT sind einige Quellen
aufgelistet.
Vorsicht! Diese Pakete sind kein offizieller Bestandteil von Debian und deshalb auch nicht so gut ausgetestet. Wenn Du einen Fehler findest, gehört der Bugreport daher auch nicht ins
offizielle Bug Tracking System. Beachte den Abschnitt Important warning und lies die README-Dateien!
Die komplette Fehlermeldung lautet:
dh_testdir
make: dh_testdir: Kommando nicht gefunden.
make: {*}{*}{*} {[}clean{]} Fehler 127
Dir fehlt das Paket 'debhelper', es enthält die nötigen Tools um das packen von Debian Binär-Paketen zu automatisieren. Du kannst es mit apt-get install debhelper installieren.
Damit die Erstellung von Binär-Paketen aus Quellcodepaketen funktioniert müssen außerdem eine Reihe weiterer Pakete installiert sein. Am einfachsten ist es, dazu das Paket 'build-essential' zu installieren, das Abhängigkeiten zu den benötigten Paketen enthält.
Neuere Quellcodepakete geben in den Paketinformationen außerdem so genannte 'Build-Dependencies' an, das sind Pakete, die neben 'build-essentials' ebenfalls installiert werden müssen. Neuere Versionen von
'apt-get' installieren die benötigten Pakete automatisch mit, wenn apt-get zur Installation eines Quellcodepakets folgendermaßen aufgerufen wird: apt-get build-dep Paketname
Wobei 'Paketname' natürlich durch den Namen des zu installierenden Quellcodepakets zu ersetzen ist.
Es gibt sogenannte task-Pakete die alle zu einem 'Thema' benötigten Pakete automatisch auswählen und installieren. Zum Beispiel gibt es task-Pakete für X, Gnome, KDE, eine C Programmierumgebung, ein chinesisches System usw. Mit dem Programm 'tasksel' kannst Du Dir eine Liste der verfügbaren task-Pakete anzeigen lassen und sie zur Installation auswählen.
Ansonsten hilft eine manuelle Suche mit apt-cache search foo | grep bar oder mit den Suchfunktionen von dselect oder stormpkg (grafischer Paket-Manager ab Woody).
Gelegentlich ist lediglich der Name einer zu installierenden Datei bekannt und das zugehörige Paket lässt sich, mit den oben angegebenen Methoden, nicht finden. In diesem Fall kann das Formular unter der Adresse
http://www.debian.org/distrib/packages verwendet werden. ("Search the Contents of the Latest Release").
Diese Frage lässt sich natürlich nicht so pauschal beantworten. Du wirst ein paar Dokumente und Manpages lesen müssen. Gute Startpunkte sind:
Debian Packaging Manual (oder hier)Gut verpackt ist halb gewonnenDebian New Maintainers Guide oder apt-get install task-debian-devel und offline lesen. Es gibt auch eine deutsche Übersetzung oder (ab woody) apt-get
install maint-guide-de
Die Versionsnummern entsprechen dem Format:
[epoch:]upstream_version[-debian_revision]
'epoch' ist eine einstellige Zahl die es erlaubt Fehler in Versionsnummern von älteren Paketen auszubessern und das Nummerierungsformat zu ändern. 'upstream_version' ist die Versionsnummer des eigentlichen Programmes aus dem das Debian-Paket erzeugt wurde. 'debian_revision' ist die Versionsnummer des Debian-Pakets.
Beispiel an fetchmail 5.3.3-1.2: 5.3.3 ist die Versionsnummer von fetchmail die der fetchmail-Autor vergeben hat. -1.2 ist die Versionsnummer des fetchmail-Debian-Pakets,
die der Maintainer des fetchmail-Pakets für Debian vergeben hat.
Siehe auch Chapter 4 'Version numbering' der Debian Policy
Seit Debian 3.0 (woody) gibt es dafür die Programme debfoster und deborphan. Lies bitte die Manuals. (Irgendwann soll diese Funktion wohl auch in apt integriert werden.)
Wirf einen Blick auf die Programme cruft und tiger, beide können dir dabei hilfreich zur Seite stehen. Sei aber sehr vorsichtig und prüfe dreimal, ehe du wirklich etwas löscht,
beide Programme liefern falsche Treffer.
Ja, das geht tatsächlich. Du brauchst dazu das Paket dpkg-repack, mit apt-get install dpkg-repack kannst Du es installieren. Lies bitte das Manual.
Ja, mit dpkg --get-selections "*" > packetlist wird die Paketliste in der Datei packetlist gespeichert. "*" ist nötig, damit auch die Informationen über
deinstallierte Pakete mit ausgegeben werden.) Diese Liste kannst Du dann mit dem Befehl dpkg --set-selections < packetlist auf ein anderes System übertragen. Anschliessend musst Du noch dselect
install ausführen.
dpkg -l lange Paketnamen kürzt?Am einfachsten, indem du der Umgebungsvariable COLUMNS, temporär einen höheren Wert zuweist oder dpkg in einem genügend breiten (X-)Terminal aufrufst.
env COLUMNS=200 dpkg -l
Wenn du öfters dpkg -l oder dpkg -S verwendest, solltest du einen Blick auf das Paket dlocate werfen, das diese Aufgaben wesentlich schneller erledigt, da es nicht die originale
Paketdatenbank sondern eine täglich aktualisierte locate-Datenbank befragt. (Dadurch sind diese Informationen aber natürlich auch nicht immer auf dem allerneuesten Stand.)
Credits: Heiko Schlittermann heiko@schlittermann.de
Die folgende Antwort wurde mit der Erlaubnis von Jens Benecke aus der Linux User FAQ übernommen. Vielen Dank!
Problem: Du hast ein "task" Paket unter Debian installiert. Task-Pakete sind Zusammenstellungen von anderen Paketen, die im Prinzip nur Abhängigkeiten definieren und selbst keine Dateien enthalten. z.B. wird beim Paket task-tex unter anderem bibtool, psutils, tetex, tetex-bin, tetex-doc, hyperlatex usw. installiert.
Es gibt allerdings keine Möglichkeit, zu sagen "Lösche alles, was durch die Installation von task-tex mitinstalliert wurde". Bisher jedenfalls nicht :-) denn diese Zeile tut es:
dpkg -r $(apt-cache show task-tex | sed -n '/Depends:/s/^.*://;s/,//gp')
Credits: Volker Hartwig volker@informatik.uni-rostock.de
Die folgende Antwort wurde mit der Erlaubnis von Jens Benecke aus der Linux User FAQ übernommen. Vielen Dank!
> Problem: Du möchtest von einer instabilen Distributionsversion (z.B.
> eine aktuelle Debian) auf den letzten stabilen Tree zurück. Dies geht
> offiziell mit "APT" erst mit Woody, es gibt aber eine inoffiziellere
> Variante.
hast Du eine potato-CD oder die *.debs irgendwo gemounted rumliegen? Dann könnte dpkg die Arbeit erledigen:
dpkg -i -E -O -R --force-downgrade pfad-zu-potato-binary-i386
Ich übernehme allerdings keinerlei Gewähr :-)
Die folgende Antwort wurde mit der Erlaubnis von Jens Benecke aus der Linux User FAQ übernommen. Vielen Dank!
Debian ist auf Stabilität bedacht und daher kommt in den "stable" Tree (momentan Woody, aka Debian 3.0) nur das, was auch sicher läuft. Im "testing" Tree ist das, was keine kritischen Fehler mehr besitzt,
im "unstable" Tree das, was für die Entwickler funktioniert und von anderen getestet werden soll, und im "experimental" Tree werden z.B. neue Versionen des Paketmanagements und größere Änderungen am
Gesamtsystem getestet, und Beta-Versionen von bekannten Anwendungen zur Verfügung gestellt. Man möchte manchmal eine Version eines Paketes aus "testing" oder "unstable" haben, ohne gleich das ganze System zu
aktualisieren - das würde aber passieren, wenn man seine /etc/apt/sources.list auf "unstable" zeigen ließe. Alternativ kann man sich den Krempel natürlich mit apt-get -b source install
$PAKETNAME selbst kompiliern lassen, aber dafür fehlen fast immer -zig Entwicklerbibliotheken, die für nix anderes benötigt werden.
Für sowas gibt es das pinning feature vom APT Paketmanager, welches sinnigerweise aber erst ab der in "testing" vorhandenen APT-Version unterstützt wird :-) Das funktioniert z.B. so: Angenommen, man
installiert normalerweise aus "testing", aber will _ein_ Paket aus "unstable" haben (z.B. weil man ein bestimmtes Feature braucht). Man schreibt in seine /etc/apt/preferences
Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
Beim Copy & Paste die Leerzeichen am Zeilenanfang löschen!
trägt eine passende Zeile für "unstable" in seine /etc/apt/sources.list ein, und kann dann mittels apt-get -t unstable install $PAKETNAME ein Paket aus "unstable" installieren,
während aber bei "normalem Betrieb" alles aus "testing" geholt wird. Abhängigkeiten werden dabei selbstverfreilich automatisch beachtet, wie immer.
Ja, so einfach ist das. Debian ist halt genial. :-)
[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ weiter ]
debian-user-german FAQ
14 Dezember 2004dugfaq at sylence dot net