Ubuntu 18.04 LTS for Human Beans

This page collects information to have Ubuntu 18.04 LTS (Xenial Xerus) in a laptop or desktop as usable as possible for Human Beans willing to use it for production.

1.1. Enable Ubuntu Partners

First enable "partners" repos, since we will use it later to install skype, at least.

Contents of the updated /etc/apt/sources.list
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu bionic partner
deb-src http://archive.canonical.com/ubuntu bionic partner

1.2. Extra repositories

Useful extra repositories

Command on a console
xavi@penguinbookpro:~$ sudo su
add-apt-repository -y ppa:nilarimogard/webupd8
add-apt-repository -y ppa:danielrichter2007/grub-customizer
add-apt-repository -y ppa:webupd8team/java
add-apt-repository -y ppa:bit-team/stable
add-apt-repository -y ppa:jtaylor/keepass
add-apt-repository -y ppa:marutter/rrutter
add-apt-repository -y ppa:atareao/telegram
add-apt-repository -y ppa:maarten-baert/simplescreenrecorder
add-apt-repository -y ppa:yg-jensge/shotwell
add-apt-repository -y ppa:mkusb/ppa
add-apt-repository -y ppa:hamishmb/myppa
add-apt-repository -y ppa:utappia/stable

# Add the release PGP keys for syncthing repo:
apt install curl
curl -s https://syncthing.net/release-key.txt | apt-key add -
# Add the "release" channel to your APT sources for updated-twice-per-month syncthing daemon:
echo "deb https://apt.syncthing.net/ syncthing release" | tee /etc/apt/sources.list.d/syncthing.list
# Next 3 lines are for syncthing-gtk
sh -c "echo 'deb http://download.opensuse.org/repositories/home:/kozec/xUbuntu_18.04/ /' > /etc/apt/sources.list.d/home:kozec.list"
wget -nv https://download.opensuse.org/repositories/home:kozec/xUbuntu_18.04/Release.key -O Release.key
apt-key add - < Release.key
# Update packages list again, just in case
apt-get update

Press enter each time when requested.

After keys are imported, you can quit from the root session with "exit":

root@computer:/home/xavi# exit

1.3. Install with interaction

Install programs which require interaction, like a confirmation step, a new password or user interaction of some sort.

  • mysql-server, for the webserver in localhost, etc.
  • phpmyadmin, to manage mysqldatabases easily through a web browser
  • apachetop, for monitoring apache in real time
  • ttf-mscorefonts-installer, required by other packages (PlayOnLinux, maybe?)
  • a few others like java, and network filesystem network packages

Command on a console
sudo apt-get install -y ttf-mscorefonts-installer nfs-common libnss-winbind winbind cifs-utils oracle-java8-installer libdvd-pkg

If you need a webserver & php/mysql:

Command on a console
sudo apt-get install -y mysql-server phpmyadmin apachetop postfix tasksel
sudo tasksel install lamp-server
sudo mysql_secure_installation

if you don't run the mysql_secure_installation command, mysql root will not have password set yet, and you won't be able to access mysql through phpmyadmin yet.
But for some reason, Ubuntu 18.04 comes with a different way to autheticate the root mysql user, and you may end up with problems to login to mysql with the password you just indicated in the steps above. Therefore, if that is your case also, you may need to run these steps to setp mysql root password as usual in earlier Ubuntu LTS versions:

1.4. Install the rest in program sets

You can then install all the rest of the required and useful software for common tasks (including video editing, screencasting, etc). Note that the first package names until wcatalan are localization packages for our local language, and you can skip them or adapt for your language, etc.

