移至/usr/local/bin

移至/usr/local/bin

我正在尝试ffmpeg从源代码进行编译并创建deb包以便全局安装 ffmpeg 并可以使用dpkg -r命令将其删除。

这是我的命令。

# 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

一切都成功编译,deb 包已创建,但当我尝试使用时,ffmpeg我得到了

ffmpeg: command not found

所以这意味着ffmpeg仍然没有安装在$PATH目录中。

我的命令有什么问题?

答案1

您提到的教程没有用,checkinstall因为系统没有安装任何东西:它会“本地安装”编译后的二进制文件到~/bin执行编译的用户的目录中。这样做的原因有很多:避免了包管理系统的复杂性,避免了与系统目录的混乱,使更新编译ffmpeg更容易,对于共享服务器用户,它避免了 root/超级用户(假设依赖项可用),并避免了与ffmpeg官方存储库中的软件包。

使编译结果ffmpeg可供所有用户全局执行的一些方法:

移至/usr/local/bin

这很容易:

sudo mv ~/bin/{ffmpeg,ffprobe,ffplay} /usr/local/bin

缺点是它不会被集成到包管理系统中,但这不是什么大问题,因为撤消它很简单。

要“卸载”:

sudo rm /usr/local/bin/{ffmpeg,ffprobe,ffplay}

使用checkinstall

如果您想使用checkinstall安装已编译的ffmpeg二进制文件来集成到包管理系统中,那么任何用户都可以执行它:

cd ~/bin
sudo checkinstall --pkgname=ffmpeg --pkgversion="8:$(date +%Y%m%d%H%M)-git" --default install -Dm755 ffmpeg /usr/local/bin/ffmpeg

如果您正确地遵循了本教程,那么这假定ffmpeg二进制文件位于其所在的位置。~/bin

或者,如果您还想安装其他所有内容(库、文档、、),而不仅仅是二进制文件,您可以在配置时删除--prefix="$HOME/ffmpeg_build"和,然后运行,最后从您的问题中运行命令。--bindir="$HOME/bin"ffmpegPATH="$HOME/bin:$PATH" makecheckinstallffplayffprobeffmpeg

答案2

它对我有用,我正在为 git 2.18 创建 deb 包

命令:

cd git_2.18.1 (tar 解压文件夹) ./configure --bindir=/usr/local/bin && make sudo checkinstall

软件包 git_2.18.1-1_amd64.deb 已创建,其安装路径为 /usr/local/bin

相关内容