Ubuntu 16.04
WARNING THIS VERSION OF LINUX, IT IS RELATIVITY NEW AND THERE ARE ISSUES!
USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk.
Article under construction.
Contents
Installation from scratch
There should be a lot less trouble doing a fresh installation. Just follow the usual steps outlined in the articles on previous Ubuntu versions:
- Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the "Install Ubuntu" Option when it is presented to you at the Welcome screen.
- Proceed with a normal install of Ubuntu. It is recommended to make the choice to Download the latest updates while installing by ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems. Recommended that you remove all information unless you have other OS's you want to keep on the system.
- Partitioning the disk seems to be a bit tricky: You have to delete the volume group it makes, select the actual device, and it lets you choose to blow away the partitions table and make a new one
- During the install Ubuntu will ask you to set your timezone, layout, and some user information such as a user name and password. Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.
- After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.
Your system should now be installed and ready to go.
Update / Dist-Upgrade
This part is definitely harder than a new installation. So please read this before starting the upgrade process and be aware that things might go wrong. You have been warned. So start off by modifying your /etc/apt/sources.list file. Replace all 'trusty' or 'wily' strings with 'xenial' and update your package list.
sudo apt-get update
Upgrading from 14.04 (trusty) as well as from 15.04 (wily) you'll most probably run into the following error:
sudo apt-get dist-upgrade ... Checking if update is needed. Checking server version. Error: Server version (5.5.49-0ubuntu0.14.04.1) does not match with the version of the server (5.7.12) with which this program was built/distributed. You can use --skip-version-check to skip this check. mysql_upgrade failed with exit status 3 dpkg: error processing package mysql-server-5.7 (--configure): subprocess installed post-installation script returned error exit status 1 ... dpkg: dependency problems prevent configuration of mysql-server: mysql-server depends on mysql-server-5.7; however: Package mysql-server-5.7 is not configured yet. dpkg: error processing package mysql-server (--configure): dependency problems - leaving unconfigured ... Errors were encountered while processing: mysql-server-5.7 mysql-server Current status: 0 updates [-272].
As you can clearly see from the error (in my case) the mysql server still runnning was the old version 5.5.49 but the mysql_update tool trying to update the DB in the postinstall scripts was already the newer version. I got this solved by opening two terminals/consoles and shutting down the (old) mysql DB (sudo service mysql stop) while re-running the package installer (sudo apt-get -f install). Very ugly but worked for me.
While still untested another solution to this issue might be shutting down the old mysql DB before upgrading the system. Hopefully the installer would bring up the new DB before trying to run mysql_update (as this would fail with no DB instance being up!).
An error might be caused by different issues. So please pay full attention on the error you see and check your error log which is the most valuable source of information in this case.
tail -n 30 /var/log/mysql/error.log
MySQL password behavior
Password behaviour when the MySQL root password is empty has changed. Packaging now enables socket authentication when the MySQL root password is empty. This means that a non-root user can't log in as the MySQL root user with an empty password. See here and as well note that root login via non-socket connection (like FOG connecting via TCP localhost) also is not allowed anymore if password was empty. To fix this you can login via mysql command line tool and change the connection setting.
mysql -u root ... mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ; mysql> quit
Customized my.cnf
In case you have customized your mysql configuration (/etc/mysql/my.cnf) you might even run into another problem. See here!
PHP issue
People reported having issues with PHP in 16.04 as well. On my test install system I have the following PHP packages:
dpkg -l | grep php ii libapache2-mod-php5 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (Apache 2 module) ii php-cli 1:7.0+35ubuntu6 all command-line interpreter for the PHP scripting language (default) ii php-common This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED. 1:35ubuntu6 all Common files for PHP packages ii php-gettext 1.0.11-2build1 all read gettext MO files directly, without requiring anything other than PHP ii php-pear 1:1.10.1+submodules+notgz-6 all PEAR Base System ii php-xml 1:7.0+35ubuntu6 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default] ii php5 5.6.20+dfsg-1+deb.sury.org~trusty+1 all server-side, HTML-embedded scripting language (metapackage) ii php5-cli 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 command-line interpreter for the php5 scripting language ii php5-common 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 Common files for packages built from the php5 source ii php5-curl 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 CURL module for php5 ii php5-fpm 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary) ii php5-gd 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 GD module for php5 ii php5-json 1.3.9-1+deb.sury.org~trusty+4 amd64 JSON module for php5 ii php5-mcrypt 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 MCrypt module for php5 ii php5-mysqlnd 5.6.20+dfsg-1+deb.sury.org~trusty+1 amd64 MySQL module for php5 (Native Driver) ii php7.0-cli 7.0.4-7ubuntu2 amd64 command-line interpreter for the PHP scripting language ii php7.0-common 7.0.4-7ubuntu2 amd64 documentation, examples and common module for PHP ii php7.0-json 7.0.4-7ubuntu2 amd64 JSON module for PHP ii php7.0-opcache 7.0.4-7ubuntu2 amd64 Zend OpCache module for PHP ii php7.0-readline 7.0.4-7ubuntu2 amd64 readline module for PHP ii php7.0-xml 7.0.4-7ubuntu2 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP
Interestingly enough I have PHP5 and PHP7 packages and the FOG interface works fine. phpinfo shoes 5.6.20 running. So I purged all PHP5 packages (apt-get purge php5*), adding variables to .fogsettings file and re-ran the installer.
MySQL 5.7 issue
We have several reports about the FOG web interface not being able to create new hosts or groups (error in the web gui: Host ID was not set, or unable to be created). As well a updating the schema will most probably fail if you try a fresh install.
String is not integer
Database error: Incorrect integer value: '' for column 'uId' at row 1
Database SQL: INSERT INTO `fog`.`users` VALUES ('','fog', MD5('password'),'0000-00-00 00:00:00','')
Status: Unfixed yet. Working on it...
Missing default value
Database error:
Field 'ngmKey' doesn't have a default value
Database SQL:
INSERT INTO `fog`.nfsGroupMembers (ngmMemberName, ngmMemberDescription, ngmIsMasterNode, ngmGroupID, ngmRootPath, ngmIsEnabled, ngmHostname, ngmMaxClients, ngmUser, ngmPass) VALUES ('DefaultMember', 'Auto generated fog nfs group member', '1', '1', '/images/', '1', 'x.x.x.x', '10', 'fog', '...')
Status: Unfixed yet. Working on it...
GROUP BY
Database Error:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'fog.groupMembersTemp.gmID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Database SQL:
delete from `fog`.`groupMembers` where gmID in (select gmID from `fog`.`groupMembersTemp` group by gmHostID, gmGroupID having count(*) > 1)
Status: Unfixed yet. Working on it...
syntax error
Database Error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IGNORE TABLE `fog`.`hostMAC` ADD UNIQUE INDEX `hmHostID` (`hmMAC`)' at line 1
Database SQL: <code>ALTER IGNORE TABLE `fog`.`hostMAC` ADD UNIQUE INDEX `hmHostID` (`hmMAC`)
Status: Unfixed yet. Working on it. Information: http://dev.mysql.com/doc/refman/5.7/en/alter-table.html