Trouble Installing on Ubuntu 12.04

I’m using the installer for Debian, making the modification described at https://gist.github.com/1410317 (and changing “squeeze” to the appropriate name). Here’s the problem I’m running into: $ sudo /opt/vertica/sbin/install_vertica [...] Checking/fixing OS parameters….. Error: No JSON object could be decoded Traceback (most recent call last): File “/opt/vertica/bin/verticaInstall.py”, line 1188, in if not SSH.check_min_free_kbytes(installerSSH, fix=True): File “/opt/vertica/oss/python/lib/python2.7/site-packages/vertica/network/SSH.py”, line 2425, in check_min_free_kbytes data =json.loads( ”.join(res[host][1])) File “/opt/vertica/oss/python/lib/python2.7/json/__init__.py”, line 310, in loads return _default_decoder.decode(s) File “/opt/vertica/oss/python/lib/python2.7/json/decoder.py”, line 346, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File “/opt/vertica/oss/python/lib/python2.7/json/decoder.py”, line 364, in raw_decode raise ValueError(“No JSON object could be decoded”) ValueError: No JSON object could be decoded Installation failed. I went to /opt/vertica/oss/python/lib/python2.7/site-packages/vertica/network/SSH.py and put in a print statement just to see the strings that it is concatenating and trying (and failing) to load and this is what I get: Checking/fixing OS parameters….. Package 'vertica’ is not available. Use dpkg –info (= dpkg-deb –info) to examine archive files, and dpkg –contents (= dpkg-deb –contents) to list their contents. { “hostname”:”ip-10-141-139-114″, “devices”:[ {"device":"/dev/xvda1", "readahead":128 }, {"device":"/dev/xvdb", "readahead":128 } ], “file_max”:{ “current”:377658, “suggested”:65536 }, “max_map”:{ “current”:65530, “suggested”:240030 }, “min_free_kbytes”:{ “current”:7869, “suggested”:4096 }, “virtual_space”:{ “current”:”unlimited”, “suggested”:”unlimited” }, “max_file_size”:{ “current”:”unlimited”, “suggested”:”unlimited” }, “max_open_file”:{ “current”:”1024″, “suggested”:”65536″ }, “pam_su_enabled”:”false”, “nics”:[ {"name":"eth0", "speed":"unknown", "ipaddr":"10.141.139.114", "broadcast":"10.141.139.127", "netmask":"255.255.255.192"}, {"name":"lo", "speed":"locallink", "ipaddr":"127.0.0.1", "broadcast":"255.255.255.255", "netmask":"255.0.0.0"}], “total_memory”:3750, “max_user_proc”:”29879″, “vertica”:{“brand”:”package vertica-ce is not installed”}, “cpu_info”:{ “number_of_cpus”:1, “cpu_type”:” Intel(R) Xeon(R) CPU E5645 @ 2.40GHz”}} Error: No JSON object could be decoded $ dpkg –info vertica-ce_6.0.1-0_amd64.deb [...] Package: vertica-ce Is this is simply a matter of having to rename some ‘vertica’s somewhere to ‘vertica-ce’? Or if not that, then what?

Comments

  • I also had some trouble installing on Ubuntu in the past. While I do not exactly remember, I’m pretty sure I just changed a bunch of ‘if not xxxx’ into if not 1, i.e. basically just disable those checks and while that’s quite a dirty solution it did work out. I didn’t feel like fixing all their install script mistakes so just went with the quick and dirty “fix”…
  • Yes, that’s exactly the problem. Just the line in validators.sh that reads “dpkg -p vertica” to “dpkg -p vertica-ce” Unfortunately, it’s hardcoded so the cluster install doesn’t work. I even repackaged the deb file with the correct name and now the install won’t recognize the deb file. It’s almost like no one bothered to test the CE edition on debian installs.
  • I think the problem is, Ubuntu just isn’t officially supported. It’s a Debian package, not an Ubuntu one. It worked on my Debian box… 12.04 has a newer kernel/userspace than Debian 6, or than any of the other supported distro’s. So, not totally surprising that the Debian stuff doesn’t work unmodified on it.
  • I don’t think it’s limited to ubuntu installs, I experienced this exact error when trying to install CE on debian 6 (small CD install) as well in a 2 node test cluster. Unfortunately, I had to comment out the block of code in /opt/vertica/bin/verticaInstall.py that performs OS checks in order to get everything up and running.
  • The “Package ‘vertica’ is not available” is caused by their validators.sh, but it’s not the cause of why the whole thing fails: if [ -f /etc/debian_version ]; then dpkg -p vertica 2>&1 > /dev/null CODE=$? if [ $CODE -eq 0 ]; then BRAND='dpkg -p $PACKAGE_NAME | grep Package | awk -F: '{print $2}' | sed 's/ //g'' VERTICA_REV='dpkg -p $PACKAGE_NAME | grep Version | awk -F: '{print $2}' | sed 's/ //g' | awk -F- '{print "\42version\42:\42"$1"\42, \42release\42:\42"$2"\42, "}'' V_ARCH=i'dpkg -p $PACKAGE_NAME | grep Arch | awk -F: '{print $2}'| sed 's/ //g'' VERTICA_REV="$VERTICA_REV \"brand\":\"$BRAND\",\"arch\":\"$V_ARCH\"" fi else As you see they run dpkg -p vertica 2>&1 > /dev/null for some reason to check if the package ‘vertica’ is available on the machine. If it fails, they use PACKAGE_NAME defined earlier (which is ‘vertica-ce’ there) as their package name. The warning is actually not supposed to be displayed, they try to pipe it to /dev/null as you see, but their syntax is not correct so the warning still shows. If they would do dpkg -p vertica > /dev/null 2>&1 Then the message “Package 'vertica’ is not available.” would not be visible. But apparently the JSON they generate is not valid (ERROR: No JSON object can be decoded). Should be possible to find out how to fix that, I’ll get to it.
  • Well actually I’ll just comment out the functions that use that JSON and wait for the devs to fix it in an upcoming release. I’m sure they are aware of the issue by now (I comment: SSH.check_min_free_kbytes, SSH.check_open_file_limit, SSH.check_address_space_limit)
  • Turns out changing dpkg -p vertica 2>&1 > /dev/null into dpkg -p vertica > /dev/null 2>&1 In /opt/vertica/bin/validators.sh (line 196) does fix the issue after all, at least for installing on 1 node identified as ‘localhost’. I did not test it yet on a cluster but it probably works as well. The Vertica devs should fix validators.sh a bit more though, as the JSON now says ‘package vertica is not installed’ which is not true. It’s caused by lines 210-212 in validators.sh, which should probably be moved to lines 208-210 instead (inside the RPM case). I won’t lie, it’s quite disappointing such an easy to fix, yet critical bug remains for so long in an installer.
  • Thank you John That also fixed the problem for me on a debian 6 (small CD install)
  • Hi John, thanks for the advice. However, it only worked on Single node. Did you try installing on a cluster (i am trying on 3-node cluster)

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file