Setting Up a Linux Development Environment
A clean, repeatable development environment reduces friction. This article lists the minimal tools and a recommended initial configuration for a modern Linux developer workstation, with examples for Debian/Ubuntu and notes for other distributions.
Essential packages
Section titled “Essential packages”Install these packages on Debian/Ubuntu systems to cover compilation, version control, networking, and a capable editor:
sudo apt update && sudo apt install -y build-essential git curl neovim python3 python3-pip cmake gdb pkg-configOn Fedora/RHEL-based systems use dnf:
sudo dnf install @development-tools git curl neovim python3 python3-pip cmake gdb pkgconf-pkg-configThese packages provide a working toolchain for compiled languages (GCC/clang via build-essential or @development-tools), cmake for modern builds, gdb for native debugging, and neovim as a powerful editor.
Minimal configuration steps
Section titled “Minimal configuration steps”- Install and configure
git(name + email). - Create a local
~/projectsdirectory and choose a shell (bashorzsh). - Configure a basic
~/.gitconfigwithcredential.helperand a sensiblecore.editor. - Create a small
~/.config/nvim/init.luato enable LSP and completion (see the Neovim article for details). - Create a
~/projects/exampleworkspace and test building a small C program withgcc -o hello hello.c.
Quick verification
Section titled “Quick verification”Run these commands to confirm the most important tools are available:
git --version && gcc --version && cmake --version && nvim --version && gdb --versionNext steps
Section titled “Next steps”With the core toolchain installed, proceed to learn compiling from source, working with cmake, and configuring Neovim for code navigation and debugging.
Why this matters
Section titled “Why this matters”This topic is an important part of building a reliable Linux development workflow. Understanding it clearly will make later tasks easier, because it reduces guesswork and helps you recognize when a step is missing or misapplied.
Practical next steps
Section titled “Practical next steps”- Try the commands or configuration shown here in a safe test environment.
- Compare how the concepts apply across different distributions or tools.
- Keep a short note of what worked and what failed so you can diagnose future problems faster.
- Revisit the related article in the series to deepen the connections between topics.
Common pitfalls
Section titled “Common pitfalls”- Skipping verification steps and assuming the system is configured correctly.
- Copying commands without adapting paths, package names, or tool versions for your environment.
- Treating this topic as an isolated tip rather than part of a larger workflow.