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