Debian:Packages

Aus KissDoc

Wechseln zu: Navigation, Suche

Thema: Debian

Inhaltsverzeichnis

Top

Allgemein

Die Verwaltung von Software wird von den verschiedenen Distributionen verschieden gehandhabt. Die einen nehmen yast, die anderen nehmen rpm und die besten setzen auf dpkg.

Unter Debian kann apt für die Verwaltung von Softwarepackages verwendet werden. Dabei ist apt kein eigenständiges Binary sondern eine C-Bibliothek, die von vielen anderen Programmen wie apt-get, aptitude oder synaptik angezapft wird. Wir nutzen bei uns vor allem die Programme apt-get, apt-cache und apt-file. Diese sind rein consolenorientiert, schnell, übersichltich - eben einfach nur schön.

Top

Konfiguration

Top

apt

Zur Konfiguration nutzt apt die Datei /etc/apt/apt.conf, bzw. alle Dateien, die sich in /etc/apt/apt.conf.d. Hier können spezielle Einstellungen zur Arbeitsweise von apt eingestellt werden, was im Normalfall aber nicht notwendig ist. Nachfolgend sind einige Einstellungen aufgeführt, die eventuell mal notwendig sind.

  • APT::Cache-Limit "12500000"; setzt bzw. erhöht das Cache-Limit. Die Einstellung ist dann wichtig, wenn mehr als eine Quelle in der sources.list verwendet wird.

Nützlich Hinweise dazu findet man auch im Linux-Magazin.

Hinweis: Zum Anzeigen der aktiven apt-Konfiguration kann man den Befehl apt-config dump benutzen.

Hinweis: Alle Konfigurationseinträge können auch beim Aufruf der apt-basierenden Programme mit der Option -o gesetzt werden.

Top

apt-file

Zur Konfiguration nutzt apt-file die Datei /etc/apt/apt-file.conf und für die zu durchsuchenden Packages die Datei /etc/apt/apt.conf. Einstellen braucht man hier eigentlich gar nix, außer man will als Downloadprogramm für die /var/cache/apt/xyz_contents_xyz.gz (Aufruf mit apt-file update) ein anderes Programm als curl nutzen, z.B. wget.

Top

SecureApt

[1]

Top

Software-Quellen

Top

Quellen einstellen

Datei /etc/apt/source.list

Top

Quellen aktualiesieren

Der Aufruf apt-get update aktualisiert die verfügbaren Packages und stützt sich auf die Datei /etc/apt/sourceslist. Wenn man mehr als eine Quelle hat, kann es sein, dass der Paket-Puffer erweiter werden muss. Dazu wird in der Datei /etc/apt/apt.conf der Eintrag APT::Cache-Limit 100000000; gesetzt bzw. erhöht.

Top

Package Informationen

  • apt-cache search <packagename> Package suchen
  • apt-cache show <packagename> Beschreibung zum Package
  • apt-cache policy <packagename> spezielle Quelle abfragen
  • apt-cache pkgnames listet alle Package-Namen auf (nur den Namen)
  • apt-cache depends <packagename> zeigt die Abhängigkeiten zu dem Package an
  • apt-cache rdepends <packagename> zeigt die Rückwärts-Abhängigkeiten zu dem Package an
  • dpkg -L <packagename> zeigt alle Dateien zu diesem (installierten) Packages an
  • dpkg -S <filename> sucht in den lokal installierten Packages nach diesem Dateinamen
  • apt-file search <filename> sucht in den verfügbaren Packages (aus source.list) nach diesem Dateinamen
  • apt-show-version -u zeigt Version/Upgrade-Informationen zu Packages an
  • dpkg --info <filename> zeigt alle Paketinformationen an
Top

Backports

Backports sind nichtoffizielle Softwareverzeichnisse, welche thematisch einzelne Softwarepakete (und deren Abhängigkeiten) pflegen. Die Nutzung solcher Backport - Archive ist recht einfach. Ab Debian etch ist dafür noch ein PGP Key nötig (hkp - Port nicht vergessen):