Command on a console
sudo apt-get install -y apt-show-versions backintime-common backintime-gnome bluefish bluefish-plugins bzr-explorer cairo-dock cairo-dock-plug-ins cheese chromium-browser classicmenu-indicator corkscrew create-resources printer-driver-cups-pdf diodon filezilla firefox-locale-ca flashplugin-installer flvstreamer gdebi geany geany-plugins gimp-plugin-registry gir1.2-gst-plugins-bad-1.0 git git glabels gnome-alsamixer gnupg2 gparted grub2-splashimages grub-customizer gscan2pdf gstreamer1.0-plugins-good gstreamer1.0-fluendo-mp3 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gtk-recordmydesktop gufw guvcview gwenview handbrake hibernate htop hyphen-ca icatalan icc-profiles-free indicator-cpufreq inkscape ispell kazam kde-l10n-ca kdenlive keepass2 keepass2-doc kile kipi-plugins krename krusader kupfer language-pack-ca language-pack-ca-base language-pack-gnome-ca language-pack-gnome-ca-base language-pack-kde-ca lftp libcurl4-gnutls-dev libdbd-mysql libgtk2.0-dev libmysqlclient-dev libreoffice-help-ca libreoffice-l10n-ca libsyntax-highlight-engine-kate-perl linux-firmware luckybackup mailutils mc meld mobile-atlas-creator mythes-ca nautilus-dropbox nautilus-scripts-manager oggvideotools ogmrip ogmtools openjdk-8-jre openshot openshot-doc openssh-server p7zip p7zip-full p7zip-rar pavucontrol pdfmod pdfsam pepperflashplugin-nonfree pidgin pidgin-plugin-pack pidgin playonlinux powernap qemu-system qshutdown qtgstreamer-plugins-qt5 scribus scribus-doc scribus-template sendemail shutter simplescreenrecorder sshfs synaptic syncthing telegram terminator thunderbird thunderbird-locale-ca totem-plugins totem-plugins-extra transmageddon ubuntu-restricted-addons ubuntu-restricted-extras unity-tweak-tool unrar uswsusp variety virt-manager virtualbox virtualbox-dkms vlc vpx-tools wcatalan webp wine-stable winetricks x2goclient xauth xfonts-100dpi xfonts-75dpi xfonts-base xsane xul-ext-lightning  gedit-plugins kio-extras-data  shotwell testdisk geeqie kwalletmanager firefox libvdpau-va-gl1 soundconverter keychain mtp-tools mkusb mkusb-nox usb-pack-efi ddrescue-gui torbrowser-launcher icedtea-8-plugin pdfposter posterazor libgstreamer-plugins-base1.0-dev btrfs-progs btrfs-tools libfsntfs-utils ucaresystem-core net-tools python-gpg nautilus-dropbox simple-scan youtube-dl youtube-dlg

And if you need R and similar developer programs, you can install also:

Command on a console
sudo apt-get install -y  r-recommended  r-cran-xml libgraphviz-dev libcairo2-dev r-cran-cairodevice freeglut3 freeglut3-dev r-cran-rglpk r-cran-rgl r-cran-misc3d libx11-dev libxt-dev libcurl4-gnutls-dev libxml2-dev r-cran-xml libgraphviz-dev libcairo2-dev bwidget tk-table libv8-dev r-cran-rjava libmpfr-dev libc6 libssl-dev texlive-latex-extra texlive-lang-spanish libx11-dev libxml2-dev libxml2:i386 libxt-dev r-cran-misc3d subversion git texmaker tk-dev unaccent xvfb libgdal-dev libproj-dev r-cran-rmysql libmagick++-dev r-cran-rcolorbrewer r-cran-doparallel libssh2-1-dev libudunits2-dev libgdal-dev libgeos-dev libproj-dev libjq-dev libprotobuf-dev protobuf-compiler libssl-dev libcairo2-dev

If you need webserver and other typical programs intended for servers, you can install this other set too:

Command on a console
sudo apt-get install -y  php-sqlite3 postfix rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus rapidsvn subversion php-memcache php-gettext php-intl php-mbstring php-pspell php-zip composer php-curl php-xmlrpc php-intl php-mysql poppler-utils php-memcached memcached

If you want to have locale packages such as Catalan, you might be intersted in installaing these extra packages:

Command on a console
sudo apt-get install -y  aspell-ca hunspell-ca

And for Spanish:

Command on a console
sudo apt-get install -y  aspell-es hyphen-es ispanish language-pack-gnome-es  myspell-es mythes-es wspanish

1.5. Boot-repair (in multi-boot environments)

Thse instructions will save you some headache in a multi-boot environment when one OS changes the boot menu and doesn't allow you boot in your preFfered OS. You can boot from an Ubuntu live CS/DVD/USB, and install boot-repair program from its own repo, with:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

More information:

Non installed yet:

  • jitsi -> installed by hand frmo their website, v 2.8.x
  • linux-firmware-nonfree
  • gstreamer1.0-plugins-bad-multiverse -> gstreamer1.0-plugins-bad

Other useful programs installed by hand in a later stage:

You can test email sending in the command line with:

echo testing | mail -s test_subject youremail@example.com

1.5.1. Main changes noticed for human beans


  • Bluetooth works by default with most devices
  • Battery icon displays battery info for connectd bluetooth devices using batteries (mouse, keyboard, etc)
  • Icon to edit microphone volume levels shows up automatically on the top bar when the microphone is in use


  • "USB startup creator" doesn't let you choose a persistent partition file when creating bootable usb disks with ubuntu distros.

1.5.2. Extra R packages to be installed

Usual R packages that are useful in many cases. You can install them in an R console in a terminal (Type "R" in the terminal to launch the R console), or through RStudio command line.

