Heka의 컴파일링과 Heka 플러그인의 컴파일

4233 단어
관련 영문 문서는 다음과 같습니다.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 --versioncmake 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 --versiongit version 2.9.2
    Mercurial
    다운로드 주소:https://www.mercurial-scm.org/Mercurial-3.8.2-macosx10을 다운로드했습니다.10.pkg
    설치 완료 후 테스트 방법:
    hg--version 분포식 소프트웨어 설정 관리 도구 - 수은(버전 3.8.2)(seehttps://mercurial-scm.org for more information)
    Copyright (C) 2005-2016 Matt Mackall and othersThis is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    프로젝트 컴파일
    $ cd heka$ source build.sh
    소스 build입니다.sh
     
    source 명령 (C Shell에서 온 것) 은 bash 셸의 내장 명령입니다.점 명령은 점 기호이며 (Bourne Shell에서) 소스의 다른 이름입니다.마찬가지로 현재 스크립트에 설정된 변수도 스크립트의 환경으로 사용되며,source (또는 점) 명령은 수정된 초기화 파일을 다시 실행하는 데 사용됩니다. 예를 들어.bash_profile 및.프로필 등등.예를 들어 로그인한 후에bash_프로필의 EDITER와 TERM 변수를 수정하면 소스 명령으로 다시 실행할 수 있습니다.bash_프로필의 명령을 취소하고 다시 로그인할 필요가 없습니다.
    source 명령의 역할은 스크립트를 실행하는 데 사용됩니다. 그러면:source a.sh는 직접 실행됩니다./a.sh는 무엇이 다릅니까? 예를 들어 스크립트에서 export$KK=111을 사용하면./a.sh에서 이 스크립트를 실행합니다. 실행이 끝난 후에 echo$KKK를 실행하면 값이 없습니다. source로 실행하고 echo를 실행하면 KK=111을 발견할 수 있습니다.호출 때문에./a.sh가 실행하는 셸은 하위 셸에서 실행되기 때문에 실행한 후에 결과는 부모 셸에 반영되지 않았지만source와 달리 그는 이 셸에서 실행하기 때문에 결과를 볼 수 있습니다.
    source 명령은 셸의 내부 명령입니다. 지정한 셸 파일에서 모든 명령문을 읽고 현재 프로세스에서 실행합니다.따라서 여러 개의 셸 프로세스 (부자 프로세스나 무관 프로세스 모두) 가 변수 값을 공유할 때, 이 변수 부여 문구를 셸 파일에 정의하고, 이 변수 값이 필요한 프로그램에서 점문구를 사용하여 이 셸 파일을 인용하여 변수 값 공유를 실현할 수 있다. (이 변수 값에 대한 수정은 이 셸 파일에만 관련된다.)그러나 주의해야 할 것은 이 셸 파일은 위치 파라미터를 포함하는 문장을 포함할 수 없으며, $1, $2 등 명령행 파라미터를 받아들일 수 없다는 것이다.
    참조:http://www.ahlinux.com/shell/23595.html
    go가 쓴 Heka 플러그인 컴파일
    {heka root}/cmake/pluginloader.cmake 파일에서ddexternal_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

    좋은 웹페이지 즐겨찾기