Debian Paketmanagement: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
 
*[[Paketmanagement unter Linux]]
 
*[[Paketmanagement unter Linux]]
 +
*[[apt kurz und knapp]]
 
*[[dpkg]]
 
*[[dpkg]]
 
*[[apt]]
 
*[[apt]]
 
*[[aptitude]]
 
*[[aptitude]]
 
+
*[[apt-cache]]
==apt-cache==
+
*[[apt-file]]
apt-cache wird benutzt um Pakete zu suchen.
+
*[[debsums]]
 
+
*[[Debian Backports]]
Beispiele
+
*[[Package einsortieren]]
root@zero:~# apt-cache search wlan
 
linux-wlan-ng - Hilfsprogramme für Wireless Prism2 Karten
 
linux-wlan-ng-doc - documentation for wlan-ng
 
ifplugd - configuration daemon for ethernet devices
 
linux-wlan-ng-firmware - firmware files used by the linux-wlan-ng driver
 
linux-wlan-ng-source - linux-wlan-ng driver
 
ap-utils - Access-Point-SNMP-Werkzeuge für Linux
 
kismet - Wireless 802.11b-Beobachtungs-Programm
 
kwlan - KDE-Oberfläche für wpasupplicant
 
rt73-common - RT73(RT2571W) Wireless Lan Linux Driver - common files
 
rt73-source - RT73(RT2571W) Wireless Lan Linux Driver - kernel module sources
 
oder
 
root@zero:~# apt-cache search apache | grep mysql
 
libapache2-mod-auth-mysql - Apache 2 module for MySQL authentication
 
libapache2-mod-log-sql-mysql - Use SQL to store/write your apache queries logs - MySQL interface
 
proftpd-mod-mysql - versatile, virtual-hosting FTP daemon - MySQL module
 
pure-ftpd-mysql - Pure-FTPd FTP server with MySQL user authentication
 
 
 
Infos über ein Paket anzeigen
 
root@zero:~# apt-cache show  man-db
 
Package: man-db
 
Priority: standard
 
Section: doc
 
Installed-Size: 2680
 
Maintainer: Colin Watson <cjwatson@debian.org>
 
Architecture: i386
 
Version: 2.5.5-1build1
 
Replaces: man, manpages-de (<< 0.5-4), nlsutils
 
Provides: man, man-browser
 
Depends: groff-base (>= 1.18.1.1-15), bsdmainutils, debconf (>= 1.2.0) | debconf-2.0, dpkg (>= 1.9.0), libc6 (>= 2.8), libgdbm3, zlib1g (>= 1:1.1.4)
 
Suggests: groff, less, www-browser
 
Conflicts: man, suidmanager (<< 0.50)
 
Filename: pool/main/m/man-db/man-db_2.5.5-1build1_i386.deb
 
Size: 973440
 
MD5sum: 0b72088eaccb960b5f11baac2f43869c
 
SHA1: f5a6556c92afa574bf81538bfac56d40a7dac1ad
 
SHA256: 1f9fdfe23af6be42c6b8dc982468b3552f5a9c35f54e6c1515c9ef8fe04c26e0
 
Description-de: Programm zum Lesen von Manpages
 
  Dieses Paket enthält das Programm man, das die primäre Methode zum Lesen
 
  der Online-Hilfedateien (Manpages) darstellt. Weitere Tools sind die
 
  Programme whatis und apropos (zum Durchsuchen der Manpage-Datenbank), das
 
  Programm manpath zum Bestimmen des Manpage-Suchpfades, sowie die
 
  Pflegeprogramme mandb, catman und zsoelim. man-db benutzt die
 
  »groff«-Suite, um Manpages zu formatieren und anzuzeigen.
 
Homepage: http://man-db.nongnu.org/
 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
 
Origin: Ubuntu
 
Task: standard, mobile-live, mobile-mid
 
 
 
Abhängigkeiten eines Paket anzeigen
 
root@zero:~# apt-cache depends ssh
 
ssh
 
  Hängt ab: openssh-client
 
  Hängt ab: openssh-server
 
 
 
Statistiken anzeigen
 
root@zero:~# apt-cache stats
 