Run in an R console
install.packages(c("devtools", "plotly", "Nozzle.R1", "VennDiagram", "stringr", "xml2", "parallel", "data.table", "doParallel", "xtable", "plyr", "dplyr", "reshape2", "rjson", "d3heatmap", "htmlwidgets", "googleVis", "doMC", "Rcmdr", "knitr", "checkpoint", "XLConnect", "sem", "rmarkdown", "relimp", "effects", "aplpack", "flexdashboards", "addinslist", "tidyverse", "magick", "webshot", "pacman", "officer", "flextable", "huxtable"))
library(devtools);if(!require(rCharts)) install_github('rCharts', 'ramnathv')

1.5.3. Install new php versions and switch between them

Ubuntu 18.04 comes with php 7.2, and some php applications might still fail with php 7.2 .Therefore, in some cases, it might be sensible to have both php 7.0 and php 5.x, so that you can choose which version to use for your needs at any time. Or even better, 7.1. You need to add a new repository to have other versions of php available, and you will require the equivalent branch for a patched apache2 that will work with the other php version repository.

You can do so with:

xavi@computer# sudo su
root@computer# add-apt-repository ppa:ondrej/php
root@computer# add-apt-repository ppa:ondrej/apache2
root@computer# apt-get update
root@computer# apt-get install php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6  php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xml php5.6-xmlrpc libphp5.6-embed  php-memcache php5.6-intl php5.6-zip  php5.6-sqlite3  
root@computer# apt-get install php7.1 php7.1-mysql php-gettext php7.1-mbstring php-xdebug libapache2-mod-php7.1  php7.1-curl php7.1-gd php7.1-mcrypt php7.1-xml php-xml-parser php7.1-xmlrpc libphp7.1-embed  php-memcache php7.1-intl php7.1-zip  php7.1-sqlite3
root@computer# apt-get install php7.2 php7.2-mysql php-gettext php7.2-mbstring php-xdebug libapache2-mod-php7.2  php7.2-curl php7.2-gd php7.2-xml php7.2-xmlrpc libphp7.2-embed  php-memcache php7.2-intl php7.2-zip  php7.2-sqlite3

Eventually Installing both php5.6 & php7.* resulted in a lot of complaining from apt and lots of conflicts. The first suggested resolution was to remove all the stock php5 packages so that PHP 5.6 could be installed - so I just accepted the first suggestion.

The config files are all in /etc/php/5.6 and /etc/php/7.* respectively - inside here is where you can configure which extensions are loaded, set the ini settings, and everything else for each version in isolation.

So to switch from php 5.6 to php 7.2 you need to do two things:

# For php in web apps
user@computer:/# sudo a2dismod php5.6; sudo a2enmod php7.2; sudo service apache2 restart
# For php-cli in the command line
user@computer:/# sudo ln -sfn /usr/bin/php7.2 /etc/alternatives/php
user@computer:/# php -v
# PHP 7.2.x (...)
# Copyright (c) 1997-2016 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

or from php7.2 to php5.6:

# For php in web apps
user@computer:/# sudo a2dismod php7.2 ; sudo a2enmod php5.6 ; sudo service apache2 restart
# For php-cli in the command line
user@computer:/# sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
user@computer:/# php -v
# PHP 5.6.21-1+donate.sury.org~xenial+2 (cli) 
# Copyright (c) 1997-2016 The PHP Group
# Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
#    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

From the commandline, I have both php5.6 and php7.2 available as commands. I also still have a php command - look in /etc/alternatives to see that it symlinks to a particular version of PHP cli*. You can also quickly check which yours is using by running php -v.

Remember that php.ini and other files with settings are not in /etc/php5 anymore but in /etc/php/version/

1.6. PHP Debugger

You may use a nice (but closed source) IDE such as PHPStorm (which provides a version at no cost for FLOSS projects such as Tiki), or stick with pure FLOSS apps such as Aptana Studio IDE.


1.7. Fix Shutter editor

Shutter seems to be missing some perl dependencies in repositories to have the edit feature installed by default. You can add packages by hand (they work fine) with:

Commands in a terminal
cd ~/tmp
wget https://launchpad.net/ubuntu/+archive/primary/+files/libgoocanvas-common_1.0.0-1_all.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libgoocanvas3_1.0.0-1_amd64.deb
sudo dpkg -i libgoocanvas-common_1.0.0-1_all.deb
sudo dpkg -i libgoocanvas3_1.0.0-1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libgoo-canvas-perl_0.06-2ubuntu3_amd64.deb
sudo dpkg -i libgoo-canvas-perl_0.06-2ubuntu3_amd64.deb
sudo apt-get install -y libextutils-depends-perl libextutils-pkgconfig-perl
sudo dpkg -i libgoo-canvas-perl_0.06-2ubuntu3_amd64.deb
sudo apt-get -f install

Then close shutter, and shutter indicator icon in the task bar, and restart it again. YOu'll be able to edit images again from within shutter.

Pending to be reviewed

Image Seed: noun \ˈsēd\ : the beginning of something which continues to develop or grow

Knowledge seeds

Switch Language