在 Solaris 11 上构建 net-snmp 的问题
Issue with net-snmp build on Solaris 11
我正在 Solaris11 sparc 上构建 net-snmp 5.7.3。我将我的路径设置为:
/usr/local/lib:/bin:/usr/bin:/usr/dev_infra/platform/bin:/usr/dev_infra/generic/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/ade/bin: /usr/sfw/bin:/usr/ccs/bin:/opt/csw/bin:/opt/csw/gnu:/usr/sbin:/usr/bin:/usr/ccs/bin/ar
I 运行 ./configure --prefix=/opt 使用默认选项并成功。在那之后,当我制作时,我收到以下错误消息,感谢任何帮助。
libtool: compile: gcc -I../include -I. -I../snmplib -fno-strict-aliasing -g -O2 -Usolaris2 -Dsolaris2=solaris2 -c keytools.c -fPIC -DPIC -o .libs/keytools.o
keytools.c: In function ‘generate_Ku’:
keytools.c:153:9: warning: assignment makes pointer from integer without a cast
keytools.c:161:9: error: invalid use of void expression
keytools.c:166:13: error: invalid use of void expression
*** Error code 1
make: Fatal error: Command failed for target `keytools.lo'
Current working directory /scratch/kkumsati/net-snmp/snmplib
*** Error code 1
The following command caused the error:
if test "snmplib agent apps man local mibs" != ""; then \
it="snmplib agent apps man local mibs" ; \
for i in $it ; do \
echo "making all in `pwd`/$i"; \
( cd $i ; make ) ; \
if test $? != 0 ; then \
exit 1 ; \
fi \
done \
fi
make: Fatal error: Command failed for target `subdirs'
在源文件夹中查找 README.solaris 文件。它有 'Compiling net-snmp' 部分。
在自述文件中,您可以找到以下内容:
You need to set your $PATH. This is extremely important
because otherwise there may be conflicts between the various
components of the development environment.
PATH 错误是你的问题。
另一个可能的问题是您系统中的旧 openssl headers。
关于函数 EVP_MD_CTX_create() 的错误(keytools.c:153:9 中的错误),此函数在 Solaris 文件 /usr/include/openssl/evp 中声明。 h,此文件包含在包 pkg:/library/security/openssl 中。我 OS 上的这个包的版本是 1.0.1.18-0.175.3.5.0.5.0。
我建议您更新 OS,或打包 pkg:/library/security/openssl 或尝试 运行 使用 --with-openssl=internal
选项配置脚本。
同时更新gcc,我用的是这个版本
pkg install developer/gcc-48
export PATH=/usr/sbin:/usr/local/bin:/usr/ccs/bin:/usr/bin:
./configure --prefix=/opt --with-mib-modules="ucd-snmp/lmSensors \
ucd-snmp/diskio smux mibII/mta_sendmail" --with-cc=gcc
gmake
这里我收到了一个错误:
/usr/include/sys/processor.h:188:45: error: unknown type name 'kthread_t'
extern boolean_t i_processor_affinity_check(kthread_t *, struct cpu *);
^
/usr/include/sys/processor.h:189:37: error: unknown type name 'kthread_t'
extern int i_processor_affinity_one(kthread_t *, id_t, boolean_t);
^
/usr/include/sys/processor.h:190:33: error: unknown type name 'kthread_t'
extern int i_processor_affinity(kthread_t *, uint_t *, id_t *, uint32_t *,
^
要解决此编辑文件 agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
并添加到其 header 第 26 行(问题行之前):
#include <sys/processor.h>
#include <sys/procset.h>
#include <thread.h>
Link关于这个bug
然后重复
gmake
gmake test
gmake install; #this command with root permissons
我在 SPARC 上成功了。
我正在 Solaris11 sparc 上构建 net-snmp 5.7.3。我将我的路径设置为:
/usr/local/lib:/bin:/usr/bin:/usr/dev_infra/platform/bin:/usr/dev_infra/generic/bin:/usr/local/bin:/usr/X11R6/bin:/usr/local/ade/bin: /usr/sfw/bin:/usr/ccs/bin:/opt/csw/bin:/opt/csw/gnu:/usr/sbin:/usr/bin:/usr/ccs/bin/ar
I 运行 ./configure --prefix=/opt 使用默认选项并成功。在那之后,当我制作时,我收到以下错误消息,感谢任何帮助。
libtool: compile: gcc -I../include -I. -I../snmplib -fno-strict-aliasing -g -O2 -Usolaris2 -Dsolaris2=solaris2 -c keytools.c -fPIC -DPIC -o .libs/keytools.o
keytools.c: In function ‘generate_Ku’:
keytools.c:153:9: warning: assignment makes pointer from integer without a cast
keytools.c:161:9: error: invalid use of void expression
keytools.c:166:13: error: invalid use of void expression
*** Error code 1
make: Fatal error: Command failed for target `keytools.lo'
Current working directory /scratch/kkumsati/net-snmp/snmplib
*** Error code 1
The following command caused the error:
if test "snmplib agent apps man local mibs" != ""; then \
it="snmplib agent apps man local mibs" ; \
for i in $it ; do \
echo "making all in `pwd`/$i"; \
( cd $i ; make ) ; \
if test $? != 0 ; then \
exit 1 ; \
fi \
done \
fi
make: Fatal error: Command failed for target `subdirs'
在源文件夹中查找 README.solaris 文件。它有 'Compiling net-snmp' 部分。 在自述文件中,您可以找到以下内容:
You need to set your $PATH. This is extremely important
because otherwise there may be conflicts between the various
components of the development environment.
PATH 错误是你的问题。
另一个可能的问题是您系统中的旧 openssl headers。
关于函数 EVP_MD_CTX_create() 的错误(keytools.c:153:9 中的错误),此函数在 Solaris 文件 /usr/include/openssl/evp 中声明。 h,此文件包含在包 pkg:/library/security/openssl 中。我 OS 上的这个包的版本是 1.0.1.18-0.175.3.5.0.5.0。
我建议您更新 OS,或打包 pkg:/library/security/openssl 或尝试 运行 使用 --with-openssl=internal
选项配置脚本。
同时更新gcc,我用的是这个版本
pkg install developer/gcc-48
export PATH=/usr/sbin:/usr/local/bin:/usr/ccs/bin:/usr/bin:
./configure --prefix=/opt --with-mib-modules="ucd-snmp/lmSensors \
ucd-snmp/diskio smux mibII/mta_sendmail" --with-cc=gcc
gmake
这里我收到了一个错误:
/usr/include/sys/processor.h:188:45: error: unknown type name 'kthread_t'
extern boolean_t i_processor_affinity_check(kthread_t *, struct cpu *);
^
/usr/include/sys/processor.h:189:37: error: unknown type name 'kthread_t'
extern int i_processor_affinity_one(kthread_t *, id_t, boolean_t);
^
/usr/include/sys/processor.h:190:33: error: unknown type name 'kthread_t'
extern int i_processor_affinity(kthread_t *, uint_t *, id_t *, uint32_t *,
^
要解决此编辑文件 agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
并添加到其 header 第 26 行(问题行之前):
#include <sys/processor.h>
#include <sys/procset.h>
#include <thread.h>
Link关于这个bug
然后重复
gmake
gmake test
gmake install; #this command with root permissons
我在 SPARC 上成功了。