Good point, I wasn’t aware that git-core
was just a “transitional package” so I think we should indeed move to using the git
package. (See Debian -- Error for details)
Yes I see your points, both that it is/was incomplete/inconsistent and that “strictly” speaking it’s not a dependency, but IMO a firewall is an essential part of installing a LAMP and exposing a device to the outside world so I would prefer it was fully documented rather than removed. If we don’t recommend installing a firewall here, there isn’t a more suitable place for. Personally I always install and configure UFW on any device that has emoncms installed to it and I have included it in my emoncms installer scripts too.
This is something that comes up regularly, I’ve been banging on about installing the php modules the “right way” for as long as I’ve been banging on about not installing the dio module that we stopped using 4-5 years ago.
Recent discussion’s about redoing the docs look promising and Glyn did actually edit the Linux guide to use the correct commands (see https://github.com/emoncms/emoncms/blob/master/docs/LinuxInstall.md#install-php-pecl-dependencies).
However, the Stretch documentation was revised to use apt-get to install php-redis in place of using PECL. It’s been a while since I have installed via apt-get so I cannot recall if the symlinks are done for you or not. But, regardless, the version installed by apt-get is 3.1.1 which we know has issues with rounding as floats are 32bits rather than 64bits when versions prior to 3.1.3 are used (see https://github.com/emoncms/emoncms/issues/660) this was fixed in 3.1.3 so we should be using PECL not apt-get as per the Stretch guide (see the apt-get install list for "php-redis https://github.com/emoncms/emoncms/blob/master/docs/RaspberryPi/readme.md#installation).
Prior to recent months the norm has been to write the 2 “enabling” files for each module manually rather than adding a “available” file and using the correct command to auto generate 2 symlinks to that single file to enable it. (see https://github.com/emoncms/emoncms/blob/master/docs/RaspberryPi/jessie.md#preparation) where
sudo sh -c 'echo "extension=dio.so" > /etc/php5/apache2/conf.d/20-dio.ini'
sudo sh -c 'echo "extension=dio.so" > /etc/php5/cli/conf.d/20-dio.ini'
sudo sh -c 'echo "extension=redis.so" > /etc/php5/apache2/conf.d/20-redis.ini'
sudo sh -c 'echo "extension=redis.so" > /etc/php5/cli/conf.d/20-redis.ini'
should be reduced to
printf "extension=redis.so" | sudo tee /etc/php5/mods-available/redis.ini 1>&2
sudo php5enmod redis
or for php7.0 installs
printf "extension=redis.so" | sudo tee /etc/php/7.0/mods-available/redis.ini 1>&2
sudo phpenmod redis
this is the resulting file and symlinks created by the above commands.
pi@raspberrypi:~ $ sudo ls -la /etc/php/7.0/{*/conf.d,*/}/*redis*.*
lrwxrwxrwx 1 root root 37 Feb 12 12:12 /etc/php/7.0/apache2/conf.d/20-redis.ini -> /etc/php/7.0/mods-available/redis.ini
lrwxrwxrwx 1 root root 37 Feb 12 12:12 /etc/php/7.0/cli/conf.d/20-redis.ini -> /etc/php/7.0/mods-available/redis.ini
-rw-r--r-- 1 root root 18 Feb 12 12:12 /etc/php/7.0/mods-available/redis.ini
We have been discussing the documentation and the overall structure in the Move data & settings file to a common location? - #3 by borpin thread (as you know) and also in the Updating system libraries used by emoncms - #12 by glyn.hudson thread and also back in the Raspbian Stretch thread too.
I’m hoping we can arrive at a uniform “Linux” installation method that can then be documented and maintained in one place for all users. This was difficult in the past as the emonPi had special requirements, but as Trystan has shown interest in revising the emoncms structure we may be able to get there now.
Over the weekend I wrote (or rather revised again) an install script that I have tested on Raspbian Stretch, Debian 9 and Ubuntu 16.04 so far. I might release a pre-view version shortly, but I would ideally like to make it “multi-pass safe” so that it can also be re-run to set up secondary emoncms instances and/or to update or “fix” existing installs eg correcting permissions and replacing accidentally deleted symlinks etc.
Which I have just edited it to install “git” not “git-core” thanks