gpg --keyserver subkeys.pgp.net --recv-keys 16BA136C
gpg --armor --export 16BA136C | apt-key add -
Top

Software-Installieren

  • apt-get install <packagename> installiert ein Package
  • apt-get dist-upgrade aktualisiert alle bereits installierten Packages auf den neuesten Stand
  • apt-get dist-upgrade ist prinzipiell dasselbe wie apt-get update, soll wohl aber besser funktionieren. Es aktualisiert vor allem zuerst die OS-wichtigen Software.
  • dpkg -i <file.deb> installiert ein Package von der angegebenen Datei. Diese Vorgehen ist bei selbst erstellen Debian-Packages (*.deb) notwendig.


Das Programm aptitude funktioniert wie apt-get, merkt sich aber bei der Installation von Paketen, welche Pakete noch zusätzlich mit installiert werden. Bei einer Deinstallation mit aptitude werden dann die extra-Pakete mit deinstalliert. Da aber aptitude mit einer Menü-Führung arbeitet, wurde es von uns Consolenfreaks abgewählt :-)

Top

Software-Deinstallieren

  • apt-get remove <packagename> --purge <packagename> deinstalliert ein Package und löscht auch alle Konfigurationsdateien des Packages. Ohne --purge bleiben eventuell Datei-Leichen zurück.


Top

Software-Leichen

Das Package deborphan findet »verwaiste« Pakete auf dem System. Es bestimmt, welche Pakete keine Abhängigkeiten für andere Pakete enthalten, und zeigt eine Liste dieser Pakete an. Es ist besonders nützlich für das Auffinden von Bibliotheken, kann aber für Pakete in allen Sektionen benutzt werden.

Wenn ein Package bereits gelöscht ist, aber sich noch Fragmenete vom Package im Dateisystem befinden (z.B. Config-Dateien), werden diese mit dpkg -l immer noch mit rc ... angezeigt. Hier hilft dann folgendes:

dpkg --purge <packagename>
Top

automatische Updates

Ein Automatistmus, was die Software-Updates angeht, ist bei vielen Leuten umstritten. Aber trotzdem sollte eine gewisse Automatisierung (z.B. per Cron) her. Entweder gleich eine Upgrade - oder man lässt sich z.B. per mail über neue Updates Benachrichtigen. Im Debian-Forum gibt's dazu einen guten Artikel.

Top

Problembehandlung

Apt gilt zwar als die beste Package-Verwaltung, aber Probleme gibts überall.

  • apt-get moo ist vor jeder Problembehandlung unbedingt auszuführen.
  • apt-cache depends packagename zeigt die Abhängigkeiten von anderen Packages bzw. Konflikte an.
  • apt-get install -f versucht das Problem bei fehlendenden oder falsch installierten Packages zu beheben.
  • apt-get dist-upgrade -o APT::Force-LoopBreak=1 Die Option ist zu setzen, wenn apt temporär wichtige Packages entfernen will.
  • dpkg --force-all --purge packagename entfernt nur das Package, auch wenn andere Packages davon abhängig sind. Damit handelt man sich allerdings ein Abhängigkeitsproblem ein (also mit Vorsicht verwenden), aber manchmal ist es genau das, was man braucht. Achtung: Nach Absenden des Befehls gehts sofort los, ohne Rückfrage !!!
Top

Eigene Packages

Gut verpakt ist halb gewonnen ist das Motto einer hübschen Beschreibung von Heiko. Die offiziellen Dokumentationen wie z.Bsp. die Anleitung für zukünftige Debian-Maintainer (als HTML und Text) oder Debian Pakete im Detail sind natürlich auch nicht zu verachten. Die eigentlich wichtigen Dokumente sind jedoch in den DDP Entwickler-Handbücher zu finden, allen voran die Debian Policy

Als Beispiel soll hier mal Doxygen herhalten. Die Software besteht im Kern aus nur vier Dateien, den beiden binaries doxygen und doxytag und den dazugehörigen Manpages.

Wir versuchen den offiziellen Debian-Weg zu gehen.

  • enpacken der tar datei
