Есть ли способ установить зависимости, когда программа их встречает?
Недавно было несколько бинарных программ, которые пришли в архиве zip (не как пакет 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
https://github.com/Managor/install-deps.sh если я когда-нибудь внесу изменения.