apt-grip(1) Étendre Emdebian Grip pour ajouter des paquets Debian à la volée

Synopsis

 $ sudo apt-grip foo bar baz
 $ sudo apt-grip -M http://ftp.fr.debian.org/debian/ foo bar baz
 
 $ sudo apt-grip --clean-cache

Description

Emdebian Grip a un nombre limité de paquets dans le dépôt principal, principalement pour réduire la taille du cache de données apt. À l'occasion, des paquets individuels Debian standards doivent être ajoutés à une machine isolée utilisant Emdebian Grip. apt-grip a été écrit dans ce but.

apt-grip a besoin de la prise en charge de DEB_VENDOR dans dpkg pour déterminer comment le paquet devrait être "gripped". L'éditeur (« vendor ») par défaut est "emdebian-grip" mais prenez en considération la prochaine section sur les limitations de apt-grip si vous songez l'utiliser sur un système Debian non-modifié.

Le cas usuel est que le système a déjà été mis à jour vers Emdebian Grip avant que apt-grip soit utilisé.

Contacter la liste de diffusion [email protected] pour des demandes d'ajout de paquets aux dépôts Emdebian Grip directement.

Le téléchargement des fichiers de Paquets peut durer un certain temps, donc pour « gripper » un ensemble de paquets, il faut soit spécifier tous les paquets en une seule commande soit utiliser l'option "--keep-cache" pour chaque opération et utiliser l'option "--clean-cache" à la fin.

Si le périphérique exécutant Grip n'a pas assez d'espace pour télécharger et traiter le(s) paquet(s), lancer apt-grip sur une autre machine en utilisant les deux options "--build-only" et "--arch".

Les archives traitées seront dans /var/lib/apt-grip/output/ et peuvent être copiées vers le périphérique directement ou en incluant les paquets dans un dépôt accessible localement. Une fois installé sur le périphérique Grip, utiliser "apt-grip -c" sur la machine de construction pour effacer le cache. "--keep-cache" est implicite lorsque "--build-only" est utilisé.

Noter aussi que, tout comme avec le reste du traitement d'Emdebian, Install-Recommends est toujours désactivé, de sorte que si vous avez besoin d'un paquet qui est seulement recommandé par des paquets dans la liste donnée à "apt-grip", ce paquet devra être ajouté à la liste explicitement.

Limitations

Installer des paquets depuis des dépôts autre que les sources apt normales (en particulier si ces paquets sont subséquemment modifiés comme dans emgrip) listera ceux-ci comme « local » ou « obsolète » dans les gestionnaires de paquet. Les paquets convertis ne peuvent être mis à jour sans appeler à nouveau "apt-grip" parce que "apt-get" ne connaît pas le miroir temporaire utilisé par "apt-grip" pour télécharger les paquets. Ceci peut poser des problèmes si les dépendances de tels paquets doivent être mises à jour. Il est possible que le système principal apt essaye de supprimer ces paquets locaux pour procéder à une mise à jour du système principal.

La meilleure option est d'ajouter de tels paquets au dépôt que vous utilisez pour vos sources apt principales. (Utiliser le paquet emdebian-grip-server pour créer votre propre dépôt.)

L'action de « "Gripping" » d'un paquet signifie créer une nouvelle version (avec le suffixe de version em1) avec moins de fichiers dans le nouveau paquet. Voir emgrip (1) pour plus d'information sur ce processus. Changer la chaîne de version implique le changement de certaines dépendances — en particulier les dépendances strictes. Ceci implique que apt-grip pourrait échouer avec certaines combinaisons de paquets.

"apt-grip" utilise l'option "--reinstall" avec apt-get pour pallier à certaines de ces situations.

Problèmes de dépendance stricte

Si un paquet source construit plusieurs paquets binaires, où au moins un paquet à une dépendance stricte sur un des autres paquets binaires et un de ces paquets binaires est déjà installé depuis Debian, il sera nécessaire d'installer des versions Grip des deux paquets binaires impliqués de sorte que la dépendance stricte puisse être satisfaite.

 Source: foo
 Package: foo
 Depends: bar (= 0.0.1)
 Package: bar
 $ sudo apt-grip foo bar