Gesamtzahl an Paketnamen: 34851 (1394k)
 
  davon gewöhnliche Pakete: 26580
 
  davon rein virtuelle Pakete: 366
 
  davon einzelne virtuelle Pakete: 2239
 
  davon gemischte virtuelle Pakete: 263
 
  davon fehlend: 5403
 
Gesamtzahl an unterschiedlichen Versionen: 27442 (1537k)
 
Gesamtzahl an unterschiedlichen Beschreibungen: 39403 (946k)
 
Gesamtzahl an Abhängigkeiten: 175909 (4925k)
 
Gesamtzahl an Version/Datei-Beziehungen: 28936 (463k)
 
Gesamtzahl an Beschreibung/Datei-Beziehungen: 39403 (630k)
 
Gesamtzahl an Bereitstellungen: 4744 (94,9k)
 
Gesamtzahl an Mustern: 121 (1588)
 
Gesamtmenge an Abhängigkeits/Versionsspeicher: 820k
 
Gesamtmenge an Slack: 82,5k
 
Gesamtmenge an Speicher: 8498k
 
 
 
Umgekehrte Abhängigkeiten eines Paket anzeigen
 
root@zero:~# apt-cache rdepends openssh-server
 
openssh-server
 
Reverse Depends:
 
  mythbuntu-desktop
 
  ssh-krb5
 
  slack
 
  |sdm
 
  scponly
 
  rssh
 
  gitosis
 
  gforge-shell-postgresql
 
  fai-server
 
  apt-dater-host
 
  ajaxterm
 
  ubuntu-virt-server
 
  ssh
 
  rsync
 
  ltsp-server-standalone
 
  |ltsp-server
 
 
 
====Dateien====
 
* /etc/apt/sources.list : Orte, von wo die Pakete geholt werden
 
* /etc/apt/apt.conf : APT-Konfigurationsdatei
 
* /etc/apt/apt.conf.d/ : Weitere Konfigurationsanpassungen
 
* /var/cache/apt/archives/ : Speicherort für heruntergeladene Pakete
 
* /var/cache/apt/archives/partial/ : Speicherort für momentan übertragene Pakete
 
* /var/lib/apt/lists/ : Speicherort für Statusinformationen der Pakete
 
 
 
==APT-FILE==
 
apt-file dient zur Such in den Repositories
 
*Installation
 
root@zero:~# apt-get install apt-file
 
*Update
 
root@zero:~# apt-file update
 
*In welchem Paket ist die Datei xxx
 
root@zero:~# apt-file search nids.h
 
libnids-dev: /usr/include/nids.h
 
 
 
==dpkg-reconfigure==
 
Manche Pakete erfordern eine Konfiguration. Die Grundkonfiguration wird automatisch bei der ersten Installation erzeugt. Später dient der Befehl dpkg-reconfigure zur Bearbeitung.Die Liste der zur Zeit installierten und mit dpkg-reconfigure konfigurierbaren Pakete erhält man im Terminal [1] mit:
 
root@zero:~# ls /var/lib/dpkg/info/*.templates|xargs -n 1 basename|sed -e "s/.templates$//"
 
===Ein Paket neu konfigurieren===
 
 
 
Die gestellten Fragen werden nach ihrer Priorität gefiltert. Normalerweise werden nur wenige Fragen gestellt. Mit den folgenden Parametern kann man das einstellen:
 
*-plow (alle Fragen werden gestellt)
 
*-pmedium
 
*-phigh
 
*-pcritical (fast alles wird auf die Vorgabewerte gesetzt, nur überlebenswichtige Fragen werden gestellt)
 
 
 
Der folgende Befehl konfiguriert zum Beispiel das Paket man-db neu, wobei alle möglichen Fragen gestellt werden:
 
root@zero:~# dpkg-reconfigure -plow man-db
 
 
 
==TAR==
 
*[[tar]]
 
 
 
==alien==
 
alien konvertiert verschiedene Paketformate in jeweils andere um. Das Programm kann mit folgenden Formaten umgehen:
 
* RedHat (rpm)
 
* Debian (deb)
 
* Stampede (slp)
 
* Slackware (tgz)
 
* Solaris (pkg)
 
 
 
===Kommandos===
 
Die Aufrufform ist sehr einfach. alien erkennt das Format einer angegebenen Paketdatei automatisch und konvertiert
 
