[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