NOM¶
apt-grip - É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 debian-embedded@lists.debian.org 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/