最近有几个二进制程序以压缩包形式出现(不是 Debian 包),但其中仍然有依赖项(即 dwarf fortress 和 epsxe),而逐一检查缺少的库、检查它属于哪个包并安装该包感觉很繁琐。
有没有办法将诸如和之类的程序结合起来ldd
,apt-file
以apt-get
自动安装特定二进制文件的依赖项?
答案1
好吧,在学习如何编写 bash 脚本后,我想到了这个。适用于 64 位和 32 位依赖项。
#!/bin/bash
DESTINATION=${1/ /\\ }
TYPE=$(eval readelf -h $DESTINATION | grep Class | awk ' {print $2}')
FILES=$(eval ldd $DESTINATION | grep "not found" | awk ' {print $1} ' | paste -s -d ' ')
for FILE in $FILES; do
PACKAGE=$(apt-file search $FILE | awk ' {print $1}' | sed 's/://g' | uniq)
if [ ! -z $PACKAGE ]
then
if [ $TYPE = "ELF32" ]
then
sudo apt install ${PACKAGE}:i386
else
sudo apt install ${PACKAGE}
fi
fi
done