So you took my advice and decided to try Linux, congratulations! Now you need some software tools to start developing with. All the best web development tools are open source, so they are generally available on Linux.
This guide will refer directly to software for Fedora, but if it is on Fedora it will almost certainly be available for the other Linux distributions too.
In this guide we will discover:
- The best Linux web browsers.
- Node package manager with cool packages.
- LAMP for CMS/PHP development, Git, WP-Cli and much much more!
Fedora has Firefox built in, and also has Chromium in the official repository. I find it useful to have both of these for browsing, and also their built in developer tools. They both have different strengths and weaknesses, and you need more than one browser for testing the compatibility of your code.
Chrome is based on Chromium. Google Chrome is just the Chromium open source project built, packaged, and distributed by Google. There are quite a few differences between the two, but the main one is that Chromium lacks a few closed source video and audio codecs. I go with Chromium, as I want to support open source and not Google. If you need those codecs, Google has an official Linux version of Chrome for download too.
If you really don’t like Google’s evil tracking ways, then check out another version of Chromium, Iridium, the differences between Iridium and Chromium. It has even more things removed for the sake of your privacy. There is a Iridium Fedora Repository provided
Some of the paranoid ones say never install NPM modules globally as it allows them privileged access to your machine, but I would not worry if it comes from a reputable source. You have to trust someone, or you would never leave your house.
Lets you keep your modules up-to-date easily. It’s one of those things you can’t help but wonder why it was not built in? Essential really.
If you are going to use a CMS like WordPress or Drupal, or just PHP/databases in general, you will want a nice local development environment to run your PHP and create your MySQL databases.
The LAMP environment allows you to have your development site on a server on your laptop or desktop. You can execute PHP code, create databases, and access your development site through your browser just as if the site was live on the internet. All this happens as fast as your computer can handle it, there is no need to upload or download any data from the internet, so things are very fast.
To access your site, you just point your browser to localhost and view it there. Once things are finished you upload the final site to the internet (deployment.)
Great news.. you have the Linux part of the LAMP environment installed already! The other applications will be available in your distributions repository, or maybe even pre-installed.
Version Control Software – GIT
At some point you will need version control software, and the industry standard right now is GIT.
GIT was written by the creator of Linux, Linus Torvalds, and is built right into many Linux distributions by default. If you are using VS Code, there are also extra plugins you can install to make it easier to use for beginners than just tying commands right into the terminal.
WordPress Development - WP-Cli
If you use WordPress, then you are going to love this little tool. It sorts out all the tedious mouse clicking work inside the WP GUI and lets you do everything on the command line, and that is just the start of the awesomeness:
mkdir ~/bin curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar sudo mv wp-cli.phar ~/bin/wp wp --info
I am installing it into ~/bin as that is already in my $PATH. I renamed it to WP so it’s quick and easy to type on the command line.
General System Tools
Many of the most important tools are already built into Fedora by default. You may not want all of these extras, but I highly recommend them if you don’t have alternatives you prefer. These are the general tools I personally use for everyday tasks, many are just a case of personal preference.
You must have installed the relevant repositories for some of these applications to be available, that was all covered in the last section of this guide Configuring Fedora & Localhost Setup.
To install these is as easy as typing:
sudo dnf install [name exactly as show below]
A small tool to extract detailed information on the hardware configuration of the machine. Perfect for if you need HW info to copy/paste for support on forums
A program you can use to store all your passwords for various websites and services. The best one I have found
Provides a full-featured exFAT file system implementation for Unix-like systems. Essential for accessing things like digital cameras
Allows the adjustment of several advanced GNOME options that can't be configured in gnome-control-center. I think it should be installed by default, essential
A widely-used open source general-purpose scripting language that is especially suited for web development
Handle the administration of MySQL over the Web. A nice easy way to manage your databases
A module for PHP applications that use MySQL databases. You will almost certainly need this module
The Zend Opcache, provides faster PHP execution through opcode caching and optimization. You will need this module too
A community-developed fork of the MySQL relational database management. Everyone uses this rather than the official MySQL, it’s a long story why
A very widely used Mail Transport Agent. This is needed for WP-CLI. If you don’t need that, then you might not need this
Shell script analysis tool, can be used as a plugin via VS Code. Lints and gives best practice suggestions for your BASH scripts, if you make shell scripts, you are going to love this
Open source WebKit (Blink) powered web browser. The slightly less evil version of Chromium
The most used graphical FTP, FTPS and SFTP client
Offline documentation browser for software developers, similar to Dash for macOS. This is an amazing bit of software, you can access hundreds of up-to-date sets of documents offline, including the entire Mozilla developers network
You can install the whole lot at once if you like by typing:
sudo dnf -y install php phpmyadmin php-mysqlnd php-opcache mariadb-server sendmail fuse-exfat gnome-tweak-tool keepassx code ShellCheck chromium filezilla nodejs lshw zeal
I hope you have found this guide helpful. If you would like to employ me for any upcoming projects, please do not hesitate to get in contact.
I am often finding new and amazing tools, but beware spending too much time on the tooling, it can be very distracting. What do you think, maybe you would make different choices? Tell us all about it in the comments!