Installation in ubuntu 16.04.1 or 18.06

Good morning, dear, however, it is not that I will be doing wrong, I follow the guide Step by step, but it falls when I command to install npm install -g genieacs
This is the guide you used https://github.com/genieacs/genieacs/wiki/Installation-Guide-Ubuntu-16.04 and

What’s the error message you’re getting?

@leonardopc1991 try

npm i genieacs --unsafe-perm -g

It is not a solution for me. I get a lot of warning when I install libxlmjs 0.18.8 (mainly similar to this: …/vendor/libxml/xmlschemas.c:24288:3: warning: too many arguments for format [-Wformat-extra-args] value, length, type, facetLink->facet, NULL, NULL, NULL);

If I install the libxmljs without version (in this case the recent libxmljs - 0.19.5 - will be installed) I do not get warnings, but when I install the genieacs, I get a lot of errors (gyp ERR!, node-pre-gyp ERR!, npm ERR!).

If I install nodejs 8.x (=8.16.0) I get a lot of errors during installation of libxmlls 0.18.8, similar to genieacs installation in previous case.

If I install nodejs 8.x (=8.16.0) and libxmljs without version (=0.19.5) I get a lot of errors similar to in previous case.

I have not found so installation method for genieacs so far, which would be good for a clean installation of Ubuntu 16.04.6 .

It seems that the preferred way is now docker, at least on debian/Ubuntu. I got that reply to more or less the same question you guys have, and it makes sense as long as things are the way they are. I’ve successfully installed it this way, but it needs some tweaking. Unfortunately there’s no Centos version yet, but I’m working on that…
Instructions are here:


It does, however, mandate some knowledge of the concept of docker.

@holloo

I will try to help you, there is how i installed genieacs 1.1.3 on ubuntu 18 mini

Dependency ( it’s also for GUI)

apt install git wget nodejs npm mongodb python libxml2-dev build-essential gnupg ruby-bundler ruby-dev libffi-dev libpq-dev libsqlite3-dev tmux -y

another dependency

npm i later
npm i seedrandom
npm i redis
npm i bindings
npm i nan
npm i node-pre-gyp

With this conf i can correctly install libxmljs

npm config set user 0
npm config set unsafe-perm true
npm i libxmljs

and then

npm i genieacs --unsafe-perm -g

Hi Josef,
Thank you for your help. Since then I succeeded in install GenieACS 1.1.3 . I had to install ruby-dev and libxml2-dev as well. Moreover I modified section of dependencies in file package.json: “libxmljs”: “^0.18.8” --> “libxmljs”: “^0.19.5” . After these I did not get any error or warning during installation

For anyone trying to install onto Ubuntu Sever 18.04 I have created a crude script that works for me, I had the script installing Webmin for me too, but have these commented out.

 apt-get update 
apt-get upgrade 
#apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
#cd /usr/src 
#wget http://prdownloads.sourceforge.net/webadmin/webmin_1.910_all.deb
#dpkg --install webmin_1.910_all.deb 
apt-get install redis-server mongodb npm build-essential ruby-bundler ruby-dev libsqlite3-dev 
cd ~ 
curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
chmod +x nodesource_setup.sh
./nodesource_setup.sh 
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - 
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list 
apt-get update && apt-get install yarn
apt-get install nodejs 
npm install libxmljs --unsafe-perm 
npm install -g genieacs --unsafe-perm 
git clone https://github.com/zaidka/genieacs-gui 
apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev
cd genieacs-gui 
bundle
cp config/summary_parameters-sample.yml config/summary_parameters.yml 
cp config/index_parameters-sample.yml config/index_parameters.yml 
cp config/parameter_renderers-sample.yml config/parameter_renderers.yml 
cp config/parameters_edit-sample.yml config/parameters_edit.yml 
cp config/roles-sample.yml config/roles.yml 
cp config/users-sample.yml config/users.yml 
cp config/graphs-sample.json.erb config/graphs.json.erb
cd db/migrate
sudo sed -i '1!b;s/$/\[4.2]/g' *.rb
cd ~/genieacs-gui
cat << EOF > ./genieacs-start.sh
#!/bin/sh
if tmux has-session -t 'genieacs'; then
  echo "GenieACS is already running."
  echo "To stop it use: ./genieacs-stop.sh"
  echo "To attach to it use: tmux attach -t genieacs"
else
  tmux new-session -s 'genieacs' -d
  tmux send-keys 'genieacs-cwmp' 'C-m'
  tmux split-window
  tmux send-keys 'genieacs-nbi' 'C-m'
  tmux split-window
  tmux send-keys 'genieacs-fs' 'C-m'
  tmux split-window
  tmux send-keys 'cd genieacs-gui' 'C-m'
  tmux send-keys 'rails server -b 0.0.0.0' 'C-m'
  tmux select-layout tiled 2>/dev/null
  tmux rename-window 'GenieACS'

  echo "GenieACS has been started in tmux session 'geneiacs'"
  echo "To attach to session, use: tmux attach -t genieacs"
  echo "To switch between panes use Ctrl+B-ArrowKey"
  echo "To deattach, press Ctrl+B-D"
  echo "To stop GenieACS, use: ./genieacs-stop.sh"
