J'essaie de compiler ffmpeg
à partir de sources et de créer le paquet deb
afin d'installer ffmpeg globalement et de le supprimer grâce à la commande dpkg -r
.
Voici mes commandes.
# Installing FFmpeg
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree
PATH="$HOME/bin:$PATH" make
Sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
--deldoc=yes --fstrans=no --default
hash -r
Tout se compile avec succès, des packages deb sont créés mais lorsque j'essaie d'utiliser ffmpeg
je reçois
ffmpeg: command not found
Cela signifie donc que ffmpeg
n'est toujours pas installé dans les répertoires $PATH
.
Quel est le problème avec mes commandes?
Le tutoriel que vous avez mentionné n'utilise pas checkinstall
car rien n'est installé sur le système: il "installe localement" les fichiers binaires compilés dans le répertoire ~/bin
de l'utilisateur qui effectue la compilation. Cela s'explique pour diverses raisons: évite les complexités du système de gestion des paquets, évite de jouer avec les répertoires système, facilite la mise à jour compilée ffmpeg
, évite les utilisateurs root sur le serveur/superutilisateur (en supposant que des dépendances sont disponibles), et évite les conflits avec le paquet ffmpeg dans le dépôt officiel.
Quelques méthodes pour rendre votre ffmpeg
compilé globalement exécutable pour tous les utilisateurs:
/usr/local/bin
C'est facile:
Sudo mv ~/bin/{ffmpeg,ffprobe,ffplay} /usr/local/bin
L'inconvénient est qu'il ne sera pas intégré au système de gestion des paquets, mais cela ne devrait pas être un gros problème car l'annulation est simple.
Pour "désinstaller":
Sudo rm /usr/local/bin/{ffmpeg,ffprobe,ffplay}
checkinstall
Si vous voulez utiliser checkinstall
pour installer le binaire ffmpeg
compilé et l'intégrer au système de gestion des paquets, pour que tout utilisateur puisse l'exécuter:
cd ~/bin
Sudo checkinstall --pkgname=ffmpeg --pkgversion="8:$(date +%Y%m%d%H%M)-git" --default install -Dm755 ffmpeg /usr/local/bin/ffmpeg
Cela suppose que le binaire ffmpeg
est dans ~/bin
, ce qui sera le cas si vous avez correctement suivi le didacticiel.
Vous pouvez également supprimer --prefix="$HOME/ffmpeg_build"
et --bindir="$HOME/bin"
lors de la configuration de ffmpeg
, puis exécuter PATH="$HOME/bin:$PATH" make
et enfin exécuter votre commande checkinstall
à partir de votre question si vous souhaitez installer tout le reste (bibliothèques, documentation, ffplay
, ffprobe
) aussi au lieu du binaire ffmpeg
.
Cela a fonctionné pour moi, je créais un paquet deb pour git 2.18
commandes:
cd git_2.18.1 (dossier extrait du fichier compressé) ./configure --bindir =/usr/local/bin && make Sudo checkinstall
Le paquet git_2.18.1-1_AMD64.deb a été créé. Le chemin d'installation est/usr/local/bin