Recently, I was pointed to exa by this tweet from Mathias.
The installation is pretty easy. Unless you are using Ubuntu (as WSL) as there is no package available. But then again, compiling it by yourself is pretty straightforward as well.
1. Download and install Rust for your platform.
2. Install libgit2 and cmake.
3. To download the latest version, run: git clone https://github.com/ogham/exa.git
4. Run make install in the new directory to compile and install exa into /usr/local/bin.
As you might know, I am using Ansible to install all of my WSL instances. Eventually, things did turn out not so easy. However, two evenings later, I finished an Ansible role doing this fully automated.
Eventually, you have to set the variables for exa_dir and rust_dir to make this role working. That way, you not only get a great tool, but you also get it fully automated into your Ubuntu WSL.
In case you did not know: You can use WSL (Windows Subsystem for Linux) as your shell in Visual Studio Code. This comes in very handy if you did mod the hell out of your WSL, as I did.
The Visual Studio Code Remote – WSL extension lets you use the Windows Subsystem for Linux (WSL) as your full-time development environment right from VS Code. You can develop in a Linux-based environment, use Linux-specific toolchains and utilities, and run and debug your Linux-based applications all from the comfort of Windows.
After we talked a lot about it in our podcast, I finally started with my “Automation of the Home Automation” project.
What I’ve done so far: Set up a Raspi 4 with Ubuntu Server, fully provisioned using Ansible. Also, it seems, the Kernel bug causing USB devices to fail on the 4 GB version of the Raspi 4 seams to be removed with the most recent binaries available.
Deployed MQTT, InfluxDB, Telegraf and Node-Red on Docker containers using Ansible.
Wrote my very first Node-Red flow to get data into the broker and the database:
The data is read from my EZcontrol XS1, which became surprisingly easy using Node-Red.
The EZcontrol XS1 integration for Home Assistant allows you to observe and control devices configured on the XS1 Gateway. Please have a look at the official docs for using this gateway.
While I was not sure about the available resources on the Raspberry, it seems there is plenty of space (RAM, CPU) left on the device.
On the other side, using Ansible I will be able to deploy services to other (more) nodes once necessary.
Also, I realized some issues with Ansible on Ubuntu running on the Raspi and Python. Therefore, I made sure Python 2.7 is entirely uninstalled. Instead, I made sure my inventory file is set to use Python 3 on the target system.
There have been some other issues, I came along, especially because for various bits OI was looking for there are no ARM aarch64 releases available. Also, the official Docker images I used do not support Apline on ARM v8 / aarch64 as Alpine seems not to support this target architecture, yet.
Just in case you like modding your environment as I do, you might end up as well in a situation where you SSH into a remote server or using WSL requiring Powerline Fonts. And just in case, if you are wondering what Powerline is? Here you go:
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile.
The problem arises if your host system is Windows and you are using SSH and WSL a lot as I do.