Heka 的编译 和 Heka 插件的编译
相关英文文档在: https://hekad.readthedocs.io/en/latest/installing.html
所有系统都必须的如下:
Prerequisites (all systems):
- CMake 3.0.0 or greater http://www.cmake.org/cmake/resources/software.html
 - Git http://git-scm.com/download
 - Go 1.4 or greater http://golang.org/dl/
 - Mercurial http://mercurial.selenic.com/wiki/Download
 - Protobuf 2.3 or greater (optional - only needed if message.proto is modified)http://code.google.com/p/protobuf/downloads/list
 - Sphinx (optional - used to generate the documentation) http://sphinx-doc.org/
 - An internet connection to fetch sub modules
 
编译需要的依赖项:
CMark
下载地址: https://cmake.org/download/
我下载的是 适用 Mac OS X 10.6 or later 的 cmake-3.6.1-Darwin-x86_64.dmg
修改 PATH 设置, 确保命令行可以使用
One may add CMake to the PATH:
PATH="/Applications/CMake.app/Contents/bin":"$PATH"
Or, to install symlinks to '/usr/local/bin', run:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
Or, to install symlinks to another directory, run:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install=/path/to/bin
安装成功的标示如下:
$ cmake --version
cmake version 3.6.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
git
我下载的是Mac 下最新版本的git : git-2.9.2-intel-universal-mavericks.dmg
https://git-scm.com/download/mac
安装完成后的检查是否正常的方法仍然是:
$ git --version
git version 2.9.2
Mercurial
下载地址 : https://www.mercurial-scm.org/ 我下载的是 Mercurial-3.8.2-macosx10.10.pkg
安装完成后的检测方法:
$ hg --version
分布式软件配置管理工具 - 水银 (版本 3.8.2)
(see https://mercurial-scm.org for more information)
Copyright (C) 2005-2016 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
编译项目
$ cd heka
$ source build.sh
注意,是 source build.sh
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如 .bash_profile 和 .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,则能用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。
source命令的作用就是用来执行一个脚本,那么:source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结果并没有反应到父shell里,不过source不同,他就是在本shell中执行的,所以能看到结果。
source命令是shell的一个内部命令,它从指定的shell 文件中读入所有命令语句并在当前进程中执行。 因此当多个shell进程(父子进程或无关进程均可)共享一组变量值时,就可以将这些变量赋值语句定义到一个shell文件里,并在需要这些变量值的程序中使用点语句来引用这个shell文件,从而实现变量值共享(对这些变量值的修改仅涉及到这个shell文件)。但要注意的是,这个shell文件不能包括含有位置参数的语句,即不能接受$1、$2等命令行参数。
参考: http://www.ahlinux.com/shell/23595.html
编译 go 写的 heka 插件
在 {heka root}/cmake/plugin_loader.cmake 文件中 , 通过 add_external_plugin 指定需要参与编译的目录或 git 地址
add_external_plugin(git https://github.com/mozilla-services/heka-mozsvc-plugins 6fe574dbd32a21f5d5583608a9d2339925edd2a7)
add_external_plugin(git https://github.com/example/path <tag> util filepath)
add_external_plugin(git https://github.com/bellycard/heka-sns-input :local)
# The ':local' tag is a special case, it copies {heka root}/externals/{plugin_name} into the Go
# work environment every time `make` is run. When local development is complete, and the source
# is checked in, the value can simply be changed to the correct tag to make it 'live'.
# i.e. {heka root}/externals/heka-sns-input -> {heka root}/build/heka/src/github.com/bellycard/heka-sns-input
:local标志就是代表从第一步创建的externals目录获取源码,否则就会自动的从此git地址checkout源码来编译,所以插件开发阶段此处应该是:local。
然后重新编译 heka 就可以完成插件的编译。
参考: http://ju.outofmemory.cn/entry/72713
Heka 的编译 和 Heka 插件的编译的更多相关文章
- Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程
		
原文:Red Gate系列之五 .NET Reflector 7.6.1.824 Edition .NET程序反编译神器(附插件安装教程2012-10-13更新) 完全破解+使用教程 Red Gate ...
 - Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例
		
Ubuntu13.04 Eclipse下编译安装Hadoop插件及使用小例 一.在Eclipse下编译安装Hadoop插件 Hadoop的Eclipse插件现在已经没有二进制版直接提供,只能自己编译. ...
 - VSCode 使用 Code Runner 插件无法编译运行文件名带空格的文件
		
本文同时在我的博客发布:VSCode 使用 Code Runner 插件无法编译运行文件名带空格的文件 - Skykguj 's Blog (sky390.cn) 使用 Visual Studio C ...
 - Android提升Gradle编译速度或减少Gradle编译时间.md
		
目录 Android如何提升Gradle编译速度或减少Gradle编译时间 最终优化方案 优化效果比对 将所有项目源码,各种缓存临时目录都移动到高性能SSD磁盘上 gradle.properties ...
 - CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25
		
所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...
 - CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6
		
Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...
 - CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25
		
所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...
 - CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17
		
所需源码包: /usr/local/src/PHP-5.2.17/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.2.17/mhash-0.9.9.9.tar. ...
 - CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27
		
所需源码包: /usr/local/src/PHP-5.3.27/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.3.27/mhash-0.9.9.9.tar. ...
 
随机推荐
- response 设置头的类型 (转)
			
Response.ContentType 详细列表 不同的ContentType 会影响客户端所看到的效果.默认的ContentType为 text/html 也就是网页格式.代码如: <% r ...
 - 解决python字典结构内存暴涨问题
			
背景:当读取一个key value数据的时候,python的字典结构会造成内存使用扩10倍左右,无可容忍.此文解决这个问题 数据:word2vec训练的结果,word对应400维的词向量.词表共1.6 ...
 - EtherType
			
EtherType is a two-octet field in an Ethernet frame. It is used to indicate which protocol is encaps ...
 - 16  On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima 1609.04836v1
			
Nitish Shirish Keskar, Dheevatsa Mudigere, Jorge Nocedal, Mikhail Smelyanskiy, Ping Tak Peter Tang N ...
 - Wiki语料处理
			
最近在做知识图谱相关工作,源数据主要来自百度百科,互动百科,中文维基百科等.其中中文维基百科提供数据库下载,下文主要讨论如何处理Wiki数据. 1. 中文维基数据下载 下载dump:https://d ...
 - 【转】使用Eclipse搭建Python开发环境
			
因为要进行自动化测试,所以要搭建Python开发环境.这里将使用Eclipse+pyDev进行搭建,在此作为笔记记录下来. 需要的组件: 1.Eclipse SDK 3.7(这里将不再叙述Eclips ...
 - IO流一行一行读取TXT文件
			
我们在开发或者测试的时候,往往会用到读取本地txt文件内容来处理数据的情况.下面是读取本地txt文件内容,是一行一行读取.如下列txt例子 小明 20 小红 20 小亮 20 下面是代码: publi ...
 - android 底层开发入门(一)
			
第一个Linux驱动程序:统计单词个数 一.首先了解一下: 打印机驱动写入数据:对于打印机驱动来说,需要接收这些被写入的数据,并将它们通过PC的并口.USB等端口发送给打印机.要实现这一过程就需要Li ...
 - 自动换行(word-wrap:break-word;word-break:break-all)
			
word-wrap:break-word; 自动换行,不把单词拆开 word-break:break-all; 自动换行,拆开单词 white-space:nowrap; 文本不会换行,文本会在同一行 ...
 - 关于CSS初步入门简述1
			
关于CSS的简介可以自行百度,本篇只考虑内容 首先关于CSS会由浅入深,写在前面的有很多不严谨,只是为了引出后文所写.不过如果谬误较大,敬请指正! 1.大部分的代码要写在之中 简单的例子: <b ...