es dann in das angegebene Format. Das gewünschte Ausgabeformat wird durch die folgenden Parameter angegeben:
 
 
 
* --to-deb : Aus dem angegebenen Paket wird ein Debian-Paket erstellt
 
* --to-rpm : Aus dem angegebenen Paket wird ein RedHat-Paket erstellt
 
* --to-tgz : Aus dem angegebenen Paket wird ein Slackware-Paket erstellt
 
* --to-slp : Aus dem angegebenen Paket wird ein Stampede-Paket erstellt
 
 
 
alien [--to-deb] [--to-rpm] [--to-tgz] [--to-slp] [Optionen] Datei(en)
 
 
 
===Optionen===
 
* -i : Installiere generierte Pakete und entfernte Paketdatei nach der Installation
 
* -g : Generiert ein temporäres Verzeichnis
 
* --patch=''patch'' : Fügt einen Patch ein (nur Debian Pakete)
 
* --test : Testet die generierten Pakete (nur Debian Pakete)
 
* -k : alien erhöht standardmäßig die kleinere Versionsnummer (minor) um Eins nach einer Konvertierung; mit der Option wird
 
dies nicht durchgeführt
 
* --scripts : Versucht Skripte zu konvertieren, die beim Installieren oder Entfernen des Pakets ausgeführt werden
 
* -v : ausführliche Ausgabe
 
* --veryverbose : sehr ausführliche Ausgabe
 
* -V : zeigt die Version von alien an
 
 
 
Beispiele
 
 
 
Umwandlung eines Debian Pakets in ein RPM Paket
 
root@zero:~# alien --to-rpm mailutils_1%3a1.2+dfsg1-4_i386.deb
 
Warning: Skipping conversion of scripts in package mailutils: postinst preinst prerm
 
Warning: Use the --scripts parameter to include the scripts.
 
mailutils-1.2+dfsg1-5.i386.rpm generated
 
 
 
Wie oben, aber mit Skripte des Pakets
 
root@zero:~# alien '''--scripts''' --to-rpm mailutils_1%3a1.2+dfsg1-'''4'''_i386.deb
 
mailutils-1.2+dfsg1-'''5'''.i386.rpm generated
 
 
 
Umwandlung eines Debian Pakets in ein RPM Paket unter Beibehaltung der kleineren Versionsnummer
 
root@zero:~# alien --scripts -k --to-rpm mailutils_1%3a1.2+dfsg1-'''4'''_i386.deb
 
mailutils-1.2+dfsg1-'''4'''.i386.rpm generated
 
 
 
 
 
==sources.list wheezy==
 
<pre>
 
deb http://httpredir.debian.org/debian wheezy main
 
deb-src http://httpredir.debian.org/debian wheezy main
 
 
 
deb http://httpredir.debian.org/debian wheezy-updates main
 
deb-src http://httpredir.debian.org/debian wheezy-updates main
 
 
 
deb http://security.debian.org/ wheezy/updates main
 
deb-src http://security.debian.org/ wheezy/updates main
 
 
 
</pre>
 
 
 
=Locakles Repository=
 
==Benötigte Pakete==
 
apt-get install apt-mirror
 
==Konfiguration==
 
vi /etc/apt/mirror.list
 
*Repositorys eintragen die man Spiegeln will
 
*Mirror erstellen
 
apt-mirror
 
*Mirror nutzbar machen
 
ln -s /var/spool/apt-mirror/mirror/de.archive.ubuntu.com/ubuntu /var/www/ubuntu
 
 
 
=Debian Paket erstellen=
 
==How to==
 
*Paketordner erstellen:
 
mkdir paketordner
 
mkdir paketordner/usr
 
mkdir paketordner/DEBIAN
 
*Control-file erstellen und anpassen:
 
vi paketordner/DEBIAN/control
 
*Beispielinhalt von '''control''' file
 
Package: namedesprogrammes
 
Version: 0.7
 
Section: admin
 
Priority: optional
 
Architecture: all
 
Essential: no
 
Depends:
 
Installed-Size: 400
 
Maintainer: Name des Paketerstellers <name@adresse.com>
 
Description: Dies ist die Beschreibung des Paketes"
 
*Programm im '''usr''' Ordner platzieren. Beispiel:
 
/usr/share/namedesprogrammes/programm.sh
 
