[gull] Mélange Debian testing/sid
Marc SCHAEFER
schaefer at alphanet.ch
Wed Mar 24 10:11:03 CET 2004
On Tue, Mar 23, 2004 at 10:58:09PM +0100, Claude Paroz wrote:
> J'ai fait une installation récemment d'une Debian Sarge (testing), et je
> voudrais rajouter un package sid (unstable) (Digikam). Comme celui-ci a des
> dépendances vers kdelibs, etc., qu'est-ce que je risque ? Est-ce que je peux
> tout casser en faisant cela ?
Oui. testing et unstable n'ont pas une aussi bonne qualité que stable.
Il est donc probable que quelque chose va se casser.
Lorsque j'aimerais avoir un logiciel sur stable qui est dans testing ou
unstable (ou dans votre cas), j'ai les possibilités suivantes:
- installation du package binaire
peut être impossible à cause des dépendances
- installation via le système de pinning
- put new sources.list in /etc/apt/sources.list, but use
testing and unstable (possibly stable), instead of woody/sarge/sid.
- configure /etc/apt/preferences such as: (see also man
apt_preferences)
Package: *
Pin: release a=woody
Pin-Priority: 999
Package: *
Pin: release a=testing
Pin-Priority: 99
Package: *
Pin: release a=unstable
Pin-Priority: 1
- apt-get update && apt-get -u dist-upgrade # shouldn't touch
anything
- apt-get install whatever/testing
- possibly set priority 1001 for a=now
- regénération du package binaire depuis les sources.
Exemple: spamassassin, voir plus bas (*)
Parfois il faut modifier des dépendances sources ou binaires.
Ne jamais le faire sous root, utiliser fakeroot.
- installation à la main dans /usr/local/NOM
ma méthode préférée lorsque Debian n'a pas ce package ou que
recompiler les packages binaires est trop compliqué.
conseils:
- NE PAS COMPILER SOUS ROOT
- NE PAS INSTALLER SOUS ROOT
méthode:
- voir plus bas (**)
Méthode (*)
####################
# JAMAIS SOUS ROOT
# JAMAIS DANS /usr/src. Faites ça dans *votre* homedir.
####################
mkdir -p DEBIAN_PACKAGES/SOURCES
cd DEBIAN_PACKAGES/SOURCES
w3m http://packages.debian.org/
Search package directories
`spamassassin' dans le champ de recherche
`any' dans distribution
choisi unstable 2.63-1
télécharger [dsc], [spamassassin_2.63.orig.tar.gz]
et [spamassassin_2.63-1.diff.gz]
quitter
cd ..
dpkg-source -x SOURCES/spamassassin*.dsc
cd spamassassin-2.63
dpkg-buildpackage -rfakeroot -uc -us
Parfois il faut installer quelques packages -dev
supplémentaires, voir debian/control
Ici, j'ai une erreur: il a besoin de debhelper >= 4.1.16
On modifie les dépendances:
vi debian/control
changer debhelper (>= 4.1.16) en juste debhelper
RISQUE: quelques manuels ne seront pas inscrits dans
les menus, quelques configs dans debconf, etc.
(risque faible)
Après cette modification le buildpackage fonctionne,
le package est dans ..
cd ..
maintenant ici on a plusieurs packages binaires.
Il faut essayer de les installer. Parfois il y a des
dépendances qui posent problème. Dans ce cas non.
PS: on peut créer une arborescence apt-get pour soi,
comme je l'ai fait pour http://packages.cril.ch/
RISQUE DE LA METHODE:
- vous êtes maintenant chargé de la mise à jour de
sécurité du package que vous avez créé. Comme sa
version est probablement plus récente que celle
de stable/security.
Méthode (**)
Exemple de Samba:
# SAUF POUR DES LOGICIELS MAL FAITS, IL N'EST PAS NECESSAIRE
# DE COMPILER SOUS ROOT. NI DE STOCKER DANS /usr/src.
# ET BIEN SOUVENT ON PEUT *INSTALLER* SANS root presque
# entièrement.
mkdir -p PORTED/SOURCES
cd PORTED/SOURCES
wget http://sambafr.idealx.org/samba/ftp/samba-3.0.2a.tar.asc \
http://sambafr.idealx.org/samba/ftp/samba-3.0.2a.tar.bz2
bzip2 -d < samba-3.0.2a.tar.bz2 > tmp_file
gpg --verify samba-3.0.2a.tar.asc tmp_file
rm tmp_file
cd ..
tar xvjf SOURCES/samba-3.0.2a.tar.bz2
cd samba-3.0.2a/source
./configure --prefix=/usr/local/samba-3.0.2a && make
# éventuellement installer ce qui manque (-dev ou
# depuis source) et réessayer.
su - -c 'mkdir /usr/local/samba-3.0.2a && chown schaefer /usr/local/samba-3.0.2a'
make install # ici ce qui peut foirer ce sont des exécutables suid
# une bonne raison pour voir ce qui est fait.
su - -c 'chown -R root.root /usr/local/samba-3.0.2a'
su - -c 'ln -s /usr/local/samba-3.0.2a /usr/local/samba'
# Ecrire /etc/rc2.d/samba qui lance ce qu'il faut dans
# /usr/local/samba
# La mise à jour consiste à changer le lien symbolique,
# ce qui permet de simplement revenir en arrière.
# Eventuellement partager les configurations.
# NB: dans ce cas, TOUT est dans /usr/local/samba-3.0.2a,
# logs, configs, man, etc.
# Déinstallation: rm -rf /usr/local/samba-3.0.2a /etc/rc2.d/samba
# Vous pouvez faire un make clean dans la source, ou carrément
# l'effacer (exception: Webmin notamment)
# VOUS ETES MAINTENANT LE RESPONSABLE SECURITE DE
# CE PROGRAMME.
More information about the gull
mailing list