fi
EOF

cat << EOF > ./genieacs-stop.sh
#!/bin/sh
if tmux has-session -t 'genieacs' 2>/dev/null; then
  tmux kill-session -t genieacs 2>/dev/null
  echo "GenieACS has been stopped."
else
  echo "GenieACS is not running!"
fi
EOF

chmod +x genieacs-start.sh genieacs-stop.sh

genieacs-start.sh & genieacs-stop.sh are stored in /~ the script should be sudo’d to run without error.

3 Likes

How are you?, this message error.
image

If you check it now, it supports CentOS on 1.1.3: https://github.com/DrumSergio/GenieACS-Docker
And also I have deployed successfully version 1.2.0-beta of GenieACS (via GitHub, not npm/yarn). It also supports Debian, CentOS and QNAP’s QTS (I have manually tested them). You can select which version to install on your server, both are available in the repository.

It also could support Ubuntu very easily, it’s just installing docker and docker-compose in your server, then just doing a docker-compose up -d would do!

Cheers :slight_smile:

1 Like

Hi
Gittela told: “It seems that the preferred way is now docker…”. That is exactly what I’m trying to conclude today.
How did you get this conclusion?

I’m in a project that will use GenieACS and I have to install it on Ubuntu 16.04 and 18.04. And I must document all the installation. My manager asked me to decide to install GenieACS with or without Docker. So, I have to figure out what is the best choice.

Can you point me some source of documentation/discussion/blog that discuss about installing GenieACS on Docker and why do it? If I could find some comparison about these 2 choices, it would be great.

Any hint will be very helpful!

Best regards.

I’m not really sure what’s the best way right now. The old version (not the latest which is in beta) is better under docker as it requires a lot of old stuff and it’s a pain to get it to install correctly. The new beta, however, installs like a charm with the given instructions. I’ve decided to go the traditional way for now as I’m not that good with docker, maybe some of the docker-geeks can weigh in on pros and cons(!).

Not sure if you got any wiser with this… :slight_smile:

Hi. Thank you very much.
Today I’m studding how to run GenieACS into a docker container. For my project, using a container could facilitate the installation process of all our software, including GenieACS, in customer’s machines. So, I will try it too. In DockerHub there are 55 containers already built to run GenieACS. Maybe it will help me. I have selected four of it and now I’m analyzing it. Let’s see if I build my container with GenieACS on my own …

Best regards.

I did these steps after I installed Ubuntu 16.04.6 LTS:

To this point every thing is OK.

Then I tried to install GenieACS (according to this description: Installation Guide — GenieACS Documentation 1.2.9 documentation)

    • sudo npm install -g --unsafe-perm genieacs@1.2.0-beta.0

At this point at got a lots of warning anf error:

nocmer@nocmer-VirtualBox:~$ sudo npm install -g --unsafe-perm genieacs@1.2.0-beta.0
[sudo] password for nocmer:
/usr/bin/genieacs-cwmp → /usr/lib/node_modules/genieacs/bin/genieacs-cwmp
/usr/bin/genieacs-ext → /usr/lib/node_modules/genieacs/bin/genieacs-ext
/usr/bin/genieacs-fs → /usr/lib/node_modules/genieacs/bin/genieacs-fs
/usr/bin/genieacs-nbi → /usr/lib/node_modules/genieacs/bin/genieacs-nbi
/usr/bin/genieacs-ui → /usr/lib/node_modules/genieacs/bin/genieacs-ui

libxmljs@0.19.5 install /usr/lib/node_modules/genieacs/node_modules/libxmljs
node-pre-gyp install --fallback-to-build --loglevel http

