web-dev-qa-db-fra.com

Checkinstall n'installe pas le paquet globalement

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?

4
bkdaaqra

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:

Déplacez-le sur /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}

Utilisez 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.

5
llogan

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

0
rgh