Назад | Перейти на главную страницу

Как успешно скомпилировать lsof на Solaris 10?

Предварительно скомпилированные пакеты lsof для Solaris (например, из Blastwave или sunfreeware) не показывают открытые порты, например, при использовании параметров: "-Pni". Мудрость создателя lsof заключается в том, что мы должны компилировать lsof сами. Пакет tar, конфигурация и т. Д. Сильно отличаются от большинства пакетов с открытым исходным кодом, которые можно скомпилировать из исходного кода. У меня заканчиваются подсказки в пакете, чтобы узнать, что не так с моей попыткой сборки.

У меня есть Sun Studio 11 для компилятора C. Также установил Gcc 3.4.5

Система sparc с ZFS на всех файловых системах. ОС - Solaris 10, U7.

uname -a
SunOS myhostname 5.10 Generic_141444-09 sun4u sparc SUNW,Sun-Fire-280R

Источник lsof предназначен для версии 4.82. Я настраиваю с параметрами по умолчанию и включенной поддержкой ZFS.

При использовании cc или gcc сбой при запуске make аналогичен:

gcc  -Dsolaris=100000  -DHASPR_GWINDOWS -m64 -DHASIPv6 -DHASSOUXSOUA -DHAS_IPCLASSIFIER_H -DHAS_CRED_IMPL_H -DHAS_V_PATH -DHASZONES -DHAS_ZFS=1 -DZFS_VERS=15 -DHASUTMPX -DHAS_VSOCK -DHAS_STRFTIME -DLSOF_VSTR=\"5.10\"  -O  -c  dnode.c
dnode.c: In function `process_node':
dnode.c:2082: error: structure has no member named `pcfs_entps'
*** Error code 1
make: Fatal error: Command failed for target `dnode.o'

Я получил это для компиляции в системе, отличной от ZFS, с 4.77 много месяцев назад, но я не могу вспомнить как.

Я нашел эту ссылку на проблему при поиске в Google по части ошибки компиляции

http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2009-07/msg00575.html

Нет необходимости получать файлы заголовков из OpenSolaris или из других источников. Бета-версия 4.83 работает с моим ящиком Sparc ZFS со значениями по умолчанию для сценария настройки.

Теперь у меня есть рабочий lsof -Pni на Solaris 10.

В lsof FAQ заявляет, что необходимые файлы заголовков не предоставляются Sun, и после раздела, цитируемого ниже, предлагается предложить, как их получить из Open Solaris, а также другие проблемы, которые могут возникнуть.

17.27 Проблемы ZFS Solaris 10 [sic]

17.27.1 Почему Configure запрашивает расположение файлов заголовков ZFS?

To provide ZFS support when lsof is compiled it needs to have
access to the definitions of ZFS structures used by the kernel.
Those definitions are contained in header files that Sun does
not distribute with Solaris 10.

Пока вы ждете настоящего ответа, вы можете дать pcp попробуйте как альтернативу lsof на solaris. Он построен на очень полезной команде solaris pfiles.