Автор Тема: bash-скрипт ldd-requires  (Прочитано 3929 раз)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #15 : 22.06.2015 23:59:19 »
Спасибо большое! Опакетил.
« Последнее редактирование: 23.06.2015 12:02:23 от Антон Мидюков »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #16 : 28.06.2015 08:28:40 »
Новая версия скрипта

#!/bin/bash

export TEXTDOMAIN="ldd-requires" #name_file .mo
export TEXTDOMAINDIR="/usr/share/locale"
export OUTPUT_CHARSET=UTF-8
. gettext.sh


if [ -z "$1" ] #Если нет аргументов
then
echo -e `gettext 'Missing arguments'`
else
binary=`file $1 | cut -d " " -f3`
case $(arch) in
"x86_64")
binarch=64;;
"i686"|"i586"|"i486"|"i386")
binarch=32;;
esac
#
case "$binary $binarch" in
"32-bit 64") #32 битный бинарик и 64 битная система
echo -e `gettext '32-bit file'`
echo -e `gettext 'You have a 64 bit OS'`
#создаём массив ldd_list, в который помещаем
#список недостающих библиотек
ldd_list=( $(ldd $1 | grep "not found" | uniq | cut -d " " -f1) )
if [[ ${#ldd_list[*]} != 0 ]] #Если список не пуст
then
echo -e `gettext 'The list of missing libraries:'`
echo -e ${ldd_list[@]}
echo -e `gettext "Is search packages"`
echo -e `gettext "It may take a long time."`
#циклически ищем каждую библиотеку и добавляем
#в массив название пакетов их содержащих
for line in ${ldd_list[@]}
do
package_found=`apt-cache search "$line"| grep i586 | cut -d " " -f1`
echo $package_found
packages_list=( "${packages_list[@]}" "$package_found" )
done   

#Если список найденных пакетов не пуст
if [[ ${#packages_list[*]} != 0 ]]
then
echo -e `gettext 'Please install packages'`
echo -e "apt-get install ${packages_list[@]}"
else
echo -e `gettext 'Packages not find'`
fi
else
echo -e `gettext 'All libraries are already installed'`
fi;;
"32-bit 32"|"64-bit 64") #Архитектура бинарика соответствует ОС
echo -e `gettext 'Architecture binary file corresponds to the OS'`
ldd_list=( $(ldd $1 | grep "not found" | uniq | cut -d " " -f1) )
if [[ ${#ldd_list[*]} != 0 ]]
then
echo -e `gettext 'Please install packages'`
echo -e "apt-get install ${ldd_list[@]}"
else
echo -e `gettext 'All libraries are already installed'`
fi;;
"64-bit 32") #если 64 битный бинарик и 32 битная система
echo -e `gettext 'You cannot run 64 bit file on 32-bit OS'`;;
*) #остальные варианты
echo -e "$1 `gettext 'not a dynamic executable'`";;
esac
fi

Оффлайн kostyalamer

  • Мастер
  • ***
  • Сообщений: 432
    • Сайт клуба активных пользователей ALT Linux
Re: bash-скрипт ldd-requires
« Ответ #17 : 28.06.2015 08:41:01 »
Антон, давай к нам в клуб : http://forum.russ2.com/index.php?showtopic=2735
Твои пакеты запихаем в клубную репу http://altclub.100ms.ru/%D0%A0%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%B0%D1%80%D0%B8%D0%B8-%D0%BA%D0%BB%D1%83%D0%B1%D0%B0/
Еще про клуб, чем кто занят : http://forum.russ2.com/index.php?showforum=203
Archlinux  / Altlinux Free Mate p8

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #18 : 28.06.2015 20:38:11 »
Создал репозиторий на GitHub: https://github.com/midyukov-anton/ldd-requires
Так как скрипт, сопутствующий Makefile и spec довёл до ума, то присвоил версию 1.0.0, скачать можно здесь теперь: https://github.com/midyukov-anton/ldd-requires/releases/tag/1.0.0

Оффлайн kostyalamer

  • Мастер
  • ***
  • Сообщений: 432
    • Сайт клуба активных пользователей ALT Linux
Re: bash-скрипт ldd-requires
« Ответ #19 : 01.07.2015 19:30:43 »
Антон, погляди эту тему, в клубную репу я твою прогу давно залил, тут Гена намекает на залить в бранчи / Сизиф : http://forum.russ2.com/index.php?showtopic=2724&pid=43272&st=480&#entry43272
Archlinux  / Altlinux Free Mate p8

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #20 : 11.07.2015 06:41:49 »
Новая версия ldd-requires-1.1.1-alt2 пришла в Сизиф.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #21 : 26.07.2015 05:37:17 »
ldd-requires-1.1.1-alt2 пришла теперь и в p7.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: bash-скрипт ldd-requires
« Ответ #22 : 07.03.2016 08:46:02 »
Новая версия 1.2.0 отправлена в Сизиф, p7 и t7. Наверное придёт завтра. Изменения:
- Выделил функцию find-requires, так что сократился объём кода. Также теперь поиск пакетов выполняется и для случая, когда архитектура бинарика и ОС совпадает.
- Заменил табуляцию на пробельные отступы и изменил стиль написания кода. Надеюсь, что теперь код стал полностью понятен
- Добавил фильтрацию debuginfo пакетов в выдаче
- Удалил английскую трансляцию, так как оригинальный текст и так на английском
- Замержил репозитории на git.alt и github. Теперь  на github фактически зеркало репозитория на git.alt.