Debian Paketmanagement: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 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]]
Zeile 5: Zeile 7:
 
*[[apt-cache]]
 
*[[apt-cache]]
 
*[[apt-file]]
 
*[[apt-file]]
−
==dpkg-reconfigure==
+
*[[debsums]]
−
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:
+
*[[Debian Backports]]
−
root@zero:~# ls /var/lib/dpkg/info/*.templates|xargs -n 1 basename|sed -e "s/.templates$//"
+
*[[Package einsortieren]]
−
===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