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
каталоги.
Что не так с моими командами?
2 ответа
Упомянутый вами учебник не используется checkinstall
потому что ничего не установлено в систему: он "локально устанавливает" скомпилированные двоичные файлы в ~/bin
каталог пользователя, выполняющего компиляцию. Он делает это по разным причинам: избегает сложностей системы управления пакетами, избегает путаницы с системными каталогами, делает обновление скомпилированным ffmpeg
проще для пользователей совместно используемых серверов: он избегает root / superuser (при условии наличия зависимостей) и избегает конфликтов с пакетом 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
двоичный файл.
У меня это сработало, я создавал deb пакет для git 2.18
команды:
cd git_2.18.1 (папка, извлеченная из tar) ./configure --bindir=/usr/local/bin && make sudo checkinstall
Был создан пакет git_2.18.1-1_amd64.deb, путь установки которого / usr / local / bin