5 min read

Running Fedora Linux at work

Using Fedora Linux for everything developing to conference calls. My experience and thoughts on the subject.
Racks of Fedoras

Linux at work

Depending on what you do, using Linux at work can be quite challenging. As you get farther away from development work the harder it gets to use Linux at work. I will be documenting my experience here as a developer and director of the technology department at my current company.

I'd like to address the question of using Mac as the Unix based alternative to Windows for development. The included GNU tools are often outdated. The bash shell that is still used on Macs today is extremely outdated at 3.x. The bash version, at the time of writing is 5.x. This article from 2012 shows systematic removal of open-source packages.

The second reason for not using Mac as the alternative development environment is the subtle differences in Mac versions of some utilities. These differences can often cause issues in shell scripts written using MacOS when they are used in CI/CD pipelines. These pipelines most commonly use Linux as the base system where these differences in tool-sets can cause hours of frustration.

Shameless plug

If you like content on this blog you can support us by using the DO referral link to sign up and get free credit. And you'll support us as well.

Referral link: https://m.do.co/c/590c0c82c1fc

Also you can subscribe directly signing up for free, or support us with a small monthly or yearly fee. Simply click the button at the bottom right corner.

Use cases

Development

When it comes to development, Fedora is a great Linux distribution. Everything from having sane defaults for servers like Apache or Nginx, to toolbox, make development very flexible. Fedora also packages and provides latest, and LTS versions of tools like NodeJS, Java, PHP, Python, Go, and Rust. Having updated packages means there is no need to add external sources to get the latest versions, which is required for some other distributions.

Most popular IDEs and editors available for Linux in general. Fedora encourages the use of Flatpaks. This is a new, universal, packaging format for Linux. Flatpaks are meant to be cross distribution, secure, and self contained packages of software. Any application that can be found on Flathub, can be installed on Fedora.

At the time of writing, there is a limitation with Flatpaks. Most of the applications are GUI applications. There aren't many CLI tools making use of Flatpak. Fedora provides Toolbox as a way to containerize, and modularize the CLI tools. Toolbox creates a container that is natively integrated with the system terminal. Toolbox isolates all system folders so any installation of CLI tools is self contained. This allows to have a multiple development toolboxes, with different versions, or different types of tools in multiple containers all within the same operating system.

DevOps

As with development, devops is well supported on any Linux distribution. Fedora maintainers package a lot of the popular tools, including the standard GNU tool set and the usual web servers like Apache, Nginx, or Tomcat, that are needed for modern devops work. Tools like, Docker (moby-engine in Fedora), Podman, Docker compose, Ansible, Kubeclt, and awscli, are available in the software repositories. They are simple dnf command away

sudo dnf install moby-engine podman docker-compose andsible kubernetes-client awscli

However, there are some modern tools that are missing. Tools like kops and helm for creating, managing, and working with a Kubernetes cluster. The command line utility for Cloud Foundry is not available either. As well as other cloud providers like Google cloud, or Digital Ocean. There are community maintained Copr packages that are available; but I find that these often don't keep up at the same pace as Fedora's releases and could contain outdated versions of the tools. Copr is a great resource for projects that the maintainer controls. It's when the maintainers have to keep up with the releases of other fast moving projects is when the versions become outdated.

Overall, Fedora is a great distribution for devops professionals out there. There plenty of tools available in the repositories and those that aren't, would be available on Copr or even just side loaded. My preferred method is to side load. Simply download the CLI tool, make sure it's executable, and place the tool in ~/.local/bin and it automatically becomes available in the terminal. I prefer this because it doesn't block or break any future updates.

Documentation

Any browser based application works very well within Fedora. So when using Confluence, or Google Docs, there are no hiccups at all. Fedora ships with Firefox by default, which is a great privacy respecting browser overall. However, there are times when an will occasionally not support Firefox for whatever reason. For these situations, Fedora also makes downloading Chrome easy, or even the open-source variant, Chromium. It's just a software search away.

image
Software centre's search for Chrome

Online meetings

A normal part of the work day now are conference calls. Here Linux support is a mixed bag. The major difference that support and functionality comes down to is if you're using Wayland or XOrg as your display server. Without getting too deep into it, because Wayland and XOrg should really have write ups of their own (and there are plenty out there), XOrg is the legacy display server, and Wayland is replacing it.

Basic support for all the major conferencing solutions that have desktop clients is fine. If you're using Zoom, Teams, Skype, or Slack you will be able to join calls, display video (although there was an issue with Teams for a while), and generally participate in the meeting.

The issues occur when you want to use the advanced features that these applications ship with. Especially those that have to do with manipulating your screen. Sharing your screen for example can be an issue if you're on Wayland. Even more of an issue if you install these applications using Flatpak. Although there is a workaround that works on most of these applications. But not on teams. There is still no guarantee that this workaround will persist with application updates. Screen sharing generally works in XOrg.

Some advance features aren't supported regardless of whether you use Wayland or XOrg. Slack's "draw on screen" feature for when you're screen sharing, does not work at all on any Linux distribution. I imagine in the future if this will ever be supported it will have to be done for Wayland because XOrg is no longer in active development.

Any conferencing solution that is built for the browser works well in Fedora. Screen sharing takes a couple of extra clicks in Wayland but, in general, it works for browsers. Solutions like Google Meet, or Jitsi are well supported. Although background blur for Google Meet only works in Chrome ☹️

Conclusion

The world of Linux is vast and here I've tried to cover my most common work use cases. I haven't even gone into the recreational activities like gaming and how I do that on Linux, or the mess that are NVidia driver support on Linux. For work Linux allows me to get the job done fast. The Fedora workflow is very different from Windows, but once you get used to it, it's really difficult to switch to anything else because you start seeing the inefficiencies. High recommend trying out Fedora.

Subscribe

I will making this content like this and more so please consider supporting me by subscribing.

Sign up by using the button at the bottom right corner. Also conider supporting with a small monthly fee.

Happy Hacking :)