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
## 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
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 setup mysql root password as usual in earlier Ubuntu LTS versions:
https://linuxconfig.org/how-to-reset-root-mysql-password-on-ubuntu-18-04-bionic-beaver-linux
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.
Per omissió, Ubuntu 18.04 ve amb R 3.4.x. Però en els passos previs d'aquestes instruccions, s'han afegit ja els repositoris per a que la instal·lació d'R es faci amb la versió 3.5.x, que porta algunes millores interessants, desenvolupades inicialment a la branca ALTREP d'R.
Per poder instal·lar adequadament paquets d'R des de dins de la consola d'R et caldran paquets extra de sistema. I t'aniran bé algunes eines habituals associades (git, svn, etc). Pots posar les dependències habituals amb:
Cal tenir present que per omissió RStudio demana la contrasenya de Gitlab/Github cada vegada que vols fer un push dels commits locals cap
1.4.2. Ús de credencials git via RStudio
Per omissió RStudio demana la contrasenya de Github cada vegada que vols fer un push dels commits locals cap a un repositori remot (com Gitlab o altres). Per que no ho demani cada vegada, pots dir-li que empri l'anell de claus del sistema per a recuperar les credencials git, amb les següents instruccions:
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:
You can test email sending in the command line with:
echo testing | mail -s test_subject youremail@example.com
xxxxxxxxxx
echo testing | mail -s test_subject youremail@example.com
1.5.1. Main changes noticed for human beans
Good:
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
Confusing:
"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
if (!require(devtools)) install.packages("devtools"); library(devtools)
# Check Availability of package manager "PacMan" (and install it, if missing)
# if you have R < 3.5
if (version$major==3 && version$minor < 5) {
# Instal.la devtools si et cal
if (!require("devtools")) install.packages("devtools"); require("devtools")
if (!require("pacman")) {
cat("R Version: ", paste0(version$major,".",version$minor), ". ")
cat("Tens una versió de R anterior a 3.5, per tant, instal.lem la versió corresponent de PacMan (0.4.1)\n")
# Instal.la la darrera versió de pacman (0.4.1) que anava abans de la que va només amb R 3.5+ (pacman v0.5)
install_version("pacman", version = "0.4.1"); require("pacman")
}
} else {
# if you have R 3.5 or higher
if (!require("pacman")) install.packages("pacman"); require("pacman")
}
p_load("devtools", "plotly", "Nozzle.R1", "VennDiagram", "stringr", "xml2", "parallel", "data.table", "doParallel", "xtable", "plyr", "dplyr", "reshape2", "rjson", "d3heatmap", "htmlwidgets", "googleVis", "doMC", "knitr", "checkpoint", "sem", "rmarkdown", "relimp", "aplpack", "addinslist", "tidyverse", "magick", "webshot", "pacman", "officer", "flextable", "huxtable", "RODBC", "leaflet", "gitlabr", "colorspace", "mapdeck", "rsvg", "png", "cartography", "magick", "rJava", "rio", "sf", "png", "rsvg", "xml2", "sparklyr", "rgdal", "rosm", "tmap")
# library(devtools);if(!require(rCharts)) install_github('rCharts', 'ramnathv') # deprecated approach of doing fancy charts - kept here for historical purposes only
xxxxxxxxxx
18
1
if (!require(devtools)) install.packages("devtools");library(devtools)
2
# Check Availability of package manager "PacMan" (and install it, if missing)
3
# if you have R < 3.5
4
if (version$major==3&&version$minor<5) {
5
# Instal.la devtools si et cal
6
if (!require("devtools")) install.packages("devtools");require("devtools")
# library(devtools);if(!require(rCharts)) install_github('rCharts', 'ramnathv') # deprecated approach of doing fancy charts - kept here for historical purposes only
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.
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
# 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.
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:
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.
1.8. Video Edition
The first program to try can be OpenShot (multiplatform).
But if you need more power/features, you can use KDEnLive (GNU/Linux only, and maybe MacOSX but not Windows).
And if you want to use a newer version than the one that comes with your distribution (either *ubuntu 16.04, 18.04, etc., or even with the Kubuntu-ppa/Backports repo), you can install KDEnLive by means of the Flatpack system, which works nicely in my first tests
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update
sudo apt install flatpak # install flatpack software
sudo apt install gnome-software-plugin-flatpak # Install the Software Flatpak plugin (optional)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # -- Add the Flathub repository
flatpak install flathub org.kde.kdenlive # Install KdenLive through Flatpack - KDENLive version 18.12.0 by the time of this writing December 2018 ! on top of Kubuntu 16.04
flatpak run org.kde.kdenlive # Run KdenLive through Flatpack
flatpak install flathub org.kde.kdenlive # Install KdenLive through Flatpack - KDENLive version 18.12.0 by the time of this writing December 2018 ! on top of Kubuntu 16.04
7
flatpak run org.kde.kdenlive # Run KdenLive through Flatpack
1.9. Dowload your own full YouTube Playlists
You can easily download your own videos of youtube (or even your entire playlsits) through the application youtube-dl or yt-dlp.
1. youtube-dl
You can install youtube-dl from repositories, even if it won't be updated as frequently as needed sometimes, to get sync with youtube way of working. Therefore, you are encouraged to install through the command-line:
Commands in a terminal window
sudo apt update && sudo apt install youtube-dl # install programs from repos if you don't have them yet
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl # get latest version from developers site
sudo chmod a+rx /usr/local/bin/youtube-dl # fix permissions of the downloaded file
sudo youtube-dl -U # update your previous youtube-dl version
xxxxxxxxxx
4
1
sudo apt update && sudo apt install youtube-dl # install programs from repos if you don't have them yet
2
sudowget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl # get latest version from developers site
3
sudochmod a+rx /usr/local/bin/youtube-dl # fix permissions of the downloaded file
4
sudo youtube-dl -U# update your previous youtube-dl version
Replace YOURPLAYLISTID with your own YouTube playlist id (note it's not your youtube channel ID, but the youtube playlist id). You can get it from the url of a video when shown through it's own playlist. That url might look like:
And if you need in mp4 format only (because your tv doesn't accept some webm or mkv codec files, or whatever other reason), you can add these extra params -f 'bestvideoext=mp4+bestaudioext=m4a/mp4' :
1.1. Looking for a GUI for youtube-dl? youtube-dlg
There is a nice GUI called youtube-dlg, however, it doesn't seem to be updated as frequently as needed to keep it updated to latest youtube-dl changes (and therefore, with youtube changes).
You might try the GUI Download-DLG, in case it still works for you (if did for me months ago, but not currently, so I had to go to the command line to be able to fetch my own video playlist successfully)
#sudo add-apt-repository ppa:nilarimogard/webupd8 # needed once for youtube-dlg
sudo apt update && sudo apt install youtube-dlg # install programs from repos if you don't have them yet
# refresh youtube-dl from the commands above so that you have the latest version installed
xxxxxxxxxx
3
1
#sudo add-apt-repository ppa:nilarimogard/webupd8 # needed once for youtube-dlg
2
sudo apt update && sudo apt install youtube-dlg # install programs from repos if you don't have them yet
3
# refresh youtube-dl from the commands above so that you have the latest version installed
If youtube-dl doesn't work for you any more (it did fail for me in 2023-10), you can try installing yt-dlp from discover app, or through pip, and launch the command with this program
$ yt-dlp -U
Current version: stable@2023.12.30 from yt-dlp/yt-dlp
Latest version: stable@2024.04.09 from yt-dlp/yt-dlp
xxxxxxxxxx
$ yt-dlp-U
Current version: stable@2023.12.30 from yt-dlp/yt-dlp
Latest version: stable@2024.04.09 from yt-dlp/yt-dlp
If installed with pip, you will see this message:
ERROR: You installed yt-dlp with pip or using the wheel from PyPi; Use that to update
xxxxxxxxxx
ERROR: You installed yt-dlp with pip or using the wheel from PyPi; Use that to update
To upgrade you need to run a command out of two, it depends on how you installed it.
If you installed it via pip, use:
pip install --upgrade yt-dlp
xxxxxxxxxx
pip install --upgrade yt-dlp
otherwise use:
yt-dlp -U
xxxxxxxxxx
yt-dlp -U
Example:
pip install --upgrade yt-dlp
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: yt-dlp in /home/xavi/.local/lib/python3.10/site-packages (2023.12.30)
Collecting yt-dlp
Downloading yt_dlp-2024.4.9-py3-none-any.whl (3.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 391.7 kB/s eta 0:00:00
Requirement already satisfied: websockets>=12.0 in /home/xavi/.local/lib/python3.10/site-packages (from yt-dlp) (12.0)
Requirement already satisfied: pycryptodomex in /usr/lib/python3/dist-packages (from yt-dlp) (3.11.0)
Requirement already satisfied: brotli in /usr/lib/python3/dist-packages (from yt-dlp) (1.0.9)
Requirement already satisfied: requests<3,>=2.31.0 in /home/xavi/.local/lib/python3.10/site-packages (from yt-dlp) (2.31.0)
Requirement already satisfied: urllib3<3,>=1.26.17 in /home/xavi/.local/lib/python3.10/site-packages (from yt-dlp) (2.2.0)
Requirement already satisfied: mutagen in /home/xavi/.local/lib/python3.10/site-packages (from yt-dlp) (1.47.0)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from yt-dlp) (2020.6.20)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/xavi/.local/lib/python3.10/site-packages (from requests<3,>=2.31.0->yt-dlp) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3,>=2.31.0->yt-dlp) (3.3)
Installing collected packages: yt-dlp
Attempting uninstall: yt-dlp
Found existing installation: yt-dlp 2023.12.30
Uninstalling yt-dlp-2023.12.30:
Successfully uninstalled yt-dlp-2023.12.30
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spotdl 4.2.4 requires yt-dlp<2024.0.0,>=2023.11.16, but you have yt-dlp 2024.4.9 which is incompatible.
Successfully installed yt-dlp-2024.4.9
xxxxxxxxxx
23
1
pip install --upgrade yt-dlp
2
Defaulting to user installation because normal site-packages is not writeable
3
Requirement already satisfied: yt-dlp in /home/xavi/.local/lib/python3.10/site-packages (2023.12.30)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3,>=2.31.0->yt-dlp) (3.3)
16
Installing collected packages: yt-dlp
17
Attempting uninstall: yt-dlp
18
Found existing installation: yt-dlp 2023.12.30
19
Uninstalling yt-dlp-2023.12.30:
20
Successfully uninstalled yt-dlp-2023.12.30
21
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
22
spotdl 4.2.4 requires yt-dlp<2024.0.0,>=2023.11.16, but you have yt-dlp 2024.4.9 which is incompatible.
23
Successfully installed yt-dlp-2024.4.9
You might also install sitewide with root permissions, but it is not recommended. See below:
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Example run as root user:
sudo pip install --upgrade yt-dlp
[sudo] contrasenya per a xavi:
Collecting yt-dlp
Downloading yt_dlp-2024.4.9-py3-none-any.whl (3.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 213.7 kB/s eta 0:00:00
Requirement already satisfied: brotli in /usr/lib/python3/dist-packages (from yt-dlp) (1.0.9)
Collecting mutagen
Downloading mutagen-1.47.0-py3-none-any.whl (194 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.4/194.4 KB 565.0 kB/s eta 0:00:00
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from yt-dlp) (2020.6.20)
Collecting websockets>=12.0
Downloading websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (130 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 130.2/130.2 KB 398.3 kB/s eta 0:00:00
Collecting requests<3,>=2.31.0
Downloading requests-2.31.0-py3-none-any.whl (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.6/62.6 KB 363.6 kB/s eta 0:00:00
Collecting urllib3<3,>=1.26.17
Downloading urllib3-2.2.1-py3-none-any.whl (121 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.1/121.1 KB 599.6 kB/s eta 0:00:00
Requirement already satisfied: pycryptodomex in /usr/lib/python3/dist-packages (from yt-dlp) (3.11.0)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3,>=2.31.0->yt-dlp) (3.3)
Collecting charset-normalizer<4,>=2
Downloading charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 142.1/142.1 KB 553.8 kB/s eta 0:00:00
Installing collected packages: websockets, urllib3, mutagen, charset-normalizer, requests, yt-dlp
Attempting uninstall: urllib3
Found existing installation: urllib3 1.26.5
Not uninstalling urllib3 at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'urllib3'. No files were found to uninstall.
Attempting uninstall: requests
Found existing installation: requests 2.25.1
Not uninstalling requests at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'requests'. No files were found to uninstall.
Successfully installed charset-normalizer-3.3.2 mutagen-1.47.0 requests-2.31.0 urllib3-2.2.1 websockets-12.0 yt-dlp-2024.4.9
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
If you want to atetmpt to make Live USB with persistent changes, you can try making the usb with mksub
(see below: #Create_Linux_Live_USB_disks)
2.1.1. Example for a OMDbuntu Live USB disk
Choose Lubuntu 18.04 64 bit as a base (it doesn't seem to work as expected for Lubuntu 16.04 since it doesn't seem to be able to find internet repos to get packages from).
Desktop environment: Other
Lang: ca
Please choose customization action
1) Run console application
2) Continue building
Your choice (1..2)> 1
Extra system packages:
Extra system packages installed in a terminal window inside UCK
Extra R packages installed in a terminal window inside UCK
if (!require(devtools)) install.packages("devtools"); library(devtools)
# Check Availability of package manager "PacMan" (and install it, if missing)
# if you have R < 3.5
if (version$major==3 && version$minor < 5) {
# Instal.la devtools si et cal
if (!require("devtools")) install.packages("devtools"); require("devtools")
cat("R Version: ", paste0(version$major,".",version$minor), ". ")
cat("Tens una versió de R anterior a 3.5, per tant, instal.lem la versió corresponent de PacMan (0.4.1)\n")
# Instal.la la darrera versió de pacman (0.4.1) que anava abans de la que va només amb R 3.5+ (pacman v0.5)
if (!require("pacman")) install_version("pacman", version = "0.4.1"); require("pacman")
} else {
# if you have R 3.5 or higher
if (!require("pacman")) install.packages("pacman"); require("pacman")
}
p_load("devtools", "plotly", "Nozzle.R1", "VennDiagram", "stringr", "xml2", "parallel", "data.table", "doParallel", "xtable", "plyr", "dplyr", "reshape2", "rjson", "d3heatmap", "htmlwidgets", "googleVis", "doMC", "knitr", "checkpoint", "sem", "rmarkdown", "relimp", "aplpack", "addinslist", "tidyverse", "magick", "webshot", "pacman", "officer", "flextable", "huxtable", "RODBC", "leaflet", "gitlabr", "colorspace", "mapdeck", "rsvg", "png", "cartography", "magick", "rJava", "rio")
xxxxxxxxxx
15
1
if (!require(devtools)) install.packages("devtools"); library(devtools)
2
# Check Availability of package manager "PacMan" (and install it, if missing)
3
# if you have R < 3.5
4
if (version$major==3 && version$minor < 5) {
5
# Instal.la devtools si et cal
6
if (!require("devtools")) install.packages("devtools"); require("devtools")
Before exiting the "-+Run console application+-", you need to update (or replace) the customization script in order to make it work with latest Ubuntu versions (16.04+; derived from here)
Create a file called customize_iso2 in your home directory for instance:
nano /home/xavi/customize_iso2
xxxxxxxxxx
nano /home/xavi/customize_iso2
Add these contents inside:
Contents of customize_iso2
#!/bin/bash
###################################################################################
# UCK - Ubuntu Customization Kit #
# Copyright (C) 2006-2010 UCK Team #
# #
# UCK is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# UCK is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with UCK. If not, see <http://www.gnu.org/licenses/>. #
###################################################################################
# NAME:
# customize_iso -- customize iso image outside of root FS
#
# SYNOPSIS:
# customize_iso [remaster_home] [customization_scripts_dir]
#
# DESCRIPTION:
# This procedure performs additional customization that needs to
# happen outside of the image of the root file system:
# - Configuration of the boot environment
# - isolinux configuration
# - gfxboot configuration (language/keyboard support!)
# - propagation of a new kernel/initrd
# - Simple bootmanager (directory "install" in image)
# - Configuration of additional resources outside the root FS
# - Add-Ons (like sample document/music/video files)
# - More Add-Ons (like OSS for Win / Mac)
#
# NOTES:
# Execution of the procedure may require Internet access to download
# the source of the latest version gfxboot-theme-ubuntu.
#
# If a local copy of gfxboot-theme-ubuntu is available in the remaster
# home, it will be used instead of a (possibly updated) download.
SCRIPT_DIR=`dirname "$0"`
REMASTER_HOME=${1:-~/tmp}
SCRIPT_DIR=${2-$REMASTER_HOME/customization-scripts}
ISO_REMASTER_DIR="$REMASTER_HOME/remaster-iso"
REMASTER_DIR="$REMASTER_HOME/remaster-root"
BOOT_LANG=`cat "$SCRIPT_DIR/livecd_locale"`
function failure()
{
echo "$@"
exit 1
}
function get_latest_kernel()
{
set -- $(ls "$REMASTER_DIR"/boot/vmlinuz* 2>/dev/null |
sed -e "s@$REMASTER_DIR/boot/@@" |
tr -- '-.' '\t' |
sort --key=2 --key=3 --key=4 --key=5 --numeric-sort |
tail -n1 )
[ "$1" = "vmlinuz" ] && echo "$REMASTER_DIR/boot/$1-$2.$3.$4-$5-$6"
}
# Create a temporary directory to assemble the gfxboot stuff in
BUILD_DIR=`mktemp -d`
if [ -d $REMASTER_HOME/gfxboot-theme-ubuntu ]
then
cp -r $REMASTER_HOME/gfxboot-theme-ubuntu "$BUILD_DIR" ||
failure "Cannot copy gfxboot-theme-ubuntu to $BUILD_DIR"
pushd "$BUILD_DIR" >/dev/null ||
failure "Cannot change directory to $BUILD_DIR"
else
pushd "$BUILD_DIR" >/dev/null ||
failure "Cannot change directory to $BUILD_DIR"
#-----HS (1)-->
#DISTRO_CODENAME=`cd "$ISO_REMASTER_DIR"/dists && find . -maxdepth 1 -type d | grep '/' | cut -d '/' -f2` ||
# failure "Unable to identify Ubuntu distro codename"
DISTRO_CODENAME="$(lsb_release -c|awk '{print $2}')"||
failure "Unable to identify Ubuntu distro codename"
#-----HS (1)--<
APT_SOURCES_TMP_DIR=`mktemp -d`
wget -c http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/dists/$DISTRO_CODENAME/main/source/Sources.gz -O "$APT_SOURCES_TMP_DIR"/Sources.gz
#-----HS (2)-->
#GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE=http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/pool/main/g/gfxboot-theme-ubuntu/$(zgrep gz "$APT_SOURCES_TMP_DIR"/Sources.gz | grep gfxboot-theme-ubuntu | sed -n 1p | awk '{ print $3 }')
GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE=http://archive.ubuntu.com/ubuntu/ubuntu/ubuntu/pool/main/g/gfxboot-theme-ubuntu/$(dpkg -l|grep gfxboot-theme-ubuntu|awk '{print $2"_"$3"_"$4".deb"}')
#-----HS (2)--<
wget $GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE ||
failure "Unable to download gfxboot-theme-ubuntu source package from $GFXBOOT_THEME_UBUNTU_SOURCE_PACKAGE"
#-----HS (3)-->
#tar xfz *.tar.gz ||
tar xfz *.tar.gz
dpkg -x *.deb . ||
failure "Unable to extract gfxboot-theme-ubuntu source package"
#-----HS (3)--<
fi
# Build the gfx boot theme
#-----HS (4)-->
cd usr/share
#-----HS (4)--<
cd gfxboot-theme-ubuntu
cd po
ln -s pt.po pt_PT.po
cd ..
##if [ "$BOOT_LANG" = "pt_PT" ]; then
## make DEFAULT_LANG="pt" || failure "Failed to build gfxboot theme"
##else
make DEFAULT_LANG="$BOOT_LANG" || failure "Failed to build gfxboot theme"
##fi
# Fix list of languages
pushd boot >/dev/null
# Create regexp that matches all language packs on CD
langpack=""
for langpack in `cat "$SCRIPT_DIR/language_packs"`; do
if [ -z "$LANGPACKS" ]; then
LANGPACKS="$langpack"
else
LANGPACKS="$LANGPACKS|$langpack"
fi
done
# Rewrite langlist
cat "$SCRIPT_DIR/livecd_locales" >langlist
popd >/dev/null
# Copy to isolinux in image directory
cp -af boot/* "$ISO_REMASTER_DIR/isolinux/" ||
failure "Error while copying boot files to $ISO_REMASTER_DIR/isolinux"
popd >/dev/null
# Cleanup
[ "$BUILD_DIR" != "/" ] && rm -rf "$BUILD_DIR"
# Copy kernel and initrd, in case it was changed during installation
VMLINUZ=$(get_latest_kernel)
if [ "$VMLINUZ" != "" ]
then
INITRD="$REMASTER_DIR"/boot/initrd.img-$(echo `basename $VMLINUZ` | cut -d'-' -f 2-)
if [ -e "$VMLINUZ" -a -e "$INITRD" ]
then
echo "Updating kernel:"
echo " kernel=$VMLINUZ"
echo " initrd=$INITRD"
cp -f "$VMLINUZ" "$ISO_REMASTER_DIR/casper/vmlinuz"
cp -f "$INITRD" "$ISO_REMASTER_DIR/casper/initrd.gz"
else
echo "Not updating kernel as initrd not present"
fi
fi
# Misc fixup for Karmic
pushd "$ISO_REMASTER_DIR"/isolinux >/dev/null
# What used to be called "message" is now called "bootlogo"
if [ -f isolinux.cfg -a -n "`grep "gfxboot bootlogo" isolinux.cfg 2>/dev/null`" ]
then
if [ -f message ]
then
echo "Using bootlogo instead of message"
mv message bootlogo
fi
fi
# What used to be a gzipped initrd now is a lzma compressed initrd
if [ -f text.cfg ] || [ -f txt.cfg ]
then
# At least one of the .cfg file will be missing. Drop error message.
lzused=`grep initrd.lz text.cfg txt.cfg 2>/dev/null`
lzmacmd=`which lzma`
if [ -n "$lzused" ]
then
if [ -n "$lzmacmd" ]
then
if [ -f ../casper/initrd.gz ]
then
pushd "$ISO_REMASTER_DIR"/casper >/dev/null
echo "Recompressing initrd from gzip to lzma"
rm -f initrd.lz
gunzip <initrd.gz | $lzmacmd >initrd.lz
rm -f initrd.gz
popd >/dev/null
fi
else
if [ -f ../casper/initrd.gz ]
then
echo "lzma command not installed"
echo "Switching permanently to gzipped initrd"
sed -i -e 's/initrd\.lz/initrd.gz/g' text.cfg txt.cfg
rm -f ../casper/initrd.lz
else
: do nothing - no initrd.gz
fi
fi
else
: do nothing - initrd.lz not used
fi
fi
Please choose customization action
1) Run console application
2) Continue building
Your choice (1..2) 2
2.2. Create Linux Live USB disks
2.2.1. With mkusb
You can add an extra repository to include mkusb dus (Do USB Stuff), which will allow you to create boot usb disks with persistence of changes in a reliable way for recent Ubuntu distros such as 16.04 LTS and newer. In such distros the default traditional methods such as USB Disk Creator or UnetBootIn no longer work in all cases as they did with earlier Ubuntu versions.
clone back over another usb with dd again (or theoretically with a dd GUI, but gdiskdump fails for me on Kubuntu 16.04)
To restore the image to another USB drive just invert the process. Just make sure that the new USB drive (/dev/sdd in this example) is as big or bigger than the original one
Edita l'arxiu /opt/xmind/XMind_amd64/XMind.ini per eliminar aquesta línia:
--add-modules=java.se.ee
xxxxxxxxxx
--add-modules=java.se.ee
I ja hauria d'estar. Pots obrir XMind amb Alt + Barra Espaiadora i escriure XMind.
A mi m'ha funcionat amb Java 1.8.
2.4. WPS-Office
WPS Office is an office productivity suite, including Writer, Presentation and Spreadsheets. WPS Office is a native snap package in Ubuntu. To install it in all currently supported versions of Ubuntu open the terminal and type:
# Option 1
sudo snap install wps-office-all-lang-no-internet # all interface anguages & check spell tools and without internet connection to their servers
## Option 2
#sudo snap install wps-office-multilang # all interface languages and with internet connection to their servers
## Option 3
#sudo snap install wps-office # only english interface and with internet connection to their servers
xxxxxxxxxx
# Option 1
sudo snap install wps-office-all-lang-no-internet # all interface anguages & check spell tools and without internet connection to their servers
## Option 2
#sudo snap install wps-office-multilang # all interface languages and with internet connection to their servers
## Option 3
#sudo snap install wps-office # only english interface and with internet connection to their servers
The wps-office snap package will be updated automatically when updates are available
This is a multilanguage snap package for wps-office. It contains all interface languages available for the Windows version. This package is based on the wps-office-all-lang-no-internet package and the official wps-office package. The official wps-office can be found at https://snapcraft.io/wps-office. The package wps-office-all-lang-no-internet can be found at https://snapcraft.io/wps-office-all-lang-no-internet or https://github.com/cyrpaut/wps-office-all-lang-no-internet. Because of security and privacy this package is shipped without internet plug. So there is no risk of a backdoor.
A new world of messaging and collaboration
No datamining - Own your conversations, choose where they live
No walled gardens - Talk to anyone, whatever app they are using
No eavesdropping - Be sure you’re talking to the right people, in private
Typical messaging apps own your conversations, mine your data and lock you into a walled garden.
Element is not a typical messaging app.
Element is unique. You own your data and decide where it lives. Element lets you talk securely to anyone, regardless of their app.
Personal use - 20M+ users worldwide
Communities - Communities from fan clubs to Firefox
Business - 2M+ business users
Public sector - Trusted by French, US and German governments
https://element.io/get-started
Confirmed that problem still exists on a clean install from Ubuntu 13.04 up to 16.04 on a HP Pavillion dv6 i7. I installed the required program to fix the issue with:
sudo apt-get install ethtool
and we can check the "Wake on lan" current status with:
user@machine:~$ sudo ethtool eth0 | grep Wake-on
[sudo] password for user:
Supports Wake-on: pumbg
Wake-on: g
If under the option ‘Wake-on:’ it says anything other than ‘d’ then it means this feature is enabled.
If it’s enabled then on most occasions it’ll say ‘g’ and you can use the below command to disable it.
sudo ethtool -s eth0 wol d
You may not have device eth0 but eno1 or similar (check using command ifconfig in the command line)
Then enter the previous command to who the status of ‘Wake-on:’ it should say ‘d’.
But the thing is, this setting will be lost as soon as you reboot your computer. So to make Ubuntu permanently save the changes, use the below steps.
gksudo gedit /etc/rc.local
Now simply copy and past the below code into that newly opened configuration file (make sure to paste it above the ‘exit 0’ code).
ethtool -s eth0 wol d
Replace eth0 for your own device name if it's different than this (in my case, it's eno1).
Since Ubuntu 12.04, you may to do something else. Let’s first copy the original script to the ‘/etc/pm …’ folder, as if we were to edit the file while keeping it on its original location, then it might get overwritten when your OS receives update. So for that, open the terminal window and enter the below command.
Once opened locate a code called ‘wol g’ (you can search for it in the editor) as shown below then simply change the letter ‘g’ to ‘d’.
Then click on the ‘Save’ button’ and close the editor. Now reboot your PC and when you’ve logged into the desktop use the command sudo ethtool eth0 | grep Wake-on to know if it’s working or not. If it’s working, then under ‘Wake-on’, now it should say ‘d’ (= disabled).
3.2. Ensure Syncthing uses latest daemon binary
Open syncthing-gtk UI, and update the syncthing daemon location to /usr/bin/syncthing if it doesn't get it from there by default, which will be v0.14.16 at the time of this writing .
Click to expand
Then restart the daemon to get the new and updated binary from the right path, in case you had a previous version of the daemon elsewhere (by default syncthing-gtk downloads a not-so-up-to-date version for you from elsewhere in this path: /home/username/.local/bin/syncthing.x64)
Otherwise, syncthing-gtk would download an earlier version of the daemon (for instance, v0.14.9 as of the time of this writing which is not compatible with the v0.14.14 of the daemon in the sync.evoludata.com or Windows boxes at this time)
With the new systemd configuration, the Unity menu's "hibernate" option does not call on pm-hibernate. It instead uses the hibernate and sleep service of logind / systemd. I'm using a tuxonice kernel, and the tlp power management setup on a thinkpad w520, running Ubuntu 16.04 (devel). I think this article is still relevant even if you don't have tlp or tuxonice, since it's systemd that changes how suspend and hibernate work.
When this laptop suspends or hibernates, sometimes the wifi stops working when it wakes back up. The solution is to unload the wifi device driver module prior to sleep, and then reload it upon resume, the way the "hibernate" script does, and "pm-hibernate" also did.
However, this didn't work for me. Hibernation or suspending fails in that computer with dual graphics card (ati + intel)
3.4. Re-enable hibernation from menus
First check if hibernation is compatible with your computer
You should save all of your work before hibernating the computer, just in case something goes wrong and your open applications and documents cannot be recovered when you switch on the computer again.
Run this in a console
sudo pm-hibernate
Enter your password when prompted.
After you computer turns off, switch it back on. Did your open applications re-open?
If hibernate doesn't work, check if your swap partition is at least as large as your available RAM.
If the hibernate test works, you can continue to use the sudo pm-hibernate command when you want to hibernate.
You can also enable the hibernate option in the menus. To do that, use your favorite text editor to create
Search for the sections related to "hibernate", and set ResultActive=no to ResultActive=yes
[Disable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Disable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
By default you can get Adobe Acrobat 8.x in the repositories, as far as I see. But you can download 9.x version in English from Adobe website: http://get.adobe.com/reader/otherversions/
You can Sign PDF documents with PortableSigner, a small Java app that does the job effectively: add the digital signature that can be recognized with Adobe Reader, and it can also place an extra page with a block of text (and you graphical signature as png/jpg in addition if desired) indicating that the document has been digitally signed by a method recognized by Adobe, and you can check the digital signature by means of opening in Adobe Reader the source pdf from that printed document.
Sinadura és una aplicació de codi obert feta en Java per a GNU/Linux 64 bits i 32 bits, i Windows, per a la signatura d'arxius amb les signatures oficials que hi ha a Espanya, amb DNI-e i amb certificats digitals com els de la Fábrica Nacional de Moneda y Timbre (FNMT) que són els que empren per omissió a la Seguretat Social i a la Agència Tributària espanyola.
Val a dir que des de LibreOffice també es pot signar documents amb arxius de signatura digital com els de la FNMT).
3.9. Pair Bluetooth devices
Most devices work by default with standard procedures since the upgrade to Ubuntu 16.04 (they didn't in Ubuntu 14.04).
But Apple Bluetooth Keyboard seems to fail (since Ubuntu Jaunty in 2009, according to some posts elsewhere). I dream to find some valid workaround...
xavi@penguinbookpro:~$ hcitool scan
Scanning ...
00:C0:DF:01:62:22 Targus Bluetooth Laser Mouse for Mac (AMB08)
00:22:41:DD:36:4B n/a
My solution was to buy a new bluetooth keyboard with backlight in the keys, for ~ 30€ in Amazon.
It works as is with default procedures. And the battery icon in the top bar of the desktop also displays the battery status of the bluetooth devices (nice!): mouse, keyboard, ... aside of the klaptop battery.
3.10. Tweaks to run Tiki Wiki CMS
Allow runing mod rewrite in Apache
3.10.1. Fix apache2.4 default settings to run Tiki
Edit /etc/apache2/sites-enabled/000-default
and change docroot from /var/www to /var/ww/tiki or your custom path, AllowOVerride from None to All, and ensure that the syntax to allow access to override .htaccess file is set with the syntax for Apache 2.4 ("Require all granted") and not with the former one for Apache2.2 ("Order allow,deny" and "Allow from all")
The file should be left as like:
root@coprinus:~# cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
#Order allow,deny
#Allow from all
Require all granted
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
enable also the mod rewrite in Apache
commands in a console
sudo a2enmod rewrite
sudo service apache2 restart
If you want to enable ssl, you need to run:
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 restart
Synchronizing state of elasticsearch.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
Elasticsearch can be started and stopped as follows:
These commands provide no feedback as to whether Elasticsearch was started successfully or not. Instead, this information will be written in the log files located in /var/log/elasticsearch/.
By default the Elasticsearch service doesn’t log information in the systemd journal. To enable journalctl logging, the --quiet option must be removed from the ExecStart command line in the elasticsearch.service file.
When systemd logging is enabled, the logging information are available using the journalctl commands:
To tail the journal:
sudo journalctl -f
To list journal entries for the elasticsearch service:
sudo journalctl --unit elasticsearch
To list journal entries for the elasticsearch service starting from a given time:
Synchronizing state of kibana.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable kibana
These commands provide no feedback as to whether Kibana was started successfully or not. Instead, this information will be written in the log files located in /var/log/kibana/.
3.11. Connect remotely using X2Go server
Coprinus usually gets local IP: 192.168.1.133 from eth0 (and 192.168.1.131 or anoher one from wlan when used instead)
Since Freenx doesn't seem to be easily installable in Ubuntu 14.04 servers (at least up to the time of this writing ). Therefore, we can use an open-source equivalent alternative, called x2go (x2goserver and x2goclient), which is maintained for GNU/Linux based servers, and with supported clients for GNU/Linux, Mac and Windows.
Quick howto to turn your machine into an X2Go server:
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession
sudo apt-get install x2gomatebindings # if you use MATE/mubuntu
sudo apt-get install x2golxdebindings # if you use LXDE/lubuntu
You also need to install some desktop environment which is supported by X2Go by default, and in our case, we will install one of the lightest desktops possible: LXDE (see http://wiki.x2go.org/doku.php/doc:de-compat for the full list)
sudo apt-get install -y lxde
Notes:
Remember to install x2goclient in the client computer in order to connect to the server accordingly.
To write an ISO image file on multiple USB drives simultaneously, you will need the software that is named “MultiWriter”. Ubuntu users will find it in their default repositories with the package name “gnome-multi-writer”.
sudo apt install gnome-multi-writer
3.12.2. Writing multiple images on one USB
(a.k.a. "Multi-boot USB disk")
If you want to write multiple ISO images on one USB in order to have the capacity to boot into a selection of systems by using the same pen drive, you can do it with a tool called “MultiSystem”, or with another one called multiboot.
Using multisystem
Add the corresponding repository by entering the following commands on the terminal:
Open the application and select the device from the list below. Note that the device must be mounted at “/media” and its filesystem must be “FAT32” in order for multisystem to detect it properly.
Watch out that it reports that it will write grub boot loader in the Master Boot Record (of the usb? or the main hard disk of your computer??? )
MultiSystem started
On the first tab of the application’s menu, you may add your image files one by one. Just hit the green arrow button and a file manager window will let you navigate your local files.
Add image file in MultySystem
Next, you may select the “Menus” tab which is basically a Grub configurator. It will allow you to set up the grub.cfg configuration file set the colors and background image of the bootloader and compile the menu list.
Grub Configurator
Other options include the use of non-free components like the PLoP boot manager and the FiraDisk. Moreover, in the “Boot” tab, you may select system-specific boot options, or just test-drive your creation in the QEMU system virtualization tool, or in VirtualBox. This of course, presupposes the existence of either in your system.
Other Bootmanagers
If MultiSystem isn’t working for you, you may also try alternatives like the multibootusb or the YUMI that basically do the same thing. In general, I have found that all of these tools are a little bit underdeveloped and often riddled with bugs, so you should have patience and not give up easily. Having a multisystem USB stick is worth your time and effort.
The recommended filesystem is FAT32, so make sure to format your USB drive before creating a multi-boot USB stick.
You can select the persistence size by dragging the slider under MultiBootUSB tab. Persistence gives you an option to save changes to the USB drive in runtime. (in theory; will it work since Ubuntu 16.04 doesn't seem to use it by default?)
Next time I boot through the USB, I get the option of choosing either of the distributions.
You can use seceral programs, each one with its pros and cons. A good advice is to use several to combine info to answer your own questions effectively without confusion (if you use wifi repeaters, or different hardware devices, bytes or bits in units, etc)
Console-based programs:
wavemon: ncurses based, updated in realtime, showing mac address of the wifi device for instance to which it's connected (useful to distinguish wifi repeater device from wifi source signal device).
speedtest-cli: simple yet useful information of upload and download speed (doing tests). You can show bytes or bits as units, and display simple output.
speedometer: nice log with bar chart evolution in terminal, but it shows current use, not doing a tgest on its own. You need to run some big upload or download of data to see it reflected in the graph.
vnstat: logs network trafic data and has several useful ways to report usages, etc. See: https://humdi.net/vnstat/
In theory ktorrent (default torrent app in KDE) is able to search torrents, when you enable a special plugin through the "Ktorrent > View > Plugins > Search" option, but it freezes ktorrent in kubuntu 18.04 for me.