tar xzf doxygen-1.5.6.src.tar.gz 
  • wechseln in das Verzeichniss und aufrufen von dh_make
cd doxygen-1.5.6
dh_make -e nicos@neptun -f ../doxygen-1.5.6.src.tar.gz

Type of package: single binary, multiple binary, library, kernel module or cdbs?
 [s/m/l/k/b] s

Maintainer name : unknown
Email-Address   : nicos@neptun
Date            : Wed, 16 Jul 2008 13:08:13 +0200
Package Name    : doxygen
Version         : 1.5.6
License         : blank
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. doxygen
uses a configure script, so you probably don't have to edit the Makefiles.


dh_make muss aus dem source verzeichniss aufgerufen werden um korrekt zu funktionieren, anschliessen wird es fuer ein Single Package ausgewaehlt.

  • Jetzt werden ein paar Dateien editiert, angefangen bei der debian/rules

Hier wird der build prozess konfiguriert.


vim debian/rules

die configure Zeile wird angepasst, da doxygen den install path schon beim configure haben will. config.status: configure

./configure --prefix $(CURDIR)/debian/doxygen/usr

ausserdem wird die make install zeile angepasst, aus gleichem Grunde wie oben

install: build

$(MAKE) install
  • anpassen der debian/control

ACHTUNG: bei der Langbeschreibung der Description muss vor jeder Zeile ein Leerzeichen stehen

  • anpassen der changelog

hier wird die versions nummer festgelegt

debchange -e

die versionsnummer um 1 erhoehen geht mit

debchange -i
  • aufrufen von dpkg-buildpackage
dpkg-buildpackage -rfakeroot

oder

debuild

im verzeichniss debian befindet sich jetzt ein unterverzeichniss doxygen, in dem sich ein testlauf des install prozesses liegt

die deb pakete werden in /usr/local/src/pool/<Sektion>

das script mkdeb.sh erstellt die noetigen Packeges.gz fuer unsrer Repository, zu finden ist das file in den bin-tools im cvs.


Top

Paket modifizieren

Am Beispiel von hello soll der Weg zur Modifizierung eines Packages gezeigt werden. Zunächst erst mal die Quellen:

mkdir -p ~/src/hello
cd ~/src/hello
apt-get source hello

Danach haben wir ein Verzeichnis (hello-2.1.1), welches die an Debian angepaßten Quellen und ein spezielles debian Verzeichnis enthält. Auch existieren die Dateien hello_2.1.1.orig.tar.gz (enthält den unmodifizierten Originalcode), hello_2.1.1-5.diff.gz (die Änderungen vom Origialcode zur Debianvariante) und die Beschreibung hello_2.1.1-5.dsc.

Jetzt könnte man erst mal das Package erzeugen:

cd hello-2.1.1
dpkg-buildpackage -us -uc -rfakeroot

Nun sollte das Package bereits erzeugt werden und Änderungen können jetzt vorgenommen werden.

Zum entpacken des Deb-Files kann nun auch dpkg-deb verwendet werden:

dpkg-deb -x DEBFILE DESTINATION
dpkg-deb -e DEBFILE DESTINATION
Top

Quellen

W: GPG error: http://deb.opera.com etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 033431536A423791


gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys 033431536A423791 gpg: requesting key 6A423791 from hkp server wwwkeys.eu.pgp.net gpg: key 6A423791: public key "Opera Software Archive Automatic Signing Key <hostmaster @opera.com>" imported gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 6 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: depth: 1 valid: 6 signed: 0 trust: 6-, 0q, 0n, 0m, 0f, 0u gpg: Total number processed: 1 gpg: imported: 1


gpg --armor --export 033431536A423791 | apt-key add -

als root

1. apt-get install debian-keys
2. apt-get install gnupg
3. gpg --import /usr/share/keyrings/debian-keyring.gpg
4. apt-key add /usr/share/keyrings/debian-role-keys.gpg
5. apt-get update 

http://www.debian.org/doc/manuals/apt-howto/ http://www.debian.org/doc/manuals/repository-howto/repository-howto.de.html

Top
Persönliche Werkzeuge