Installer paquets avec dépendances sur système sans Internet
Fermémamiemando Messages postés 33432 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 décembre 2024 - 30 nov. 2022 à 19:55
- Apt offline
- Restauration systeme - Guide
- Installer windows 10 sans compte microsoft - Guide
- Gps sans internet - Guide
- Installer chromecast sur tv - Guide
- Installer windows 11 sur pc non compatible - Accueil - Windows
2 réponses
15 nov. 2022 à 16:22
Bonjour,
L'idéal serait d'avoir une Debian bullseye qui a du réseau. Tu peux par exemple installer une machine virtuelle (e.g., à l'aide de virtualbox) à la maison sous Debian bullseye. Monte une clé USB dans /media/usb. Ensuite, en root :
mount /dev/sdb1 /media/usb # Si ta clé USB est /dev/sdb1 mkdir /media/usb/paquets cd /media/usb/paquets apt update apt download le_paquet_qui_m_interesse umount /media/usb
Le paquet et ses dépendances sont téléchargées dans /media/usb/paquets.
Ensuite reviens avec ta clé USB sur la machine qui n'a pas de réseau, et copie les paquets stockés sur la clé dans dans /var/cache/apt/archives. En root :
mount /dev/sdb1 /media/usb cp /media/usb/paquets/*deb /var/cache/apt/archives umount /media/usb apt install le_paquet_qui_m_interesse
Comme tout est en cache l'installation devrait fonctionner.
Bonne chance
16 nov. 2022 à 11:09
Bonjour
1) Si la base de paquets connues par APT est récente, tu peux directement injecter les paquets dans /var/cache/apt/archives et tu pourras les installer avec apt comme si tu avais du réseau.
2) Sinon
2.a) Il vaut mieux utiliser apt-offline pour mettre à jour la base APT et ainsi pouvoir s'appuyer sur sa capacité à gérer les dépendance.
2.b) si pour une raison donnée, tu ne veux pas ou ne peux pas apt-offline, alors tu peux t'en sortir en répétant autant de fois que nécessaire :
sudo dpkg -i /media/usb/le_paquet_qui_m_interesse_x.y.z.deb
Le problème c'est que dpkg ne sait pas gérer les dépendances (c'est d'ailleurs l'un des gros apports d'apt), et si la base APT n'est pas à jour tu ne pourras pas réparer les dépendances avec :
sudo apt-get install -f
... même si tu copies tes paquets dans /var/cache/apt/archives.
Répéter la commande dpkg fera ce qu'il faut, mais pour APT, chacun des paquets ainsi installé sera marqué en installation explicite (et non par dépendance). Ce statut se voit notamment dans aptitude (paquets iA vs paquets i) et corriger cela nécessite vraisemblablement de passer par apt-mark. Je n'ai jamais vraiment creusé ces aspects, car les seules fois où je dois bidouiller ainsi, c'est pour installer des firmwares de carte réseau (afin d'en avoir !) et ces paquets n'ont pas de dépendances. Mais vu que dans ton cas, tu as des dépendances, cette discussion donne des éléments de pour cette autre approche.
Bonne chance
30 nov. 2022 à 18:25
Coucou :)
Désolé mais des problèmes de santé récents m'ont fait mettre ce projet en pause (je veux trop en faire et à un moment ça casse).
Là, maintenant j'ai Internet par un généreux partage de Wifi (aussi je caresse l'espoir de retrouver ma connexion d'ici peu) et j'ai pu installer apt-offline et générer mon fichier de signature nécessaire pour télécharger depuis un système online pour qu'au prochain problème similaire je puisse installer les paquets manquants sans Internet.
Je n 'ai pas réussi à installer offline les paquets avec leur dépendance (il y avait toujours un truc qui coinçait). J'ai testé plein de solutions mais je n'ai pas du faire ce qui fallait. Je garde sous le coude aussi la possibilité de copier directement le paquet et ses dépendances dans /var/cache/apt/archive pour installer ce paquet.
Toutefois je ne laisse pas tomber ce sujet, j'ai envie de trouver une méthode qui marche si je dois installer sur un PC qui est constamment offline (ex : chalet dans la montagne :D), j'expérimenterais sans doute plus tard et ne manquerais pas de faire un retour.
En tout cas merci du temps que tu m'as consacré :)
lnj
30 nov. 2022 à 19:55
Hello lenainjaune,
J'espère que tu vas vite te rétablir.
Concernant ton problème, je me permets de te rappeler que si ton problème consiste à installer un paquet firmware (sans dépendance) de sorte à avoir du réseau sur le PC impacté, le plus simple est de récupérer manuellement le .deb depuis un PC qui a une connexion fonctionnelle (par exemple ici pour les cartes intel), le mettre sur ta clé USB, monter la clé USB sur le PC impacté et l'installer avec :
sudo dpkg -i /media/usb/firmware-iwlwifi_20221109-2_all.deb
Dans ce cas particulier, pas besoin d'apt-offline, car le paquet n'a pas de dépendance, et sa version est au moins aussi récente que celle connue par APT. Comme il n'y a pas de dépendances, pas besoin de l'injecter dans /var/cache/apt/archives car on l'installe directement avec dpkg, sans passer par apt. Bien entendu, si le paquet qui t'intéresse a de nombreuses dépendances, apt-offline est sans doute plus indiqué.
Bonne chance et bon rétablissement
15 nov. 2022 à 17:26
Coucou :D
C'est l'inverse, c'est chez moi que je n'ai pas Internet ;)
Il ne télécharge PAS les dépendances apparemment.
Pour avancer sur le sujet, je suis en train d'essayer de récupérer le package apt-offline et ses dépendances.
En suivant ce lien, j'ai testé :
Et il a bien téléchargé le package apt-offline et plein d'autres deb ; à voir si ça suffit !
Modifié le 15 nov. 2022 à 17:32
Ah oui exact, je pensais à tort que ça téléchargeais aussi les dépendances. J'aime bien aussi cette solution qui ne nécessite pas apt-rdepends.
... en remplaçant ${PACKAGES} par la liste des paquets qui nous intéressent.
Bonne chance
15 nov. 2022 à 19:21
Cool merci :D ! J'aime bien n'avoir que des outils natifs !
De plus la version que tu as trouvé récupère plus de packages que celle que j'ai trouvé qui en plus se révèle insuffisante dans mon cas.
En virtu, j'ai réussi à installer apt-offline (bien que j'ai quelques galères avec le réseau qui m'a forcé à redémarrer la VM pour voir une réparation d'inodes => ?) ; en tout cas, j'ai pu générer le fichier sig nécessaire pour pouvoir rapatrier ce dont j'ai besoin avec apt-offline
Je vais aussi tenter la solution avec synaptic au cas où ça donne plus de résultats.
Je te dirais si ça a marché !