Автор Тема: snap4arduino  (Прочитано 10649 раз)

Оффлайн woronin

  • Завсегдатай
  • *
  • Сообщений: 381
    • Email
snap4arduino
« : 14.09.2018 10:16:42 »
Я сейчас в школах вместе с учителями разбираю как учить детей программрованию устройств на ардуино. Решили использовать для новичков snap4arduino. C сайта скачал без проблем, http://s4a.cat/snap/downloads/gnu64/Snap4Arduino.tar.gz  распаковал архив, запускаю установку - он грязно ругается, что ему не хватает либы
$ ./Snap4Arduino
Didn't find libudev.so.1 or libudev.so.0. Please provide a link.
Also consider providing a patch to the Snap4Arduino project to help other users.

Через синаптик установил, все либы которые там есть на этот поиск libudev. При установки он ругнулся, что некоторые связанные не может найти, и поэтому видимо ошибка не снялась
Как мне установить эту приблуду на альты? Подскажите кто знает.
$ uname -a
Linux woronin-comp.localdomain 4.9.43-un-def-alt0.M80P.1 #1 SMP PREEMPT Sun Aug
$ cat /etc/redhat-release
ALT Workstation 8.1

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 908
    • Домашняя страница
    • Email
Re: snap4arduino
« Ответ #1 : 14.09.2018 10:25:46 »
Обновите индексы (кнопка «Обновить сведения» в Synaptic).
Андрей Черепанов (cas@)

Оффлайн woronin

  • Завсегдатай
  • *
  • Сообщений: 381
    • Email
Re: snap4arduino
« Ответ #2 : 14.09.2018 22:45:35 »
Не нашел кнопку «Обновить сведения» в Synaptic. На всякий случай нажал кнопку "Получить сведения" после этого пекеты вроде установились, но не полегчало с программой. Я посмотрел код - там вот что
$ cat Snap4Arduino
#!/bin/sh

BASEDIR=$(dirname $0)

# Find libudev.so.0 for node-webkit
if ! test -h libudev.so.0; then
    if test -e /lib/x86_64-linux-gnu/libudev.so.1; then
        ln -s /lib/x86_64-linux-gnu/libudev.so.1 $BASEDIR/libudev.so.0
    elif test -e /opt/google/chrome/libudev.so.0; then
        ln -s /opt/google/chrome/libudev.so.0 $BASEDIR/libudev.so.0
    else
        echo "Didn't find libudev.so.1 or libudev.so.0. Please provide a link."
        echo "Also consider providing a patch to the Snap4Arduino project to help other users."
        exit 1
    fi
fi

LD_LIBRARY_PATH=$BASEDIR $BASEDIR/nw $BASEDIR/app.nw
Получается, что в Альтах нету нужной библиотеки, и он линк не можнт сделать
ln -s /lib/x86_64-linux-gnu/libudev.so.1 $BASEDIR/libudev.so.0

Почему такой либы нет, и как поступить?

Оффлайн woronin

  • Завсегдатай
  • *
  • Сообщений: 381
    • Email
Re: snap4arduino РЕШЕНО
« Ответ #3 : 14.09.2018 23:01:25 »
Полегчало. Сделал линк
ln -s /lib/libudev.so.1 libudev.so.0
И оно - о чудо! Заработало ))))

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: snap4arduino
« Ответ #4 : 15.09.2018 13:26:41 »
Получается, что в Альтах нету нужной библиотеки, и он линк не можнт сделать
ln -s /lib/x86_64-linux-gnu/libudev.so.1 $BASEDIR/libudev.so.0

:-) А это скрипт случайно не для Debian/Ubuntu?

Почему такой либы нет, и как поступить?

:-) Её не может не быть:
# rpm -qa "libudev*"
libudev1-237-alt2.M80P.3
# rpm -ql libudev1 | grep lib/
/lib/libudev.so.1
/lib/libudev.so.1.6.9
# apt-search-pkgs-with-deps libudev1

List of installed packages for which the package libudev1 in dependencies
Please wait...

NetworkManager-adsl
NetworkManager-daemon
alterator-browser-qt5
libnm-glib4
libnm
ppp
udev-alsa
xorg-drv-vmmouse
xorg-drv-qxl
xorg-drv-nouveau
xorg-drv-intel
xorg-drv-radeon
xorg-server
xorg-drv-evdev
libqt5-eglfsdeviceintegration
libatasmart
libcolord
liblvm2
libdevmapper
libinput
libgudev
usbutils
util-linux
lsblk
libusb



Не ищите последнюю команду выше, её в Линукс нет:
# apt-search-pkgs-with-deps --help

Search for installed packages
that require the requested installed package

Usage: apt-search-pkgs-with-deps [parameter]

Parameters:
 package        installed package name
 -h, --help     this help

# cat /usr/local/sbin/apt-search-pkgs-with-deps
#!/bin/bash
#
# Search for Packages that Require the Package:
# Search for installed packages that require the requested installed package
#


if [ -z "$1" ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then

            echo
            echo "Search for installed packages"
            echo "that require the requested installed package"
            echo
            echo "Usage: `basename $0` [parameter]"
            echo
            echo "Parameters:"
            echo " package        installed package name"
            echo " -h, --help     this help"
            echo

exit 0
fi


instpkg=$(echo "$1"); \
echo -e '\nList of installed packages for which the package' $instpkg 'in dependencies\nPlease wait...\n'; \
apt-get remove $instpkg -s|grep Remv|grep -v $instpkg|awk '{print $2}'|\
while read line; \
  do STR=`apt-cache depends $line|grep '^ '|grep -o $instpkg|wc -w`; \
    if [ "$STR" != 0 ]; \
      then rpm -qi $line|grep ^Name|awk '{print $3}';\
    fi; \
done; echo -e '\n'


Команда apt-search-pkgs-with-deps ищет установленные пакеты у которых запрашиваемый установленный пакет в зависимостях.
Выброс команды apt-search-pkgs-with-deps выше, говорит, что пакет libudev1, в котором библиотека libudev.so.1, не может быть не установлен, - он у многих важных пакетов в зависимостях.

Листинг отправлен в справочник:
https://forum.altlinux.org/index.php?topic=32361.msg317832#msg317832
Оглавление справочника тут:
https://forum.altlinux.org/index.php?topic=32361.msg227843#msg227843
« Последнее редактирование: 15.09.2018 13:55:36 от Speccyfighter »