Checkinstall не устанавливает пакет глобально

Я пытаюсь скомпилировать 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 каталоги.

Что не так с моими командами?

4
задан 27 October 2018 в 15:22

2 ответа

Учебное руководство, которое Вы упомянули, не использует 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 которым это будет, если Вы правильно следовали учебному руководству.

С другой стороны, Вы могли удалить --prefix="$HOME/ffmpeg_build" и --bindir="$HOME/bin" при конфигурировании ffmpeg, затем выполненный PATH="$HOME/bin:$PATH" make, и наконец выполненный Ваш checkinstall управляйте от своего вопроса, если Вы хотите установить все остальное (библиотеки, документация, ffplay, ffprobe) также вместо просто ffmpeg двоичный файл.

5
ответ дан 1 December 2019 в 09:32

Это работало на меня, я создавал deb пакет для мерзавца 2.18

команды:

CD git_2.18.1 (tar извлек папку)./настраивать - bindir =/usr/local/bin && делает sudo checkinstall

Пакет git_2.18.1-1_amd64.deb был создан, кто путь установки,/usr/local/bin

0
ответ дан 1 December 2019 в 09:32

Другие вопросы по тегам:

Похожие вопросы: