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