How to Install Wine 5.0 Stable in Ubuntu 18.04, 19.10 & Run Microsoft office

In my case I’m installing it on Linux Mint 19.1

Wine will be installed in /opt/wine-stable/ directory. After the installation is complete, we need to add /opt/wine-stable/bin/ to the user PATH. Run the following command to open the .profile file. Nano is a command line text editor. The ~ (tilde) represents your home directory.

  • nano ~/.profile

Add the following line at the end of the file.

  • export PATH=”$PATH:/opt/wine-stable/bin”

Install Wine on Linux

  • If your system is 64 bit, enable 32 bit architecture with the following command.
    sudo dpkg –add-architecture i386

Next, run the following command to download and import the public key for the Wine repository.

Then, issue the following command to add Wine and libfaudio0 repository.

Update package repository cache and install Wine stable version.

  • sudo apt update
  • sudo apt install –install-recommends winehq-stable

Things to Do After Installing Wine

Before you download any Windows .exe file and use Wine to install Windows program, you need to run the Wine configuration program by issuing the following command in the terminal.

  • winecfg

It will create a .wine directory, also known as wine prefix or wine bottle, under you home directory. The virtual C drive will be created in this directory. Also this command will help you install Wine mono and Wine gecko package.


  • I was able to install Microsoft office 2010 32 bit and its running very smoothly.
  • link for MSword2010 download:

PXE Booting on pfSense.

How to boot a bare metal server on LAN! Nowadays is pretty uncommon to setup a workstation/laptop, and installing a Linux distro using a CD is even less frequent. Today we had to setup a workstation that we use to run some tests – we need a a bare metal server for these tests – and none of us had an USB stick, neither a DVD Writer 🙂

Configure the Workstation

This step is easy: simply configure the workstation to boot from LAN!

Setup pfSense

  • pfSense is an open source firewall/router computer software distribution based on FreeBSD. It’s functionalities can be extended thanks to its plugin system
    To use our pfSense box as a boot server, we need to
    • install a tftp server;
    • deploy a netboot image and ramdisk;
    • configure the DHCP server;
    No worries, it is easier that it seems!

Install a tftp server

  • Open the pfSense admin dashboard and navigate to System -> Package Manager
    In the Available:
    packages menu, search tftp.
    Next, refresh the page and enable the TFTP server: Select Service -> TFTP
    Server and check the Enable
    TFTP Service checkbox.

Upload a NetBoot image

We choose to install Ubuntu 18.04. Find the URL where to download the netboot iso. In our case, the URL is and the image name is netboot.tar.gz

The image must be uploaded in pfSense.

Download the tar archive and uncompress it locally, now you have to copy the contents o the tar archive in the root of yout tftp server. A simple way is to SSH in the pfSense box and to download and extract the tar archive directly in the /tftpboot directory.


Configure the DHCP

Set in the DHCP options the TFTP server and the image to use to boot theservers. Select Services -> DHCP
Server and scroll at the bottom of the page.

Set the following configurations:

  • • TFTP Server AND Next server: the ip address of the pfSense box;
    • Default BIOS file name: the image youwant to use, pxelinux.0 in our case;
    • Enable the Enable
    network booting checkbox;


That’s it! Now boot your workstation, and install the operating system!


Install Google Fonts on Ubuntu/LinuxMint

Install Fonts

Download desired fonts

Install Google Fonts on Ubuntu

cd /usr/share/fonts
sudo mkdir googlefonts
cd googlefonts
sudo unzip -d . ~/Downloads/
sudo chmod -R --reference=/usr/share/fonts/opentype /usr/share/fonts/googlefonts

Register fonts

sudo fc-cache -fv

Check if font installed

fc-match OpenSans


You can also install some of these fonts (My Favorite Roboto) as packages on newer ubuntu 18.04 +

sudo apt install fonts-lato fonts-open-sans fonts-roboto fonts-mononoki

Download a single directory from a GitHub repo using Subversion

Download a single folder or directory from a GitHub repo using a subversion command: like “$svn checkout”


#Modify the URL for subversion. Replace tree/master with trunk.

$ svn checkout



$ scp -p USER@192.x.x.x:access_media/

#Copy files inside directory recursively
$ scp -p -r DIR/ USER@192.x.x.x:access_media/

#compressing & copying a lot files across the network

put it all together,
$ scp -Cpr DIR/ USER@192.x.x.x:access_media/


Wormhole is a Fast, Secure Way to Send Files to Other Users Through the CLI
$ sudo snap install wormhole

$ wormhole send FILENAME.ZIP

$ wormhole receive codeXYZ


$ tar -cf - Dir-name/ | xz -9 -c - > Dir-name.tar.xz
#use compression 1 to 9
# "-9e" is even better max compression

#to watch progress bar of the current compression job, open new terminal & run:
$ watch -n30 -x pkill -USR1 -n -x xz
#or "-n1" for every second.

$ zip -r Dir-name/

#You Can Encrypt Data.Zip With A Password By Passing The -E Option:
$ zip -r -e Dir-name/

OpenVPN docker ARM/PI configured to use TCP/UDP


docker volume create --name $OVPN_DATA

docker run -v $OVPN_DATA:/etc/openvpn --rm giggio/openvpn-arm ovpn_genconfig -u udp://

docker run -v $OVPN_DATA:/etc/openvpn --rm -it giggio/openvpn-arm ovpn_initpki nopass

docker run -v $OVPN_DATA:/etc/openvpn -d --name openvpn -p 1194:1194/udp --cap-add=NET_ADMIN giggio/openvpn-arm

docker run -v $OVPN_DATA:/etc/openvpn --rm -it giggio/openvpn-arm easyrsa build-client-full PIRATE nopass

docker run -v $OVPN_DATA:/etc/openvpn --rm giggio/openvpn-arm ovpn_getclient PIRATE > PIRATE.ovpn


TCP vs. UDP – Pros & Cons
By default, OpenVPN is configured to use the UDP protocol. Because UDP incurs minimal protocol overhead (for example, no acknowledgment is required upon successful packet receipt), it can sometimes result in slightly faster throughput. However, in situations where VPN service is needed over an unreliable connection, the user experience can benefit from the extra diagnostic features of the TCP protocol.

As an example, users connecting from an airplane wifi network may experience high packet drop rates, where the error detection and sliding window control of TCP can more readily adjust to the inconsistent connection.

Another example would be trying to open a VPN connection from within a very restrictive network. In some cases port 1194, or even UDP traffic on any port, may be restricted by network policy. Because TCP traffic on port 443 is used for normal TLS (https) web browsing, it is very unlikely to be blocked.

Instead of choosing between UDP and TCP, you can use both. A single instance of OpenVPN can only listen for a single protocol on a single port, but this image makes it easy to run two instances simultaneously. After building, configuring, and starting a standard container listening for UDP traffic on 1194, you can start a second container listening for tcp traffic on port 443:

docker run -v $OVPN_DATA:/etc/openvpn -d -p 443:1194/tcp --privileged giggio/openvpn-arm ovpn_run --proto tcp

References for this post