Форум: Applications
Тема: Проблеми при инсталацията на arping-2.09
Автор: gogull

Мнение от gogull пуснато на Май 24 2010, 13:11
Здравейте,

Това е приложението: < http://www.habets.pp.se/synscan/programs.php?prog=arping >. Инсталирал съм необходимите програми - libnet и libpcap.
И ето какво се получава:
Код: 

debian:/home/hsc/arping-2.09# make
make  all-recursive
make[1]: Entering directory `/home/hsc/arping-2.09'
Making all in src
make[2]: Entering directory `/home/hsc/arping-2.09/src'
gcc  -g -O2   -o arping arping.o findib_linux.o -lpcap -lnet -lnsl
arping.o: In function `ping_recv_unix':
/home/hsc/arping-2.09/src/arping.c:864: undefined reference to `pcap_get_selecta                                                                                                                               ble_fd'
arping.o: In function `main':
/home/hsc/arping-2.09/src/arping.c:1270: undefined reference to `pcap_get_select                                                                                                                               able_fd'
collect2: ld returned 1 exit status
make[2]: *** [arping] Error 1
make[2]: Leaving directory `/home/hsc/arping-2.09/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hsc/arping-2.09'
make: *** [all] Error 2

Не мога да намеря решение на проблема нито из документита на програмата, нито из саита и.
Ако някой може да ми помогне ще съм му много благодарен.


Мнение от tolostoi пуснато на Май 24 2010, 13:44
Направи следното:
Код: 
apt-get install build-essential git-core libpcap-dev libnet1-dev

Това ти трябва за компилацията (на Debian Lenny са тези пакети) След това продължаваш
Код: 
mkdir build
cd build
git clone git://github.com/ThomasHabets/arping.git
cd arping
./configure
make
#make install

# Означава, че се изпълнява като root

P.S. За компилирането, в общия случай ти трябват -dev пакетите, не стандартните, когато пускаш ./configure чети какво ти обяснява, в повечето случаи ти казва, какво липсва или не е версията, която му трябва.


Мнение от gogull пуснато на Май 24 2010, 14:20
Не мина без засечки...
При apt-get install ми изписа:
Код: 
debian:/home/hsc# apt-get install build-essential git-core libpcap-dev libnet1-dev
Reading package lists... Done
Building dependency tree... Done
build-essential is already the newest version.
libpcap-dev is already the newest version.
libnet1-dev is already the newest version.
The following extra packages will be installed:
 libcurl3-gnutls libdigest-sha1-perl liberror-perl rcs
Suggested packages:
 git-arch git-cvs git-svn git-email git-daemon-run gitk gitweb cogito
Recommended packages:
 git-doc curl
The following NEW packages will be installed:
 git-core libcurl3-gnutls libdigest-sha1-perl liberror-perl rcs
0 upgraded, 5 newly installed, 0 to remove and 40 not upgraded.
Need to get 2887kB of archives.
After unpacking 6341kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
WARNING: The following packages cannot be authenticated!
 liberror-perl libdigest-sha1-perl rcs
Install these packages without verification [y/N]? y
Get:1 http://debian.ludost.net etch/main liberror-perl 0.15-8 [15.5kB]
Get:2 http://debian.ludost.net etch/main libdigest-sha1-perl 2.11-1 [24.3kB]
Get:3 http://debian.ludost.net etch/main rcs 5.7-18 [331kB]
Err http://security.debian.org etch/updates/main libcurl3-gnutls 7.15.5-1etch2
 404 Not Found [IP: 195.20.242.89 80]
Err http://security.debian.org etch/updates/main git-core 1:1.4.4.4-4+etch2
 404 Not Found [IP: 195.20.242.89 80]
Fetched 370kB in 0s (612kB/s)
Failed to fetch http://security.debian.org/pool/updates/main/c/curl/libcurl3-gnu           tls_7.15.5-1etch2_i386.deb  404 Not Found [IP: 195.20.242.89 80]
Failed to fetch http://security.debian.org/pool/updates/main/g/git-core/git-core          _1.4.4.4-4+etch2_i386.deb  404 Not Found [IP: 195.20.242.89 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?


Важни ли са тези два пакета или мога да мина и без тях?
И другото, което искам да попитам е: Kъде да създам директорията "build"? В "/home/user/" или в "/home/user/arping-2.09"?


Мнение от tolostoi пуснато на Май 24 2010, 15:44
Няма значение къде ще я създадеш, може и да не я правиш, аз я правя да знам къде са ми компилираните програми, понеже след като я компилирам си оставям папката за да мога в последствие от същата папка да я махна с команда make uninstall (не е задължително да стане, но все пак мога да погледна след време какво е било и кое къде се е инсталирало)
За проблема, явно трябва да обновиш информацията в хранилищата.
Код: 
apt-get update

И пробвай пак. Всъшност добра идея е да направиш и ъпгрейд
Код: 
apt-get upgrade

ако има ново ядро рестартирай след ъпгрейда и си компилирай тогава.
П. П. Да ти кажа, че програмата си я има и в хранилището но е по стара версия и не се налага да се компилира arping и iputils-arping се казват (не зная кое по-точно ти трябва).
Мнение от mcwolf пуснато на Май 26 2010, 12:29
освен dev версията на libpcap трябва да се инсталира и самата библотека libpcap0.8 - грешката е при линкване а не при компилиране
Мнение от tolostoi пуснато на Май 26 2010, 19:12
Тя идва като зависимост на dev пакета май, щото при мен описаното мина.


Мнение от mcwolf пуснато на Май 27 2010, 13:52
dev библиотеките (поне в по голямата си част) представляват единствено изходните кодове на приложението - в случая libpcap0.8-dev съдържа само сорс кодът на библиотеката libpcap0.8 - от този пакет трябват само хедър файловете (.h ако става дума за C/C++) за да може да мине компилация - ако те липсват gcc ще изреве че липсва файл (по време на компилацията до обектен код - *.о)
следващата стъпка е "линкването" - свързването на обектните файлове в реално изпълним код - на този етап вече хедър файловете не са необходими - вече трябват самите библиотеки за да може линкерът да намери истинските функции - когато не успее да намери функция вече реве за несъществуващ символ (в случая недопустимо обръщение към функцията pcap_get_selectable_fd) - самия списък с библиотеките в които линкерът ще търси се задават с опцията -l на gcc

gcc -g -O2 -o arping arping.o findib_linux.o -lpcap -lnet -lnsl

демек от обектните файлове (които вече са компилирани) arping.o findib_linux.o трябва да се създаде изпълнимият файл arping като линкерът ще търси обръщения към функции в динамичните библиотеки pcap, net и nsl - обаче библиотеката pcap липсва и това довежда до грешката - в случая грешката може да се дължи и на неправилно място на което се намира търсената библиотека - най елементарното решение в този случай е да се направи символна връзка там където gcc търси по подразбиране /lib/, usr/lib ...

иначе наистина зависимостта изисква да се инсталира и самата библиотека но щом линкерът реве значи я няма (или той не може да я намери)

м/у другото тая функция може да се намира в някоя от другите 2 библиотеки - приемам че е в pcap единствено заради името
Мнение от gogull пуснато на Май 29 2010, 21:11
Цитат: 

Няма значение къде ще я създадеш, може и да не я правиш, аз я правя да знам къде са ми компилираните програми, понеже след като я компилирам си оставям папката за да мога в последствие от същата папка да я махна с команда make uninstall (не е задължително да стане, но все пак мога да погледна след време какво е било и кое къде се е инсталирало)
За проблема, явно трябва да обновиш информацията в хранилищата.

Не ми стана съвсем ясно. Можеш ли да дадеш пример?

mcwolf се оказа прав, след като сложих libpcap0.8-dev, нещата се получиха.
Код: 
make  all-recursive
make[1]: Entering directory `/home/hsc/arping-2.09'
Making all in src
make[2]: Entering directory `/home/hsc/arping-2.09/src'
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT arping.o -MD -MP -MF .deps/arping.Tp                                                                                                                               o -c -o arping.o arping.c
mv -f .deps/arping.Tpo .deps/arping.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT findib_linux.o -MD -MP -MF .deps/fin                                                                                                                               dib_linux.Tpo -c -o findib_linux.o findib_linux.c
mv -f .deps/findib_linux.Tpo .deps/findib_linux.Po
gcc  -g -O2   -o arping arping.o findib_linux.o -lpcap -lnet -lnsl
make[2]: Leaving directory `/home/hsc/arping-2.09/src'
Making all in doc
make[2]: Entering directory `/home/hsc/arping-2.09/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/hsc/arping-2.09/doc'
make[2]: Entering directory `/home/hsc/arping-2.09'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/home/hsc/arping-2.09'
make[1]: Leaving directory `/home/hsc/arping-2.09'
debian:/home/hsc/arping-2.09# make install
Making install in src
make[1]: Entering directory `/home/hsc/arping-2.09/src'
make[2]: Entering directory `/home/hsc/arping-2.09/src'
test -z "/usr/local/sbin" || /bin/mkdir -p "/usr/local/sbin"
 /usr/bin/install -c 'arping' '/usr/local/sbin/arping'
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/hsc/arping-2.09/src'
make[1]: Leaving directory `/home/hsc/arping-2.09/src'
Making install in doc
make[1]: Entering directory `/home/hsc/arping-2.09/doc'
make[2]: Entering directory `/home/hsc/arping-2.09/doc'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/share/man/man8" || /bin/mkdir -p "/usr/local/share/man/man8"
/usr/bin/install -c -m 644 './arping.8' '/usr/local/share/man/man8/arping.8'
make[2]: Leaving directory `/home/hsc/arping-2.09/doc'
make[1]: Leaving directory `/home/hsc/arping-2.09/doc'
make[1]: Entering directory `/home/hsc/arping-2.09'
make[2]: Entering directory `/home/hsc/arping-2.09'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/hsc/arping-2.09'
make[1]: Leaving directory `/home/hsc/arping-2.09'


Самоче...
Код: 
debian:/home/hsc/arping-2.09# apt-cache show arping
Package: arping
Priority: optional
Section: net
Installed-Size: 88
Maintainer: LENART Janos <ocsi@debian.org>
Architecture: i386
Version: 2.05-2
Depends: libc6 (>= 2.3.6-6), libnet1 (>= 1.1.2-1), libpcap0.8 (>= 0.9.3-1)
Conflicts: iputils-arping, iputils-ping (<< 20001110-6)
Filename: pool/main/a/arping/arping_2.05-2_i386.deb
Size: 20610
MD5sum: 2b89eade320d69c137cfab13407ca87c
SHA1: db07a5a1c36e35d0904ed5fa4dc59109d438af7d
SHA256: d742bc95a0e0242abb357ec8131f136fd48550c8aec3e6675acdab451f408a61
Description: sends IP and/or ARP pings (to the MAC address)
The arping utility sends ARP and/or ICMP requests to the specified host
and displays the replies. The host may be specified by its hostname,
its IP address, or its MAC address.
.
This program is only able to run as root. Make it setuid if you like.
Tag: admin::monitoring, interface::commandline, network::scanner, protocol::ip,                                                                                                                                role::program, scope::utility

Мнение от mcwolf пуснато на Май 31 2010, 11:09
"Самоче..." какво :)

притеснява те версията ли ?
apt-cache касае apt и хранилищата - в случая дава информация за пакетът arping който се намира в хранилищата а не за инсталираната версия на програмата arping

демек изпълни arping -V за да видиш версията
има вариант да си инсталирал и това което е в хранилището и системата да намира първо старата версия (в такъв случай ще трябва да я премахнеш - или просто да си оправиш пътищата)
Мнение от gogull пуснато на Юни 06 2010, 00:21
Много ви благодаря!

Имаше малко засечки, но все пак arping тръгна...
Мнение от gogull пуснато на Юни 06 2010, 00:39
Имам още едно питане.
Мога ли да направя така, че като напиша "sudo arping ..." да не ми иска парола всеки път?


Мнение от hehopmajieh пуснато на Юни 09 2010, 16:35
Отваряш /etc/sudoers
Code Sample: 
visudo

слагаш вътре :
Code Sample: 

user ALL = NOPASSWD: /sbin/arping

където user ти е потребителя, и където ти се намира arping ;)


Мнение от gogull пуснато на Юни 12 2010, 03:21
Цитат: (hehopmajieh @ Юни 09 2010, 13:35)

Отваряш /etc/sudoers
Код: 
visudo

слагаш вътре :
Код: 

user ALL = NOPASSWD: /sbin/arping

където user ти е потребителя, и където ти се намира arping ;)

Не ми стана ясно visudo къде се пише.
Можеш ли малко да поясниш
Мнение от gogull пуснато на Юни 12 2010, 03:24
Не мога да се справя с visudo за сега.
Можеш ли малко по-подробно да опишеш процеса?


Мнение от mcwolf пуснато на Юни 12 2010, 21:56
< https://help.ubuntu.com/community/Sudoers > ето то подробно обяснение - имай в предвид че ако скапеш файлът (а той е доста чувствителен) може да загубиш възможността да ползваш sudo (доакто не го поправиш)
Мнение от gogull пуснато на Юли 04 2010, 04:45
Благодаря за линка. Прочетох какво пише. Но повечето неща не ми станах ясни.
Разбрах, че трябва да се дефинират "Aliases" както и потребители. Но не разбрах дали е напълно задължително, може ли само потребител да дефинирам, а и как точно стават тези неща. А и във man visudo не пише как точно се обработва sudoers файла.

Все пак даобавих "user ALL= NOPASSWD: /usr/local/sbin/arping".Получи се. Просто предния път бях объркал директорията на програмата.

И все пак ми е интересно да понауча още малко за visudo.

Благодаря за помощта на всички!

П.П.
Очаквайте следващата тема с още задачки закачки. :)


Powered by ikonforums 1.0.0 © 2006 ikonforums