Как собрать последнюю grafana из исходников в gentoo?
Понадобится gentoo ebuild 9999 grafana. А как его установить, сейчас расскажу.
Для успешной сборки потребуется go, nodejs и yarn, все это есть в зависимостях, так что от нас особо ничего не потребуется, кроме наличия локального репа и конечно-же некоторого количества нашего и процессорного времени.
Локальный репозитарий
Создайте файл /etc/portage/repos.conf/local.conf с содержимым
[local] location = /usr/local/portage masters = gentoo auto-sync = no
и собственно саму директорию /usr/local/portage создать было бы не лишним.
grafana-9999.ebuild
Сохраняем ебилд графаны в свой локальный реп, у меня это /usr/local/portage/www-apps/grafana/grafana-9999.ebuild , заходим в /usr/local/portage/www-apps/grafana и выполняем repoman manifest для генерации Manifest-файла, после чего можем установить графану привычным способом emerge -av grafana
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
DESCRIPTION="Grafana from source"
HOMEPAGE="https://grafana.com/"
EGIT_REPO_URI="https://github.com/grafana/grafana"
EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/github.com/grafana/grafana"
S="$EGIT_CHECKOUT_DIR"
inherit git-r3 user
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DOCS=( CHANGELOG.md CODE_OF_CONDUCT.md LICENSE.md NOTICE.md PLUGIN_DEV.md README.md ROADMAP.md docs/VERSION )
RDEPEND="!www-apps/grafana-bin"
DEPEND=">=dev-lang/go-1.9.2
sys-apps/yarn"
pkg_setup() {
enewgroup grafana
enewuser grafana -1 -1 /usr/share/grafana grafana
}
src_prepare() {
export GOPATH="${WORKDIR}/${P}"
emake deps-go
emake deps-js
default
}
src_compile() {
export GOPATH="${WORKDIR}/${P}"
emake build-go
emake build-js
}
src_test() {
export GOPATH="${WORKDIR}/${P}"
emake test-go
emake test-js
}
src_install() {
keepdir /etc/grafana
insinto /etc/grafana
newins conf/sample.ini grafana.ini
dobin bin/grafana-{server,cli}
newconfd "${PORTDIR}/${CATEGORY}/${PN}-bin/files/grafana.confd" grafana
newinitd "${PORTDIR}/${CATEGORY}/${PN}-bin/files/grafana.initd.3" grafana
keepdir /var/{lib,log}/grafana
keepdir /var/lib/grafana/{dashboards,plugins}
fowners grafana:grafana /var/{lib,log}/grafana
fowners grafana:grafana /var/lib/grafana/{dashboards,plugins}
fperms 0750 /var/{lib,log}/grafana
fperms 0750 /var/lib/grafana/{dashboards,plugins}
# Frontend assets
insinto /usr/share/grafana
doins -r public conf
keepdir /usr/share/grafana/vendor
insinto /usr/share/grafana/vendor
doins -r tools/phantomjs
}