Package einsortieren

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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

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

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

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

Entpacken

apt-get install binutils # enthält "ar" zum entpacken von *.deb Dateien
#!/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

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/