On veut compiler une nouvelle librairie dans notre beau code. Le « README » indique seulement 2 dépendances… Par expérience, c’est rare que la liste soit exhaustive.
Voici un truc rapide de la part d’un collègue pour aller à la «chasse aux dépendances» sans cochonner sa machine. Ça implique Docker et linux.
À mettre dans Dockerfile
FROM ubuntu:14.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update # regular tools needed for the job RUN apt-get install -y bash binutils build-essential libstdc++6 # the actual "new dependencies" we are hunting down RUN apt-get install -y 'libsigc++-2.0-dev' libglibmm-2.4-dev
Sauvegarder dans le répertoire à partir duquel l’image sera constuite. Tout ce que le répertoire contient sera copié dans l’image, alors $HOME n’est probablement pas un bon endroit pour ça.
Pour construire l’image:
docker build -t nom_de_ton_image .
Exécuter et se connecter à l’image.
docker run --rm -ti -v $PWD:/buildenv nom_de_ton_image:latest bash
Ensuite, mettre le code désiré dans /buildenv
. Essayer de « builder ». Exécuter les « apt install
» voulus et les ajouter à mesure dans le Dockerfile. Une fois que ça fonctionne, quitter. Reconstruire le docker à partir du Dockerfile à jour. Essayer de « rebuilder » sans avoir à exécuter de « apt install
« . Si c’est bon, la recette est complète.
Merci Éric et Jean!