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.shto make a package of some kind and settle any options to./configure. - Update
build-x86_64-static.shto copy the packages from underbuild/x86_64-static/netdataon the to theoutput/packagesfolder. - 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
netdatato the system - Add group
netdatato the system - Add user
netdatato 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.shscript - generate the
netdata-updater.shscript
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
netdatato/usr/sbin/netdata,/etc/netdatato/opt/netdata/etc/netdata? This will allow people to use the same instructions found everywhere... -
I would love to ship
firehol,fireqos,iprangeand the rest of our tools with this binary release. -
I would love people to install netdata with just a
curlcommand. So, the flow could be something like this:curl installer.sh >/tmp/netdata.sh && sh /tmp/netdata.sh- this script will just rununame -mto get the machine architecture anduname -sto 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.makeselfshould be instructed to unzip the file in/opt/netdataand call/opt/netdata/installer/makeself-installer.shwhich 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.