Не удалось загрузить файл jnetpcap.so в java на debian wheezy
Я использую jnetpcap v1.3 в своем проекте java, и поэтому файл, который он использует для собственных вызовов, зависит от libpcap0.9, но моя версия libpcap - 0.8, и я не могу найти эту библиотеку в репозиториях apt.
Итак, как я могу установить libpcap0.9 на Debian Wheezy, чтобы решить эту проблему зависимости?
PS: с помощью команды 'ld libjnetpcap.so' я нашел неработающую ссылку зависимости.
1 ответ
файл so, который он использует для собственных вызовов, зависит от libpcap0.9
Debian не имеет libpcap0.9:
https://packages.debian.org/search?keywords=libpcap&searchon=names&suite=stable§ion=all
https://packages.debian.org/search?keywords=libpcap0.9&searchon=names&suite=stable§ion=all
Похоже, что когда-то был libpcap0.9, но они избавились от него, потому что у него не было причин для существования. Как говорится в этом отчете: "Исходный пакет libpcap0.9 больше не нужен, оказывается, что версия 0.9 libpcap совместима с API и ABI с libpcap0.8".
Возможно, они изменят имя на что-то отличное от "libpcap0.8", если API или ABI изменятся несовместимым образом, и я не собираюсь позволять опубликованным API-интерфейсам libpcap или ABI изменяться таким образом, который нарушает совместимость. с программами, созданными с более ранней версией libpcap (обратите внимание, что макет pcap_t
структура не является частью опубликованного API или ABI...). Так что, пока я являюсь разработчиком ядра libpcap, версия 1.N+1 libpcap будет совместима с API и ABI с версией 1.N, хотя она может иметь новые возможности - любая программа, созданная с 1.N, будет работать с 1.N+1, хотя программы, созданные с 1.N+1, если они используют какие-либо из этих новых возможностей, не будут работать с 1.N (именно так работает программное обеспечение).
Глядя на источник jnetpcap из своего репозитория SVN, releases/jnetpcap-1.3/release-1.3.0-1/src/deb/jnetpcap-1.control
Файл говорит:
Depends: libpcap-dev (>= 0.8)
и 0,8, безусловно,>= 0,8, учитывая, что это = (или, если вы пишете код C, ==) 0,8.
Старые выпуски jnetpcap имели
Depends: libpcap0.8 (>= 0.9)
но даже это не должно вызывать зависимость от "libpcap0.9", оно должно создавать зависимость от libpcap0.8 с номером версии>= 0.9.
Кроме того, wheezy имеет libpcap0.8 с номером версии 1.3.0-1, а 1.3.0-1>>= 0.9, поэтому у wheezy не должно быть проблем с пакетом, который зависит от "libpcap0.8 (>= 0.9)"если либо 1) что Зависит: строка не означает то, что я ожидал, либо 2) проверка зависимостей не работает, и она не осознает, что libpcap 1.3.0 определенно позже, чем libpcap 0.9.