J'ai un fichier de paquetage Debian (.deb) qui manque d'une bibliothèque de clés. Je ne connais pas les spécificités de la création d'un paquet Debian. Est-il possible d’ajouter ce fichier de bibliothèque dans le paquet Debian?
Si la copie de ce fichier de bibliothèque particulier sur votre système installé fonctionne, cela devrait également fonctionner si vous insérez la bibliothèque dans votre paquet deb privé.
Un fichier de paquet Debian n'est rien d'autre qu'une archive de certains fichiers, avec des métadonnées sur ces fichiers et des scripts (facultatifs) exécutés lorsque les fichiers sont copiés sur le système .i.e /
.
Disons que votre système /usr/lib
est-ce sans la bibliothèque manquante disons, necessary-lib.so
├── usr
│ ├── lib
│ │ ├── lib1.so
│ │ ├── lib2.so
│ │ ├── <missing lib necessary-lib.so>
│ │ ├── lib3.so
et copier le fichier de bibliothèque dans /usr/lib/
a fonctionné.
Ensuite, vous pouvez extraire le fichier deb et le placer dans le répertoire usr/lib
des fichiers extraits, puis le reconditionner.
comment injecter la librairie
Commencez par créer un dossier pour extraire le fichier deb
mkdir extracted
Extrayez ensuite votre fichier deb. Je suppose que son nom est mypackage.deb
.
dpkg-deb -R mypackage.deb extracted/
Cela extraira le paquet dans le dossier extracted
. Il y aura un dossier nommé DEBIAN
avec d'autres dossiers comme ceux de /
. Vous devriez y trouver un dossier usr
et un dossier lib
. Vous copiez votre fichier de bibliothèque ici.
En théorie, vous copiez le fichier de bibliothèque au même emplacement que le dossier extrait, en le considérant comme la racine de votre système. Donc, vous allez le copier dans extracted/usr/lib
cp necessary-lib.so extracted/usr/lib
Maintenant, reconstruisez le paquet deb en utilisant cette commande.
dpkg-deb -b extracted
Il créera un nouveau fichier extracted.deb
. C'est votre nouveau fichier deb. Vous devriez pouvoir l'installer maintenant sur plusieurs systèmes sans avoir à copier le fichier de bibliothèque à chaque fois après l'installation.