Мне нужно установить justniffer на Kubuntu. Justniffer - это программа, которая позволяет просматривать http-трафик и сохранять его в файл. Программа Wireshark очень сложна и её проблематично использовать лишь только для того, чтобы увидеть http-трафик между браузерами и серверами.
Я скачал с http://sourceforge.net/projects/justniffer/files/justniffer/justniffer%200.5.11/ файл justniffer_0.5.11_i386.deb и запустил его с помощью gdebi:
sudo gdebi justniffer_0.5.11_i386.deb
В результате я получаю такой вывод:
sudo gdebi justniffer_0.5.11_i386.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
Этот пакет невозможно установить
Dependency is not satisfiable: libboost-program-options1.42.0 (>= 1.42.0-1)
Ищу в репах похожую программу с помощью apt-get search и нахожу libboost-program-options1.46.1. Пытаюсь её установить, но результат получается такой:
sudo apt-get install libboost-program-options1.46.1
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлена самая новая версия libboost-program-options1.46.1.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 189 пакетов не обновлено.
Вот не знаю как поступить надо.
Ему нужен именно буст 1.42, можете попробовать стянуть и поставить соответствующий пакет из более старого дистра.
И как безопасно поставить более старую версию этого пакета? Это вообще правильно удалять новую версию пакета и ставить старую?
Как можно заметить, у буста разных версий различаются не только версии пакета, но и имена. Так что можно смело пытаться ставить старый буст, если дело не упрётся уже в его зависимости.
как вариант скачать там же исходники и собрать пакет, через debuild.
Никогда не пробовал собирать из исходников. Это сложноватый путь.
Вот вам пакет который установится: justniffer_0.5.11-1_i386.deb. Если в дальнейшем возникают подобные проблемы, то нужно пробовать собирать из исходного кода, тот пакет просто был собран давно и зависимости которые в нём указаны просто устарели.
В том то и вопрос. Уже не первый раз в такую ситуацию попадаю. Скачиваю deb-файл с пакетом, которого нет в репах, а ему нужна некая версия пакета, в основном устаревшая. Как я должен поступать в таких случаях? Если я нужный пакет удалю и поставлю его старую (иную) версию, то возникают вопросы:
а) не полетят ли все зависимости в системе,
б) смогут ли другие программы работать, которые также используют этот пакет
И интересует правильный алгоритм замены версии пакета на другую версию.
Найти репозиторий в котором есть этот пакет для нужной версии дистра, либо собрать самому. Если не можешь сам, попросить кого-то кто может. Не советую ставить пакеты которые не проходят по зависимостям, тем более заменять пакеты из репозитория старыми версиями. И вообще, надо стараться ставить все пакеты из репозиториев, держать систему в порядке.
Тут ситуация такая, что программу justniffer обязательно ставить надо. Не думаю, что эта программа, если она не из репозиториев, то она сделает что-то некорректное в системе. Мне нужен практический совет, что я должен точно сделать чтобы пакет стоял в системе и работал, и вся система также работала исправно?
Я что-то написал о программе? Я вроде ясно и понятно написал, если есть пакет и он не подходит для этой системы, его нельзя ставить, о чем вам и скажет пакетный менеджер. Зависимости, конфликты и прочее в пакете именно для этого и сделаны, чтобы при установке были подтянуты все необходимые для корректной работы программы компоненты.
Если сильно нужна программа и ее нет в основном репозитории.
1 вариант. Поискать сторонние репозитории.
2 вариант. Поискать собранный кем-то деб пакет.
3 вариант. Самому собрать деб пакет.
4 вариант. Собрать и установить из исходников без пакетирования.
В данном случае, для этой программы есть сторонний ppa репозиторий, в котором есть нужная версия (precise).
Спасибо за совет. Скачал нужный deb-файл прямо отсюда: http://ppa.launchpad.net/oreste-notelli/ppa/ubuntu/pool/main/j/justniffer/
Установка была несколько отличной от того, что было раньше:
sudo gdebi justniffer_0.5.11.precise_i386.deb
[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
Требует установки следующих пакетов:
libboost-regex1.46.1
justniffer is a tcp packet sniffer. It can log network traffic in
a 'standard' (web server like) or in a customized way. It can also log response
times, useful for tracking network services performances (e.g. web server,
application server, etc.).
Вы хотите установить этот пакет? [д/Н]д
Get:1 http://ru.archive.ubuntu.com/ubuntu/ precise/main libboost-regex1.46.1 i386 1.46.1-7ubuntu3 [399 kB]
Fetched 399 kB in 0s (0 B/s)
Выбор ранее не выбранного пакета libboost-regex1.46.1.
(Чтение базы данных ... на данный момент установлено 161770 файла и каталога.)
Распаковывается пакет libboost-regex1.46.1 (из файла .../libboost-regex1.46.1_1.46.1-7ubuntu3_i386.deb)...
Настраивается пакет libboost-regex1.46.1 (1.46.1-7ubuntu3) ...
Обрабатываются триггеры для libc-bin ...
ldconfig deferred processing now taking place
Выбор ранее не выбранного пакета justniffer.
(Чтение базы данных ... на данный момент установлено 161770 файлов и каталогов.)
Распаковывается пакет justniffer (из файла justniffer_0.5.11.precise_i386.deb)...
Настраивается пакет justniffer (0.5.11.precise) ...
Обрабатываются триггеры для man-db ...
Можно тогда уж мне популярно пояснить, почему первый deb-пакет не сработал, а другой сработал? Получается, что каждый deb-пакет делается под свою систему? А если я что-то дополнительно сделаю так, что некоторые пакеты в системе (тот же libboost-program-options1.42.0) стали новее, возникнут ли конфликты, если я буду устанавливать justniffer_0.5.11.precise_i386.deb? И ещё. Во второй раз gdebi сам взял и скачал из репозиториев нужный пакет, почему это не было сделано в первый раз?
В первом случае пакетный менеджер не смог найти среди доступных пакетов из репозиториев libboost-program-options1.42.0.
Второй пакет зависит от libboost-program-options1.46.1, который есть среди доступных.
да
И ещё, неправильный подход к использованию ppa репозиториев.
Не надо скачивать пакет и ставить его вручную. Надо добавить этот ppa и установить через muon|apt-get|aptitude или чем-нибудь ещё по вкусу.
В терминале это делается так:
sudo apt-add-repository ppa:oreste-notelli/ppa
sudo apt-get update
sudo apt-get install justniffer
Теперь ясно, что за deb-файлами лучше сюда ходить.
Ещё один вопрос небольшой есть. Как я должен был узнать, что deb-файл отсюда не для моей системы предназначен? По каким признакам?
Еще раз, повторяю: НЕ НУЖНО туда ходить, нужно подключать репозиторий оттуда.
для поиска нужного репа можно использовать https://launchpad.net/ubuntu/+ppas
А у меня убунта 14.04. подключил репозитарий. но после apt-get update пишет:
Не удалось получить http://ppa.launchpad.net/oreste-notelli//ubuntu/dists/trusty/main/binary-i386/Packages 404 Not found
Не удалось получить http://ppa.launchpad.net/oreste-notelli/ppa/ubuntu/dists/trusty/main/binary-i386/Packages 404 Not found
что делать?
Там нет пакета для Trusty...
Для любой системы, для которой нет пакета, собираем пакет сами, это не сложно, поскольку в архиве с исходниками есть правила для сборки deb.
Тянем архив с исходниками отсюда. Нам нужен justniffer_0.5.11.tar.gz. Кладем его в отдельную папку, например в ~/justniffer.
Распаковываем, переходим в распакованный каталог:
tar -xf justniffer_0.5.11.tar.gz
cd justniffer_0.5.11
Ставим утилиты для сборки:
sudo apt-get install dpkg-dev
Пробуем собрать:
dpkg-buildpackage -rfakeroot
Ругнется на неудовлетворенные зависимости, берем их список, удаляем уточнение версий в скобках и ставим через apt, на 13.10 это:
sudo apt-get install debhelper autotools-dev libboost-iostreams-dev libboost-program-options-dev libboost-regex-dev libpcap0.8-dev
Пробуем собрать:
dpkg-buildpackage -rfakeroot
Если во время конфигурации ругнется, что не может прилинковать либы (configure: error: Could not link against !), то редактируем файл:
nano debian/rules
Находим строчку:
И дописываем, чтобы получилось:
И теперь уже собираем:
dpkg-buildpackage -rfakeroot
Переходим в каталог выше (с архивом, именно туда упадут готовые файлы):
cd ../
Ставим собранный пакет:
sudo dpkg -i justniffer_0.5.11_amd64.deb
Читаем ман, как пользоваться утилитой:
man justniffer
я рад, что Вы обладаете машиной времени, и живете в будущем.
Как минимум после апреля 2014 года.
Посему, есть предложение - или подождать, что совсем не гарантирует результат, или как написано ниже/выше - собирать самому,что в общем несложно для человека, проводящего тестирование будущего дистрибутива.
Собрал версию по 14.04
Яндекс.Диск
Как обновлюсь до 14.10 буду собирать новую...
Отправить комментарий