node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp http GET https://github.com/libxmljs/libxmljs/releases/download/v0.19.5/node-v72-linux-x64.tar.gz
node-pre-gyp http 404 https://github.com/libxmljs/libxmljs/releases/download/v0.19.5/node-v72-linux-x64.tar.gz
node-pre-gyp WARN Tried to download(404): https://github.com/libxmljs/libxmljs/releases/download/v0.19.5/node-v72-linux-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for libxmljs@0.19.5 and node@12.16.3 (node-v72 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp http 404 status code downloading tarball https://github.com/libxmljs/libxmljs/releases/download/v0.19.5/node-v72-linux-x64.tar.gz
gyp http GET https://nodejs.org/download/release/v12.16.3/node-v12.16.3-headers.tar.gz
gyp http 200 https://nodejs.org/download/release/v12.16.3/node-v12.16.3-headers.tar.gz
gyp http GET https://nodejs.org/download/release/v12.16.3/SHASUMS256.txt
gyp http 200 https://nodejs.org/download/release/v12.16.3/SHASUMS256.txt
make: Entering directory ‘/usr/lib/node_modules/genieacs/node_modules/libxmljs/build’
CXX(target) Release/obj.target/xmljs/src/libxmljs.o
In file included from …/…/nan/nan_converters.h:67:0,
from …/…/nan/nan.h:202,
from …/src/libxmljs.h:7,
from …/src/libxmljs.cc:7:
…/…/nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBasev8::Boolean::return_t Nan::imp::ToFactoryv8::Boolean::convert(v8::Localv8::Value)’:
…/…/nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocalv8::Boolean v8::Value::ToBoolean(v8::Localv8::Context) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
val->To ## TYPE(isolate->GetCurrentContext())
^
…/…/nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
X(Boolean)
^
In file included from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8-internal.h:14:0,
from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:27,
from …/src/libxmljs.cc:3:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:2664:59: note: declared here
V8_WARN_UNUSED_RESULT MaybeLocal ToBoolean(
^
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^
In file included from …/…/nan/nan_converters.h:67:0,
from …/…/nan/nan.h:202,
from …/src/libxmljs.h:7,
from …/src/libxmljs.cc:7:
…/…/nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase::return_t Nan::imp::ToFactory::convert(v8::Localv8::Value)’:
…/…/nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe v8::Value::BooleanValue(v8::Localv8::Context) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
return val->NAME ## Value(isolate->GetCurrentContext());
^
…/…/nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
X(bool, Boolean)
^
In file included from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8-internal.h:14:0,
from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:27,
from …/src/libxmljs.cc:3:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:2702:51: note: declared here
V8_WARN_UNUSED_RESULT Maybe BooleanValue(
^
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
declarator attribute((deprecated(message)))
^
In file included from …/…/nan/nan_new.h:189:0,
from …/…/nan/nan.h:203,
from …/src/libxmljs.h:7,
from …/src/libxmljs.cc:7:
…/…/nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::Function::return_t Nan::imp::Factoryv8::Function::New(Nan::FunctionCallback, v8::Localv8::Value)’:
…/…/nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfov8::Value&), v8::Localv8::Object&)’
, obj));
^
In file included from …/src/libxmljs.cc:3:0:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:4275:31: note: candidate: static v8::MaybeLocalv8::Function v8::Function::New(v8::Localv8::Context, v8::FunctionCallback, v8::Localv8::Value, int, v8::ConstructorBehavior, v8::SideEffectType)
static MaybeLocal New(
^
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:4275:31: note: no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Localv8::Context
In file included from …/…/nan/nan_new.h:189:0,
from …/…/nan/nan.h:203,
from …/src/libxmljs.h:7,
from …/src/libxmljs.cc:7:
…/…/nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBasev8::StringObject::return_t Nan::imp::Factoryv8::StringObject::New(v8::Localv8::String)’:
…/…/nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Localv8::String&)’
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from …/src/libxmljs.cc:3:0:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:5531:23: note: candidate: static v8::Localv8::Value v8::StringObject::New(v8::Isolate*, v8::Localv8::String)
static Local New(Isolate* isolate, Local value);
^
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:5531:23: note: candidate expects 2 arguments, 1 provided
In file included from …/…/nan/nan_new.h:189:0,
from …/…/nan/nan.h:203,
from …/src/libxmljs.h:7,
from …/src/libxmljs.cc:7:
…/…/nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
…/…/nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
return v8::StringObject::New(value).Asv8::StringObject();
^
In file included from …/src/libxmljs.h:7:0,
from …/src/libxmljs.cc:7:
…/…/nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Localv8::Value)’:
…/…/nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
v8::Localv8::String string = from->ToString();
^
In file included from …/src/libxmljs.cc:3:0:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:2668:44: note: candidate: v8::MaybeLocalv8::String v8::Value::ToString(v8::Localv8::Context) const
V8_WARN_UNUSED_RESULT MaybeLocal ToString(
^
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:2668:44: note: candidate expects 1 argument, 0 provided
In file included from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8-internal.h:14:0,
from /home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:27,
from …/src/libxmljs.cc:3:
/home/nocmer/.cache/node-gyp/12.16.3/include/node/v8.h:2684:31: note: candidate: v8::Localv8::String v8::Value::ToString(v8::Isolate*) const
Local ToString(Isolate* isolate) const);

and so on …

Hello,
I followed your procedure for setup genieacs and successfully done it without error.
In the devices option of genieacs there is no information displayed of the listed device. How can I show the information?

You’ve installed GenieACS 1.1.x by the looks of it. The current recommended version is 1.2.5. The installation and configuration is completely different - you must have followed old instructions. You might as well blow it away and start install of the new version from scratch.

1 Like

Could you help me please by provided instructions on how to install the newest version of Genieacs following old instructions?

You need to follow this guide: Installation Guide — GenieACS Documentation 1.2.5 documentation

I already follow the doc for installing newest version of genieacs, but the issue I found in the newest version is when I apply commit for any changes, that changes doesn’t make for device. Like as reboot option.
But in the old version commit works perfectly for any changes.

In the new one I think it doesn’t commit the task if it can’t reach the device on the connection request port. Make sure the device has connection requests enabled so that GenieACS can notify the client that there is work it has to perform. If the client is separated from GenieACS by an IPv4 NAT so that GenieACS cannot contact the client directly you may have to set up XMPP, or use IPv6.