Dans l'exemple ci-dessus, foo_0.0.1_amd64.deb deviendra foo_0.0.1em1_amd64.deb et obtiendra une dépendance stricte sur "bar (= 0.0.1em1)" par emgrip.

Miroir par défaut

apt-grip utilise "http://ftp.uk.debian.org/debian/" comme miroir Debian par défaut. Utiliser l'option -M|--mirrror pour le changer.

SecureApt

Utiliser l'option --no-auth pour permettre d'utiliser des dépôts non authentifiés. Remarquez que cela désactive l'authentification de tous les dépôts disponibles.

Mise à niveau vers Grip

Changez votre liste de sources de miroirs debian vers le miroir grip emdebian.

par exemple, pour unstable :

 deb http://www.emdebian.org/grip/ unstable main

(Emdebian Grip ne fonctionne qu'avec les suites Debian : unstable, sid, testing, squeeze, stable, lenny, lenny-proposed-updates.)

Puis mettez à jour et à niveau :

 $ sudo apt-get update
 $ sudo apt-get clean
 $ sudo apt-get upgrade
 $ sudo apt-get dist-upgrade

(Notez qu'apt-get signalera habituellement la possibilité de libérer plusieurs centaines de mégaoctets sur le système quand certains paquets Debian sont mis à jour vers Emdebian Grip mais il faudra encore suffisamment de place pour réellement télécharger et dépaqueter les nouveaux paquets.) Utilisez "apt-get clean" après la mise à niveau pour récupérer plus d'espace libre.

Composants de Grip

Grip sépare encore plus l'archive en créant de nouvelles zones pour les paquets de développement, déboguage, documentation ou Java, toujours pour réduire la taille finale des données de paquet mises en cache sur le système. Pour utiliser "apt-grip" sur un système Grip Emdebian, vérifiez d'avoir ajouté le composant dev aux sources d'apt :

 deb http://www.emdebian.org/grip/ unstable main dev

De même pour doc, debug et java. D'autres composants peuvent être ajoutés de temps en temps, donc vérifiez le site web :

 http://www.emdebian.org/grip/search.php

Ajoutez plus de composants si nécessaire :

 deb http://www.emdebian.org/grip/ unstable main dev debug java

Emdebian Baked

apt-grip a été amélioré pour permettre de créer des paquets à utiliser avec Emdebian Baked. Par conséquent, la prise en charge d'architecture extérieure ainsi que la possibilité d'ignorer l'état des paquets actuellement installés sur le matériel exécutant apt-grip ont été ajoutés.

L'aspect compliqué de cette opération est de gérer les paquets mis à jour et les dépendances modifiées. apt-grip ne peut servir qu'avec Debian stable.

emdebian-grip n'a pas été rétroporté vers Lenny, donc la machine de développement doit être sous Debian Squeeze ou Sid (testing ou unstable) pour mettre en place un système de fichier racine Baked basé sur Lenny.

Exemple de commande apt-grip pour Baked

 $ sudo apt-grip -a mipsel -V emdebian-baked -S stable dash snmpd

Les paquets Baked existeront alors dans /var/lib/apt-grip/output/, y compris toutes les dépendances des paquets indiqués. Ils peuvent alors être ajoutés dans un dépôt reprepro existant :

 $ reprepro includedeb stable /var/lib/apt-grip/output/*.deb

Si votre dépôt est prévu pour plusieurs architectures, vérifiez d'avoir bien enlevé ou ignoré les paquets « Architecture: all » déjà traités par apt-grip :

 $ sudo rm /var/lib/apt-grip/output*_all.deb

Puis utilisez l'option -A pour que reprepro n'intègre que l'architecture ajoutée :

 $ reprepro -A armel includedeb stable /var/lib/apt-grip/output/*_armel.deb

Pour plus de renseignements, consultez le site d'Emdebian : http://www.emdebian.org/baked/