Bonjour,
Je travail actuellement sur un container docker issue d'une image debian (entre autre) très minimaliste récente. Mon objectif est de faire une install de paquet nécessaire (smbclient).
Le souci : etant donné que cette image est très réduite, il n'y a plus d'installeur (apt, dpkg), mais il n'y a plus non plus de make ou ar.
Wget est présent je peux donc télécharger un fichier dans les dépots debian mais une install devient délicate.
Ma question est donc : dans ce contexte est-il encore possible d'installer dpkg ou apt from scratch sans make ;)
Merci pour votre point de vue.
Install paquets
- piratebab
- Site Admin
- Messages : 5854
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : En ligne
Bonjour, je ne comprends pas pourquoi tu veux recompiler un paquet avec make. Il n'existe pas déja compilé pour ton architecture ?Une fois le paquet chargé avec wget, est ce que tu as accès à la commande dpkg pour l'installer ?
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Bonjour Piratebab et merci pour ta réponse.
Je n'ai pas directement besoin de make , mais après avoir téléchargé dpkg ici : https://ftp.debian.org/debian/pool/main/d/dpkg/ (jai pris le dernier xz en date) décompressé et copié dans /usr/bin. A ce stade si je tape dpkg il me renvoie une erreur indiquant qu'il manque un fichier pour exécuter dpkg. D'après ce site : https://ioflood.com/blog/install-dpkg-command-linux/ il faut faire un make install pour rendre ce dernier ajout fonctionnel.
Maintenant s'il existe une méthode plus simple je suis preneur.
Je n'ai pas directement besoin de make , mais après avoir téléchargé dpkg ici : https://ftp.debian.org/debian/pool/main/d/dpkg/ (jai pris le dernier xz en date) décompressé et copié dans /usr/bin. A ce stade si je tape dpkg il me renvoie une erreur indiquant qu'il manque un fichier pour exécuter dpkg. D'après ce site : https://ioflood.com/blog/install-dpkg-command-linux/ il faut faire un make install pour rendre ce dernier ajout fonctionnel.
Maintenant s'il existe une méthode plus simple je suis preneur.
- lol
- Site Admin
- Messages : 5054
- Inscription : 04 avr. 2016, 12:11
- Localisation : Madagascar
- Status : Hors-ligne
Salut,
dpkg à des dépendances...
Tu peux nous renvoyer l'erreur plutôt que de l'évoquer ?
Ta Debian "minimaliste" (On devrait plutôt dire "désossée"
) est est fait à partir de quelle version de base ?
dpkg à des dépendances...
Code : Tout sélectionner
# apt-cache depends dpkg
dpkg
Pré-Dépend: libbz2-1.0
Pré-Dépend: libc6
Pré-Dépend: liblzma5
Pré-Dépend: libmd0
Pré-Dépend: libselinux1
Pré-Dépend: libzstd1
Pré-Dépend: zlib1g
Dépend: tar
Casse: <libapt-pkg5.0>
Casse: lsb-base
Suggère: apt
Suggère: debsig-verify
Code : Tout sélectionner
dpkg il me renvoie une erreur indiquant qu'il manque un fichier pour exécuter dpkg
Ta Debian "minimaliste" (On devrait plutôt dire "désossée"

Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Salut lol,
Ok suite à de nouveaux test et après réanalyse des précédents, l'erreur signalant le manque d'un fichier venait de l'utilisation d'un fichier dpkg extrait d'une archive .deb (désolé je n'ai plus trace exacte de l'erreur. si besoin je la reproduirais).
En effet cette dedian est vraiment très light, je n'en connais malheureusement pas l'origine.
un uname -a :
Mon dernier test en suivant scrupuleusement https://ioflood.com/blog/install-dpkg-command-linux/ (Installing Dpkg from Source Code) m'indique tout simplement qu'il manque les outils de compilation.
Bref je ne suis pas sur d'arriver à mes fins et si je peux reconstruire une image avec un debian complet, je ne suis pas certain de reproduire ses fonctionnalité complètes
Ok suite à de nouveaux test et après réanalyse des précédents, l'erreur signalant le manque d'un fichier venait de l'utilisation d'un fichier dpkg extrait d'une archive .deb (désolé je n'ai plus trace exacte de l'erreur. si besoin je la reproduirais).
En effet cette dedian est vraiment très light, je n'en connais malheureusement pas l'origine.
un uname -a :
Code : Tout sélectionner
Linux cbdb5c9f31f5 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07) x86_64 GNU/Linux
Code : Tout sélectionner
checking for gcc... no
checking for cc... no
checking for cl.exe... no
checking for clang... no
configure: error: in `/tmp/dpkg-1.22.2':
configure: error: no acceptable C compiler found in $PATH
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Comme expliqué dans mon premier post, j'ai besoin de compléter l'image de base afin d'y ajouter smbclient et probablement quelques autres outils. Aucun outils de gestion de paquet n'étant présent dans l'image actuelle ce qui m'amène à ces gymnastiques...
- piratebab
- Site Admin
- Messages : 5854
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : En ligne
Cela ne justifie pas une compilation. Un ajout de binaire fait l'affaire.
Tu peux charger les paquets depuis une autre machine, en extraire les binaires, et les copier sur ton serveur. Ce sera bien plus simple que d'installer tout les paquets sources nécessaires à une compilation.
Tu peux charger les paquets depuis une autre machine, en extraire les binaires, et les copier sur ton serveur. Ce sera bien plus simple que d'installer tout les paquets sources nécessaires à une compilation.
-
- Contributeur
- Messages : 930
- Inscription : 05 août 2016, 20:25
- Status : Hors-ligne
Mauvaise idée. Des fichiers sources n'ont rien à faire dans /usr/bin.Clemzo a écrit : 16 janv. 2024, 09:46 après avoir téléchargé dpkg ici : https://ftp.debian.org/debian/pool/main/d/dpkg/ (jai pris le dernier xz en date) décompressé et copié dans /usr/bin
Oui. Pour les extraire sans dpkg il faudrait disposer de la commande "ar" qui fait partie du paquet binutils et je doute qu'il soit installé.piratebab a écrit : 16 janv. 2024, 19:55 Tu peux charger les paquets depuis une autre machine, en extraire les binaires, et les copier sur ton serveur.
Mais ça ne suffira peut-être pas. La bonne configuration de certains paquets peut nécessiter de prendre en compte leurs fichiers de contrôle (preinst, postinst, triggers) et la présence de debconf. Ce n'est pas le cas de dpkg lui-même mais peut-être de certaines de ses dépendances. Notamment il faudra exécuter ldconfig après l'installation des bibliothèques pour créer les liens et le cache des bibliothèques partagées.
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Salut PascalHambourg,
En effet je peux faire cela (je testerais prochainement), mais je ne maitrise pas le périmètre des dépendances (je testerai avec l'arbre des dépendances) et cela risque d'être touchi.
Merci pour ce chemin qui semble le plus simple à mettre en œuvre.
En effet je peux faire cela (je testerais prochainement), mais je ne maitrise pas le périmètre des dépendances (je testerai avec l'arbre des dépendances) et cela risque d'être touchi.
Merci pour ce chemin qui semble le plus simple à mettre en œuvre.
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Ok donc après avoir simplement copié les binaires en provenance d'une autre machine, lorsque je lance dpkg, j'obtiens l'erreur dont je parlais dans mon premier post : Je précise bien évidement que /usr/bin/dpkg est bien présent.
C'est la même erreur que lorsque j'extrait dpkg d'une archive deb
Code : Tout sélectionner
bash: /usr/bin/dpkg: cannot execute: required file not found
C'est la même erreur que lorsque j'extrait dpkg d'une archive deb
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
si je fais une analyse des dépendances nécessaires à dpkg j'obtiens ceci :
Or tar est bien présent et fonctionnel donc les pre-depends sont pour tar.
Donc je vois pas d'ou provient cette erreur. Ne faudrait-il pas, suite au transfert du fichier dpkg, effectuer une sorte re-initialisation (j'ai effectuer un reboot sans succès) pour informé le système du nouveau venu ?
Code : Tout sélectionner
Pre-Depends: libbz2-1.0, libc6 (>= 2.34), liblzma5 (>= 5.4.0), libmd0 (>= 0.0.0), libselinux1 (>= 3.1~), libzstd1 (>= 1.5.2), zlib1g (>= 1:1.1.4)
Depends: tar (>= 1.28-1)
Donc je vois pas d'ou provient cette erreur. Ne faudrait-il pas, suite au transfert du fichier dpkg, effectuer une sorte re-initialisation (j'ai effectuer un reboot sans succès) pour informé le système du nouveau venu ?
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Ok suite de mes pérégrinations :
De la même façon que j'ai transféré le fichier dpkg en provenance d'une autre machine dans /usr/bin, j'ai aussi transféré /var/lib/dpkg.
Je précise que j'ai effectuer aussi un ldconfig.
Suite à un reboot, j'obtiens toujours la même erreur.
De la même façon que j'ai transféré le fichier dpkg en provenance d'une autre machine dans /usr/bin, j'ai aussi transféré /var/lib/dpkg.
Je précise que j'ai effectuer aussi un ldconfig.
Suite à un reboot, j'obtiens toujours la même erreur.
- piratebab
- Site Admin
- Messages : 5854
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : En ligne
Pour savoir comment et ou installer les fichiers d'un paquet, il faut ouvrir le .deb avec un archiveur
Tu y trouveras un fichier data.tar.gz, qui contient une arborescences de fichiers à copier sur ton systeme (en plus de l'éxécutable)
Tu y trouveras un fichier data.tar.gz, qui contient une arborescences de fichiers à copier sur ton systeme (en plus de l'éxécutable)
-
- Membre
- Messages : 10
- Inscription : 06 oct. 2022, 19:19
- Status : Hors-ligne
Ok merci.
J'ai décompressé le .deb correspondant au dpkg transféré préalablement, J'ai transféré le data.tar.xz dans mon container, j'ai décompressé ce dernier et copier chaque répertoire obtenu vers sa destination.
J'ai refait un ldconfig -v (qui ne sort aucun message) et rebooté et...
Rien de mieux malheureusement.
J'ai décompressé le .deb correspondant au dpkg transféré préalablement, J'ai transféré le data.tar.xz dans mon container, j'ai décompressé ce dernier et copier chaque répertoire obtenu vers sa destination.
J'ai refait un ldconfig -v (qui ne sort aucun message) et rebooté et...
Rien de mieux malheureusement.
-
- Contributeur
- Messages : 930
- Inscription : 05 août 2016, 20:25
- Status : Hors-ligne
D'où tiens-tu cela ?Clemzo a écrit : 17 janv. 2024, 09:51 Or tar est bien présent et fonctionnel donc les pre-depends sont pour tar.
Qu'affiche
Code : Tout sélectionner
ldd /usr/bin/dpkg
- piratebab
- Site Admin
- Messages : 5854
- Inscription : 24 avr. 2016, 18:41
- Localisation : sud ouest
- Status : En ligne
Il ne te reste plus qu'a exécuter manuellement les scripts d'install contenus dans le .deb.
Leur lecture est toujours instructive, il doivent faire autre chose qu'une simple copie de fichiers (par ex modifier PATH, ou autre variable d'environnement).
édit:
question de base: est ce que tu as rendu le fichier exécutable ...... exécutable ?
pour vérifier
si pas de x sur la ligne, pas bon
Pour le rendre exécutable
Leur lecture est toujours instructive, il doivent faire autre chose qu'une simple copie de fichiers (par ex modifier PATH, ou autre variable d'environnement).
édit:
question de base: est ce que tu as rendu le fichier exécutable ...... exécutable ?
pour vérifier
Code : Tout sélectionner
ls - l fichier
Pour le rendre exécutable
Code : Tout sélectionner
chmod +x