web-dev-qa-db-ja.com

Checkinstallはパッケージをグローバルにインストールしません

Ffmpegをグローバルにインストールし、dpkg -rコマンドで削除できるようにするために、ソースからffmpegをコンパイルし、debパッケージを作成しようとしています。

これが私のコマンドです。

# 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ディレクトリにインストールされていません。

コマンドの何が問題になっていますか?

4
bkdaaqra

前述のチュートリアルでは、システムに何もインストールされていないため、checkinstallは使用しません。コンパイルを実行するユーザーの~/binディレクトリにコンパイル済みのバイナリを「ローカルにインストール」します。これはさまざまな理由で行われます:パッケージ管理システムの複雑さを回避し、システムディレクトリの混乱を回避し、コンパイル済みffmpegの更新を容易にします。共有サーバーユーザーの場合、ルート/スーパーユーザーを回避します公式リポジトリの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にあると想定しています。これは、チュートリアルを適切に実行した場合になります。

または、ffmpegを設定するときに--prefix="$HOME/ffmpeg_build"--bindir="$HOME/bin"を削除し、PATH="$HOME/bin:$PATH" makeを実行し、インストールする場合は質問からcheckinstallコマンドを最後に実行します。 ffplayバイナリだけでなく、その他すべて(ライブラリ、ドキュメント、ffprobeffmpeg)も同様です。

5
llogan

それは私のために働いた、私は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です。

0
rgh