Недавно имел несколько программ в двоичном представлении, которые появились заархивированный архив (не как пакет Debian), но все еще имели зависимости в них (а именно, карликовая крепость и epsxe), и это чувствует тяжелую работу для прохождения через недостающих библиотек один за другим, проверяя, какой пакет это принадлежит и установка тот пакет.
Есть ли способ объединить программы как ldd
, apt-file
и apt-get
автоматически устанавливать зависимости для того определенного двоичного файла?
Хорошо, поэтому после изучения, как написать сценарий удара, я придумал это. Работы для зависимостей на 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
https://github.com/Managor/install-deps.sh, если я когда-нибудь вношу изменения.