find . -type f -name "*.sh" -exec chmod +x {} \;
linux
./main_run_build_script.sh build-linux
或android arm64
./main_run_build_script.sh build-arm64
#@ 安装ffmpeg linux:
./main_run_build_script.sh install-linux
#三个参数一起时,最后一个是安装路径
./main_run_build_script.sh build-linux install-linux /usr/local
glew 编译容易出错的地方 config/config.guess
#如果外部设置SYSTEM的config平台,此处config.guess 猜测的对于glew类库不支持 library -lX11 和 library -lGL,可以注释掉
SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;')
SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1)
ifeq ($(SYSTEM.SUPPORTED), 1)
include config/Makefile.$(SYSTEM)
else
$(error "Platform '$(SYSTEM)' not supported")
endif
#如果不想外部设置,可以在此处写为egl的androi支持的类库,反注释一下
# SYSTEM=linux-clang-egl
# include config/Makefile.$(SYSTEM)
linux
./main_run_build_script.sh build-linux install-linux /usr/local
make clean && make distclen && 2>dev/null
./configure \
--extra-version=0ubuntu0.22.04.1 \
--toolchain=hardened \
--libdir=/usr/lib/x86_64-linux-gnu \
--incdir=/usr/include/x86_64-linux-gnu \
--arch=x86_64 \
--enable-gpl \
--disable-stripping \
--enable-gnutls \
--enable-ladspa \
--enable-libaom \
--enable-libass \
--enable-libbluray \
--enable-libbs2b \
--enable-libcaca \
--enable-libcdio \
--enable-libcodec2 \
--enable-libdav1d \
--enable-libflite \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--enable-libgme \
--enable-libgsm \
--enable-libjack \
--enable-libmp3lame \
--enable-libmysofa \
--enable-libopenjpeg \
--enable-libopenmpt \
--enable-libopus \
--enable-libpulse \
--enable-librabbitmq \
--enable-librubberband \
--enable-libshine \
--enable-libsnappy \
--enable-libsoxr \
--enable-libspeex \
--enable-libsrt \
--enable-libssh \
--enable-libtheora \
--enable-libtwolame \
--enable-libvidstab \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx265 \
--enable-libxml2 \
--enable-libxvid \
--enable-libzimg \
--enable-libzmq \
--enable-libzvbi \
--enable-lv2 \
--enable-omx \
--enable-openal \
--enable-opencl \
--enable-opengl \
--enable-sdl2 \
--enable-pocketsphinx \
--enable-librsvg \
--enable-libvpl \
--enable-libdc1394 \
--enable-libdrm \
--enable-libiec61883 \
--enable-chromaprint \
--enable-frei0r \
--enable-libx264 \
\
--disable-shared \
--enable-static \
--enable-filter=gltransition \
--extra-libs='-lGLEW -lEGL' \
--enable-cross-compile \
--prefix=/usr
make -j$(nproc)
sudo make install
- 扫描已安装的包和系统服务:这包括扫描文档、处理微码、检查内核镜像和其他包。
- 延迟服务重启:有些服务不会立即重启,而是会在稍后的时候进行重启,除非你手动触发重启。
如果你希望避免这些“Scanning”提示和过程的干扰,下面有几种方法可以尝试:
man-db
是用于处理手册页的工具。你可以通过禁用 man-db
扫描来减少这类提示。编辑 /etc/apt/apt.conf.d/99disable-man-db
文件:
sudo nano /etc/apt/apt.conf.d/99disable-man-db
然后加入以下内容:
DPkg::Post-Invoke { "test -x /usr/bin/mandb && /usr/bin/mandb --no-purge"; };
这会在安装后禁止手册页数据库的自动更新。
needrestart
是一个检查哪些进程需要重启的工具。你可以禁用 needrestart
的扫描功能,从而避免在每次安装包后扫描进程。编辑 /etc/needrestart/needrestart.conf
文件:
sudo nano /etc/needrestart/needrestart.conf
找到并设置:
$nrconf{restart} = 'none';
这会禁用自动重启检查和进程扫描。
如果你看到的是“Scanning linux images...”提示,并且不希望看到这类提示,你可以禁用内核镜像的扫描。编辑 /etc/apt/apt.conf.d/99disable-kernel-scanning
文件:
sudo nano /etc/apt/apt.conf.d/99disable-kernel-scanning
并添加以下内容:
DPkg::Post-Invoke { "test -x /usr/sbin/update-initramfs && /usr/sbin/update-initramfs -u"; };
这样做会阻止内核镜像的扫描过程。
如果你不想每次都看到有关“系统服务重启”的提示,可以使用 systemctl
自动重启这些服务。你可以创建一个脚本来在安装后自动重启这些服务,而不提示用户。比如创建一个脚本 auto-restart-services.sh
,内容如下:
#!/bin/bash
systemctl restart ModemManager.service
systemctl restart auditd.service
systemctl restart docker.service
# 继续添加你想要自动重启的服务
然后在安装后自动运行此脚本,避免手动操作。
确保你使用了 DEBIAN_FRONTEND=noninteractive
环境变量来避免弹出任何交互式提示。例如:
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
这会让系统在安装过程中不显示任何提示。
这些方法可以帮助你减少或消除在 apt
安装过程中出现的“Scanning”提示,特别是与内核、进程和服务重启相关的部分。