目的
要从源代码编译syslog-ng开源版(OSE),请完成以下步骤。或者,您可以在多个平台上使用预编译的二进制包。 有关可用于各种Linux,UNIX和其他平台的第三方软件包的列表,请参阅syslog-ng OSE第三方二进制文件页面。
步骤
- 从GitHub下载最新版本的syslog-ng OSE。 源代码以tar.gz存档文件的形式提供。
- 安装编译syslog-ng所需的以下软件包。 这些软件包适用于大多数UNIX/Linux系统。 或者,您也可以下载源代码并进行编译。
- 一个适用于线程本地存储(Thread Local Storage, TLS)的gcc C编译器的一个版本,例如,version 4.5。
- GNU flex词法分析器生成器(lexical analyser generator),此处获得。
- The bison parser generator, 此处获得.
- glib库的开发文件,此处获得。
- Autoconf Archive软件包的开发文件, 此处获得.
- syslog-ng OSE应用程序现在默认使用PCRE类型的正则表达式。 它需要
libpcre
库包, 此处获得.- If you want to use the Java-based modules of syslog-ng OSE (for example, the Elasticsearch, HDFS, or Kafka destinations), you must compile syslog-ng OSE with Java support.
I don't want. so...
- 如果要使用
http()
目标将日志消息作为HTTP请求发布,请安装libcurl库的开发文件。 如果使用--disable-http
编译选项,则不需要此库。 或者,您可以使用基于Java的HTTP目标实现。 - 如果要使用syslog-ng的spoof-source功能,请安装libnet库的开发文件,此处获得.
- 如果要使用
smtp()
目标发送电子邮件,请安装libesmtp库的开发文件。 如果使用--disable-smtp
编译选项,则不需要此库。 - 如果要使用/etc/hosts.deny和/etc/hosts.allow进行TCP访问,请安装libwrap(也称为TCP-wrappers)库的开发文件,此处获得.
- 进入新目录并执行以下命令。 (例如,如果./configure文件不存在,如果你是从GitHub克隆了存储库而不是使用发行版tarball,将不存在./configure文件,请执行./autogen.sh命令。)
$ ./configure
$ make
$ make install
- 使用以下命令解压缩syslog-ng存档
tar xvfz syslog-ng-x.xx.tar.gz
或者
unzip -c syslog-ng-x.xx.tar.gz | tar xvf -
创建一个包含syslog-ng源代码的新目录。
- 进入新目录并执行以下命令:
$ ./configure
$ make
$ make install
这些命令将使用其默认选项构建syslog-ng。
- 如果需要,请使用以下选项更改syslog-ng的编译方式,使用以下命令语法:
$ ./configure --compile-time-option-name
您还可以使用--disable选项来显式禁用功能并覆盖自动检测。 例如,要禁用TCP包装器支持,请使用--disable-tcp-wrapper选项。 有关可用编译选项的列表,请参阅编译syslog-ng OSE的选项。
syslog-ng的默认链接模式是动态的。 这意味着如果/ usr目录在NFS上,syslog-ng可能无法启动。 在syslog-ng用作系统记录器的平台上,首选--enable-mixed-linking。