web-dev-qa-db-fra.com

Ajouter un fichier de bibliothèque à un fichier de paquetage Debian déjà existant .deb

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?

1
simplename

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.

3
Anwar