Includere un pacchetto di backport in pbuilder

From RVM Wiki
Revision as of 16:44, 28 November 2012 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Abilitazione backports

  • Per utilizzare un pachetto di backport durante un build.
  • Fare login nell'immagine, dicendo di salvare i cambiamenti:
sudo pbuilder login --save-after-login
  • Inserire le source apt volute (se si vuole usare un editor, è necessario installarlo:
vi /etc/apt/sources.list
# Local builded packages
deb file:///var/cache/pbuilder/squeeze-amd64/result/ ./

# Stock packages
deb http://ftp.it.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.it.debian.org/debian/ squeeze main contrib non-free

# Security updates
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

# squeeze-updates, previously known as 'volatile'
deb http://ftp.it.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.it.debian.org/debian/ squeeze-updates main contrib non-free

# Backports
deb http://backports.debian.org/debian-backports squeeze-backports main
  • Uscire dall'immagine
exit
  • Updatare:
sudo pbuilder --update

Scelta backports da abilitare

  • Identificare la HOOKDIR:
sudo grep HOOKDIR /root/.pbuilderrc
       HOOKDIR="/root/.pbuilder/hooks"
  • Creare ora un file nella hookdir con questo nome, contenente i pin da applicare:
sudoedit /root/.pbuilder/hooks/D01apt-preferences
  • Gli hookscripts che iniziano per D vengono eseguiti prima di installare le build-dep
  • Abilitare ad esempio, dpkg-dev. Se il pacchetto non avesse dipendenze, basterebbe un dist-upgrade. In questo caso ha una dipendenza, e quindi bisogna forzarne l'installazione.
#!/bin/bash
echo Starting D01apt-preferences

echo "ADDING Backports"
set -e
set -x 
STABLE_VERSION_REGEX='^6\.0\.[0-9]\+$'

if $(grep -q "$STABLE_VERSION_REGEX" "/etc/debian_version"); then
	echo "Pinning"
	cat > "/etc/apt/preferences" << EOF
Package: dpkg-dev
Pin: release a=squeeze-backports
Pin-Priority: 999
EOF
	echo This is apt/preferences
	cat /etc/apt/preferences

	echo "Updating"
	apt-get update

	echo "Upgrading"
	apt-get dist-upgrade
	echo force install
	apt-get install --yes -t squeeze-backports dpkg-dev
fi
echo Finished D01apt-preferences
  • Renderlo eseguibile
sudo chmod +x /root/.pbuilder/hooks/E01apt-preferences
  • Procedere col build, verificando che l'hookscript venga eseguito.
  • Rimuovere l'hookfile al termine
 sudo rm /root/.pbuilder/hooks/E01apt-preferences

Riferimenti