Heka의 컴파일링과 Heka 플러그인의 컴파일
모든 시스템은 다음과 같아야 합니다.
Prerequisites (all systems):
필요한 종속성 컴파일하기
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.