Installer un paquet debian sans accès à internet
Publi� le 6 novembre 2006

Cet été je me suis confronté à la problématique suivante : devoir installer des paquets sans accéder à internet et sans posséder les paquets sous forme de fichier '.deb'. Tout d'abord, je conseille de télécharger les paquets debian nécessaires avant toute installation sur un autre ordinateur déconnecté. C'est quand même plus simple.

Au départ j'ai cherché parmi les paquets et les programmes, un utilitaire me permettant de reconstruire le '.deb' : sans succès. Il existe bien un utilitaire (checkinstall) capable de fabriquer un paquetage à partir des sources du programme mais il ne convient pas dans ce cas. En fait, j'ai appris que l'installation des paquets ne se faisait que dans un seul sens. Impossible de reconstruire le paquet une fois installé. Il existe tout de même un moyen d'afficher les listes des fichiers du paquet, ainsi que leur emplacement :


$ less /var/lib/dpkg/info/[nom du paquet].list

Récupérer ces fichiers pour les placer dans une clé USB par exemple est assez simple. On peut utiliser l'utilitaire cpio. Cet utilitaire créé une archive (au format cpio, ou tar ou autre) à partir de la liste des fichiers fournis par l'entrée standard [1].

Attention : cette méthode n'est pas du tout apt-get compatible car le dépôt n'est pas mis à jour en conséquence. Il vaut mieux réserver cette méthode pour les cas où un accès internet est impossible.


$ cpio -ov </var/lib/dpkg/info/[nom du paquet].list >/tmp/[nom du paquet].cpio

Pour installer les fichiers de l'archive, il suffira de taper la commande suivante sur l'ordinateur hôte :


$ cpio -idv <[chemin]/[nom du paquet].cpio

Donc pour récupérer les fichiers du paquet w32codecs par exemple qui permet d'installer les drivers propriétaires permettant de lire les mp3 et autre divx, il faut s'assurer en plus d'avoir installé les paquets dont dépend w32codecs. La commande suivante à exécuter sur l'ordinateur source fera l'affaire :


$ apt-cache rdepends w32codecs | tail -5 | xargs -I '{}' cat '/var/lib/dpkg/info/{}.list' | cat - /var/lib/dpkg/info/w32codecs.list  | grep -ve '/\.' | sort -u | cpio -ov >/media/usbdisk/w32codecs.cpio

La distribution linux de l'ordinateur source et cible doit bien sûr être identique pour que les chemins correspondent.

Ensuite sur l'ordinateur cible :


$ sudo cpio -idv /media/usbdisk/w32codecs.cpio


[1] sdtin

Forum de l'article

# 236 Installer un paquet debian sans accès à internet 6 novembre 2006, par PiTiLeZarD

Ce qui est a adapter en fonction des distrib puisque par exemple sur ubuntu pour mousepad : apt-cache rdepends mousepad

me renvoie

mousepad

Reverse Depends :

xubuntu-desktop

Or je n'ai pas de xubuntu-desktop d'installé ici et il faudrait que je fasse un tail -1 !

Mais la méthode est intéressante =) l'utilisation de cpio aussi !

Merci pour l'astuce !

# 238 Installer un paquet debian sans accès à internet 12 novembre 2006, par Frédéric
Merci pour cette précision -). J'essaierai d'investiguer plus avant le problème des dépendances.
Poster un message