*Ausführskript '''usr/bin/namedesprogrammes''' platzieren:
 
#!/bin/bash
 
cd /usr/share/namedesprogrammes
 
./programm.sh
 
:Ausführbar machen
 
chmod a+rx /usr/bin/namedesprogrammes
 
*Eintrag im Anwendungsmenü:
 
;unter
 
/usr/share/applications
 
;Textdatei erstellen
 
namedesprogrammes.desktop
 
;und (angepassten) Text einfügen
 
[Desktop Entry]
 
Encoding=UTF-8
 
Name=namedesprogrammes
 
Comment=Dies ist ein Kommentar welcher beim Ueberfahren mit der Maus angezeigt wird
 
Exec=namedesprogrammes
 
Terminal=false
 
Type=Application
 
Categories=GNOME;GTK;System;
 
*Programm ein Symbol zuweisen
 
;Ordner anlegen:
 
usr/share/pixmaps
 
;Symboldatei platzieren:
 
namedesprogrammes.png
 
;In namedesprogrammes.desktop-Datei Zeile einfügen:
 
Icon=namedesprogrammes.png
 
*Paket erstellen
 
dpkg -b paketordner namedesprogrammes-0.7-all.deb
 
 
 
= Entpacken =
 
apt-get install binutils # enthält "ar" zum entpacken von *.deb Dateien
 
 
 
<pre>
 
#!/bin/bash
 
 
 
phrase=xinux
 
 
 
extract_deb() {
 
  deb="$1"
 
  package="${deb/_*/}"
 
  mkdir -pv "${package}/DEBIAN"
 
  cd "${package}"
 
  ar x "../${deb}"
 
  tar xvf "control.tar.gz" -C "DEBIAN/"
 
  tar xvf "data.tar.gz"
 
  rm "control.tar.gz"
 
  rm "data.tar.gz"
 
  sed -i "s/^Version: \(.*\)ubuntu/Version: \1$phrase/" "DEBIAN/control"
 
  version=$(grep -o "^Version:.*$phrase.*" 'DEBIAN/control')
 
  [ -z "$version" ] && (
 
    sed -i "s/^Version: \(.*\)$/Version: \1${phrase}1/" 'DEBIAN/control'
 
  )
 
  cd - >/dev/null
 
}
 
 
 
build_deb() {
 
  package="$1"
 
  version=$(grep -e ^Version "$package/DEBIAN/control" | sed -e 's/.*: //' -e 's/:/%3a/g' )
 
  arch=$(grep -e ^Arch "$package/DEBIAN/control" | sed 's/.*: //')
 
  dpkg -b "$package" "${package}_${version}_${arch}.deb"
 
}
 
 
 
case $1 in
 
xf)
 
  dir=$(dirname "$2")
 
  cd "$dir"
 
  extract_deb $(basename "$2")
 
;;
 
cf)
 
  dir=$(dirname "$2")
 
  cd "$dir"
 
  build_deb $(basename "$2")
 
;;
 
x)
 
  dir="$2"
 
  [ -z "$dir" ] && dir='.'
 
  cd "$dir"
 
  for deb in $(ls *.deb | grep -v "$phrase")
 
  do
 
    extract_deb "$deb"
 
  done
 
;;
 
c)
 
  dir="$2"
 
  [ -z "$dir" ] && dir='.'
 
  cd "$dir"
 
  find -maxdepth 1 -type d | \
 
  sed '/^\.$/ d' | \
 
  sed 's#^\./##' | \
 
  while read package
 
  do
 
    build_deb "$package"
 
  done
 
;;
 
*)
 
  echo -e "Usage: $0 command file
 
\txf\textract file
 
\tx\textract dir
 
\tcf\tbuild package from package-dir
 
\tc\tbuild packages from dir"
 
;;
 
esac
 
</pre>
 
 
 
=debmirror=
 
nur trusty ...
 
 
 
*debmirror -a amd64 -d trusty -s main,universe --nosource  -h archive.ubuntu.com --progress  /mnt/md0/data/www/ubuntu/mirror/trusty >> /var/log/debmirror
 
 
 
 
 
=pre und post scripte=
 
*/var/lib/dpkg/info/
 

Aktuelle Version vom 3. Mai 2025, 12:46 Uhr