packages
packages copied to clipboard
Static x86_64 builds
I have added a static x86_64 build using alpine and linux in commit 05f7bcb9b8e4562d8df12e1f022325b26b77cb2c which can be the foundation for some generic packaging.
@ktsaou I will not have any more time to work on this until next week at the earliest but the binaries are built statically and appear to run as expected.
If you follow the readme instructions you should be able to get the build-x86_64-static.sh
to run without much trouble.
The result of make install
currently goes to build/x86_64-static/netdata/opt
on the host, given the prefix used for configure
and the DESTDIR
for make install
within the container.
What is left to do:
- Update
x86_64-static/netdata/docker-build.sh
to make a package of some kind and settle any options to./configure
. - Update
build-x86_64-static.sh
to copy the packages from underbuild/x86_64-static/netdata
on the to theoutput/packages
folder. - Wait until a master build succeeds on travis
- Create a tag and watch the results appear in a github release!
Of these, 1 is almost all of the work, of course...
This is very nice! I used it and it is awesome! Very nice work!
In order for a static netdata to be installed, I guess the following have to be made:
- Add user
netdata
to the system - Add group
netdata
to the system - Add user
netdata
to various groups that might already exist to the system (docker
,varnish
,nginx
,haproxy
,adm
) - Install logrotate file
- Install systemd service or init file
- Chown/chmod netdata files
- setcap or setuid to root
apps.plugin
- If the installation path already has a netdata installation, check all the config files and keep the ones that have been edited.
- generate the
netdata-uninstaller.sh
script - generate the
netdata-updater.sh
script
All the above, in addition to compiling netdata are handled by netdata-installer.sh
, so I'll split it in 2 parts to avoid having to maintainer 2 installers.
Questions:
-
netdata requires fping 3.15+ to run (the nice folks at fping accepted my PR, so fping can become a netdata plugin!). I guess we can compile fping the same way and install it in /opt/netdata.
-
Shall we link
netdata
to/usr/sbin/netdata
,/etc/netdata
to/opt/netdata/etc/netdata
? This will allow people to use the same instructions found everywhere... -
I would love to ship
firehol
,fireqos
,iprange
and the rest of our tools with this binary release. -
I would love people to install netdata with just a
curl
command. So, the flow could be something like this:-
curl installer.sh >/tmp/netdata.sh && sh /tmp/netdata.sh
- this script will just rununame -m
to get the machine architecture anduname -s
to find the kernel type (linux, freebsd, etc) and will execute: -
curl installer-${ARCH}-${KERNEL}.sh >/tmp/netdata-${ARCH}-${KERNEL}.sh && sh /tmp/netdata-${ARCH}-${KERNEL}.sh
. This one will be the binary release, built withmakeself
. -
makeself
should be instructed to unzip the file in/opt/netdata
and call/opt/netdata/installer/makeself-installer.sh
which will execute the 10 steps I described at the beginning. - special care has to be given to
etc/
directory. I think we should ship it asetc.new/
and the installer will copy the files while keeping the ones that have been edited by the user.
-
@philwhineray @simonnagl what do you think?
Sounds reasonable to me. Let's mention that I have no experience with makeself
.